IDA权威指南阅读笔记2

来源:互联网 发布:衢州软件开发 编辑:程序博客网 时间:2024/05/23 19:21

1.之前查看当前函数被哪个函数调用了都是去跳转到LR寄存器(arm)的地址,看这个地址在哪个函数里,现在发现这个功能IDA提供了

依次点击:View--->openSubviews--->Functions calls 即可

显示如图:



2.查看栈相对变化量:

依次点击 Options--->General,勾上 stack pointer


看看多了什么:


红框里边的部分表示的是进入一个函数后,栈相对于调用函数开始时候的栈指针的变化量,通常对抗IDA静态分析就是让IDA在执行ret指令时候,检查到栈的变化量不为0.

3.操纵函数

初步分析完成后,如果IDA无法定位一个函数调用,由于没有直接的方法到达函数,IDA将无法识别他们,因此需要手动干预。

光标放在将要包含在新建函数的第一个字节或者指令上,右键create function

那么问题来了,如何才能知道某处可能是某个函数的第一个调指令呢?对于x86,首先要保存上一个函数的栈桢,然后将当前栈顶作为当前函数的栈桢

代码:

push %ebp

mov %ebp %esp

对于arm也是有一段入栈操作保存寄存器的值

4. 函数块太多,造成分析不方便:

首次加载时候,选择kernel options2 取消选择create function tails


5.删除当前格式:Edit--->Undefine或者热键U

效果:



6.反汇编一组未定义的字节:

Edit-->code 或者热键c


7.创建数组:


edit-->arrays  













原创粉丝点击