首页
社区
课程
招聘
[求助]安卓ARM指令分析(急)在线等
发表于: 2014-12-28 18:38 8931

[求助]安卓ARM指令分析(急)在线等

2014-12-28 18:38
8931
最近在研究一款手机通讯软件.软件发送数据进SO文件了,而且发送前还把数据包变形了一下.主要想知道怎样把数据包变形(加密)了,就十行左右的arm代码。
ARM指令:
.text:00003CE0 var_1C          = -0x1C
.text:00003CE0
.text:00003CE0                 PUSH    {R0-R2,R4-R7,LR}
.text:00003CE2                 LDR     R4, =(dword_7008 - 0x3CEC)
.text:00003CE4                 MOVS    R6, R3
.text:00003CE6                 MOVS    R5, R0
.text:00003CE8                 ADD     R4, PC ; dword_7008
.text:00003CEA                 LDR     R3, [R4,#(dword_701C - 0x7008)]
.text:00003CEC                 STR     R2, [SP,#0x20+var_1C]
.text:00003CEE                 CMP     R3, #0
.text:00003CF0                 BEQ     loc_3D22
.text:00003CF2                 LDR     R2, [R0]
.text:00003CF4                 MOVS    R3, #0x2E0
.text:00003CF8                 LDR     R3, [R2,R3]
.text:00003CFA                 LDR     R1, [SP,#0x20+var_1C]
.text:00003CFC                 MOVS    R2, #0
.text:00003CFE                 BLX     R3
.text:00003D00                 MOVS    R7, R0
.text:00003D02                 MOVS    R1, R7
.text:00003D04                 MOVS    R2, R6
.text:00003D06                 LDR     R0, [R4,#(dword_701C - 0x7008)]
.text:00003D08                 BL      _ZN19sendEPci ; Socket::send(char *,int) //发送数据)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 542
活跃值: (122)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
a1是this指针?send中先后调用了(a1 + 736)(),Socket::send(),(a1+768)()三个函数?
736,768是成员函数偏移量?
dword_701C处是描述符,(a1 + 736)()返回buffer地址,a4是数据长度?
菜鸟飘过,纯属瞎猜。。。。
2014-12-28 19:49
0
雪    币: 25418
活跃值: (4772)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
以上a3, a4才是传入的参数,分别对应char *, int,v6 = (*(int (**)(void))(*(_DWORD *)a1 + 736))()只是将Java的数据转换成JNI能够识别的类型,v7那行实际就是将传入的两个参数发送出去,后面那行释放内存,其实数据还是原来的,没有做加密等处理
2014-12-28 19:54
0
雪    币: 25418
活跃值: (4772)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
a1代表JNIEnv*,a2代表this,a3是第1个参数
2014-12-28 20:02
0
雪    币: 234
活跃值: (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
qq2.0.4.2.5.4.3.6.3.4
2014-12-28 21:11
0
雪    币: 234
活跃值: (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
嗯,我想也是吧,参数1应该是Buffer数据,2应该是 按照惯例给0,3应该是buffer.nLeng
2014-12-28 21:12
0
雪    币: 234
活跃值: (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
留个联系方式
2014-12-28 22:28
0
雪    币: 107
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
(a1 + 736)()==NewObjectArray
(a1 + 768)()==RealeaseByteArrayElements
2015-1-1 15:27
0
游客
登录 | 注册 方可回帖
返回
//