0%

ARMStrong模拟器

一、ARMStrong是什么

GitHub地址: https://github.com/linouxis9/ARMStrong

一个使用Java编写的ARM模拟器,能够执行ARM汇编代码,可以用来练习ARM汇编。

是基于Unicorn和Keystone,其实就是在这些上面套了个方便使用的UI壳。

二、下载

在release页面下载最新的jar包即可:

https://github.com/linouxis9/ARMStrong/releases

需要注意的是要求JRE版本Java 11+,请安装合适版的JRE运行环境,我安装的是JDK15,官网只提供了jar包下载,但是在Windows下运行jar包是有些麻烦的,需要使用java -jar,将其封装为一个bat文件,同时隐藏黑框框:

1
2
3
4
5
6
@echo off 
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin

java -jar project-armstrong.jar

如图,然后现在只需要双击start-project-armstrong.bat执行即可:

image-20210725034729064

启动之后界面是这个样子的:

image-20210725035034683

需要注意,使用上面的启动脚本需要java在path中,请自行安装配置。

三、运行ARM汇编

3.1 一个简单的加法

在编辑框中输入如下汇编,进行一个简单的加法:

1
2
3
MOV R0, 0x1
MOV R1, 0x2
ADD R2, R0, R1

然后执行,可以看到寄存器中的值被改变了,计算结果也正确的存储到了寄存器R2中:

image-20210725035242930

3.2 官网的例子:修改显示

下面是官网的例子:

1
2
3
4
5
6
7
8
9
10
LDR R0, =0x1F1000
MOV R2, #0x7D
MOV R1, #0

kek: STR R2, [R0, R1]

ADD R1, R1, #1
CMP R1, #15

BNE kek

需要打开显示:

image-20210725035952498

然后运行:

image-20210725040009202

四、源码速览

TODO 2021-7-25 13:52:33