首页
社区
课程
招聘
[求助]ollyscript 脚本中的疑问
发表于: 2009-10-27 21:32 4474

[求助]ollyscript 脚本中的疑问

2009-10-27 21:32
4474
gpa "ExitThread","kernel32.dll"   //在 kernel32.dll中查找 ExitThread 函数地址
gmi $RESULT, MODULEBASE        //获取模块基地址

这个 MODULEBASE 得到的地址是否固定?

我试过 ExitThread ExitProcess 等都一样,是这样吗?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2523
活跃值: (520)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
同一个模块里的不同函数,他的模块基址肯定一样的
2009-10-27 23:01
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
你指的同一模块是否就是 kernel32.dll 这个整体,还是 kernel32.dll 又分为几大模块组成,然后几大模块下面又有很多不同函数组成?
2009-10-28 14:52
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
我在分析 nooby 的 tmd_iat.osc 脚本时发现

mov tmdbase, 9C0000           //OEP

gpa "ExitThread","kernel32.dll"
gmi $RESULT, MODULEBASE
mov kernel32base, $RESULT  
...

mov tmp, tmdbase

findaddr:
find tmp, kernel32base    //在OEP地址处查找 kernel32.dll :: call
cmp $RESULT, 0
je findmagic                    //循环中若无法查到则跳到 findmagic
mov tmp, $RESULT         //查到的地址给 tmp
bphws tmp, "r"              //tmp 设 读取硬件断点
inc tmp                          //tmp加一
jmp findaddr                //循环查询

------------------------------------------------------------------------

现在就出现这样的情况: tmd 2.0.9.0和2.1.0.0 版本的 OEP 区段(这个区段已经跳过原伪装EP) 中没有查到 kernel32.dll :: call

这是一处关键,如果找不到就无法设置硬件断点,那么一旦shift+f9 就直接运行程序了
2009-10-28 15:04
0
游客
登录 | 注册 方可回帖
返回
//