首页
社区
课程
招聘
[求助]谁有arm_asm-slam80这个工具
发表于: 2016-8-11 21:28 9940

[求助]谁有arm_asm-slam80这个工具

2016-8-11 21:28
9940
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
那个工具太老了,很多新的指令集不支持了
介绍一种使用汇编器来生成机器码的方法吧
########################################

先用IDA反编译,找到要修改的指令,将指令复制出来保存到一个.s(如下文asmgen.s)文件中,然后使用Android NDK自带的汇编器来编译,即可生成汇编-机器码对照。

生成32位指令(汇编器:android-ndk-xxx\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-as.exe):
> arm-linux-androideabi-as.exe -ahlm -k -g -march=armv7 -mthumb-interwork -o asmgen.o asmgen.s

64位指令(汇编器:android-ndk-xxx\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-as.exe):
> aarch64-linux-android-as.exe -ahlm -g -o asmgen64.o asmgen64.s

============================================
.s 样例
-------------------------
  .text

  MOV             X3, #0x1000
  LDR             X3, =0x85000
  
执行结果:
   1
   2                        .text
   3
   4 0000 030082D2        MOV             X3, #0x1000
   5 0004 23000058        LDR             X3, =0x85000
   5      00500800
   5      00000000

===================================
对于模拟反编译后的跳转指令,不用手动计算偏移之类的,直接用.org设置指令所在地址即可:

    .syntax unified
    .text
   
    .org 0x1EB0
     B loc_1EDA

    .org 0x1EDA
loc_1EDA:   
     MOVW            R1, #0x1ED

生成的机器码如下:

   1
   2                        .syntax unified
   3                        .text
   4
   5 0000 00000000          .org 0x1EB0
   5      00000000
   5      00000000
   5      00000000
   5      00000000
   6 1eb0 00F013B8           B loc_1EDA
   7
   8 1eb4 00000000          .org 0x1EDA
   8      00000000
   8      00000000
   8      00000000
   8      00000000
   9                    loc_1EDA:
  10 1eda 40F2ED11           MOVW            R1, #0x1ED
2016-8-12 10:12
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
两个汇编器直接附上吧,省的去下载了
上传的附件:
2016-8-12 10:15
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
netsniffer 那个工具太老了,很多新的指令集不支持了 介绍一种使用汇编器来生成机器码的方法吧 ######################################## 先用IDA反编译,找到要修改的指令, ...
正好用到  非常感谢 
2017-7-24 11:43
0
雪    币: 3818
活跃值: (4233)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
5
http://www.keystone-engine.org/keypatch/
2017-7-24 13:05
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
netsniffer 那个工具太老了,很多新的指令集不支持了 介绍一种使用汇编器来生成机器码的方法吧 ######################################## 先用IDA反编译,找到要修改的指令, ...
大佬,能解释一下这个命令行的参数含义吗,或者有对应的文档吗,看不懂倒数第二个参数是什么吗
2021-11-10 17:17
0
游客
登录 | 注册 方可回帖
返回
//