arm 汇编代码还原--for语句还原
2017-12-15 19:53
211 查看
代码片段
代码特征
还原后的代码
总结
1.定位循环变量
2.定位条件判断
3.定位步长
4.定位循环体
代码特征
*循环变量x初始化* LDR R3=[R11,#_0x38] STR R3=[R11,#_0x1C] ;此处相当于for(dword var_1c=var38;) B loc_DE87FDF8 ;先跳转到循环判断处 loc_DE87FDE0: **循环体** LDR R0,[R11,#_0x1C] MOV R1,#0x400 BL sub_DEB7E7E8 **步长计数** LDR R3,[R11,#_0x1C] ADD R3,R3,#0x400 ;步长为0x400 STR R3,[R11,#_0x1C] ;循环变量var_1c+=0x400相当于for(;;var_1c+=0x400) loc_DE87FDF8: **判断体** LDR R2,[R11,#_0x18] LDR R3,[R11,#_0x38] ADD R3,R2,R3 MOV R2,R3 LDR R3,[R11,#0x1c] cmp R2,R3 BHI loc_DE87FDE0 ;此处相当于for(;var_1c<var_18+var_38;) jmp loc_DE87FDE0
还原后的代码
for(int var_1c=var_38;var_1c<(var_18+var_38);var_1c+=0x400) { sub_DEB77E7E8(var_1c,0x400); }
总结
1.定位循环变量
2.定位条件判断
3.定位步长
4.定位循环体
相关文章推荐
- ndk生成ARM汇编(附代码)
- for循环产生的Cortex-M3汇编代码的一个奇怪现象
- 快速识别汇编中等价的C语言语句(if, while, for, switch)
- gdb:如果在没有符号表的时候让gdb强制以thumb模式反汇编ARM二进制代码
- C++学习002-C++代码中插入汇编语句
- ARM代码底层剖析——机器码,汇编,C
- ARM裸机程序开发15(伪指令,汇编语句格式,汇编变量常量)
- 关于eclipse编写java代码时不能运行for-each语句的问题
- arm-elf-gcc汇编代码个人理解
- C++代码的汇编实现之二(循环语句的实现)
- ARM在汇编代码中的调用
- javascript下利用for( in )语句 获得所有事件名称的代码
- 快速识别汇编中等价的C语言语句(if, while, for, switch)
- arm 初始化代码中的{CONFIG}语句疑问
- c语言控制语句对应的汇编语句代码
- arm中引导主程序的汇编引导代码init.s分析
- 从ARM的汇编代码到二进制文件
- 通过T-SQL语句实现数据库备份与还原的代码
- Arm汇编 位置无关代码 adr 指令
- 用OD跟踪金山游侠的部分代码并用汇编还原其功能