IDA权威指南阅读笔记2

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  













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值