首页
社区
课程
招聘
[讨论]如何确定当前指令是从哪条指令过来的
发表于: 2011-3-21 22:47 4722

[讨论]如何确定当前指令是从哪条指令过来的

2011-3-21 22:47
4722
例如: CALL FUNC; TEST EAX; 当前是TEST指令,想知道是从FUNC里头哪条指令返回的?因为FUNC里有很多层的嵌套函数,如果按照指令流程顺序一个一个的函数F7进入,恐怕是个巨大的工作量。而我想按照指令的反向顺序往前不断下断,找出关键的跳转。

请问有什么办法可以确定当前的指令的上一条指令的地址?谢谢了。

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 437
活跃值: (273)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
2
2011-3-21 23:41
0
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=bzhkl;938594]http://www.unpack.cn/viewthread.php?tid=39880[/QUOTE]

是啥子东西啊?
2011-3-21 23:44
0
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
这个我已经解决了。

我参考了http://bbs.pediy.com/showthread.php?t=73623 帖子中5楼的方法二思路,又学习了http://bbs.pediy.com/showthread.php?t=26029脚本知识。写了下面的脚本:

/*//////////////////////////////////////////////////
Found Last EIP
Author: chglyq
Email : chglyq@qq.com
OS : WinXP sp1,Ollydbg 1.1,OllyScript v0.92
Date : 2011-03-23
Action: Found Last EIP
Config: N/A
Note : If you have one or more question, email me please,thank you!
//////////////////////////////////////////////////*/
var preEIP    /*preEIP记录当前指令的上一条指令的EIP*/

mov preEIP,eip  

start:
ESTI           /*F7*/
cmp eip,75FF0000   
jb ipcomp  /*有些段不用F7跟踪*/
RTR           /*CHRL+F7*/
mov preEIP,eip
jmp start

ipcomp:
cmp eip,73393600   /*就是要找73393600的上一条指令*/
jne jixuzou
log preEIP        /*找到打印*/
pause
jmp findover
jixuzou:
   mov preEIP,eip
   jmp start

findover:
   ret

/*==========这是我的第一个脚本============*/
2011-3-22 18:04
0
游客
登录 | 注册 方可回帖
返回
//