首页
社区
课程
招聘
OllyDBG与eXescope分析出来的字符串为何不一样?
发表于: 2006-5-11 21:03 6030

OllyDBG与eXescope分析出来的字符串为何不一样?

2006-5-11 21:03
6030
用扫雷的程序(winmine.exe)做例子:

这是在OllyDBG中Find Unicode的结果
Ultra String Reference
Address    Disassembly                               Text String
01001691   push    010011EC                          winmine.hlp
010016A5   push    010011EC                          winmine.hlp
010017F6   push    010011EC                          winmine.hlp
0100180A   push    010011EC                          winmine.hlp
01002584   push    01001220                          fload failed to create compatible dc\n
010025A6   push    01001204                          failed to create bitmap\n
01002BDB   push    01001340                          software\microsoft\winmine
01002DC2   push    01001340                          software\microsoft\winmine
01003A21   mov     ebx, 01005120                     entpack.ini
01003A8B   push    01005120                          entpack.ini
01003B34   push    01001340                          software\microsoft\winmine
01003DC0   mov     esi, 01001384                     .chm
01003DC8   mov     esi, 01001378                     nthelp.chm
01003E21   push    70                                (initial cpu selection)
010040AC   push    010013A0                          hhctrl.ocx
0100410D   push    010013B0                          clsid\{adb880a6-d8ff-11cf-9377-00aa003b7a11}\inprocserver32

这是在eXescope中读取到的字符串资源
1,扫雷
3,扫雷错误
4,无法配置计时器。请关闭一些应用程序后再试一次。
5,内存不足
6,错误: %d
7,%d 秒
8,匿名
9,已破初级记录。$0D请留尊姓大名。
10,已破中级记录。$0D请留尊姓大名。
11,已破高级记录。$0D请留尊姓大名。
12,扫雷
13,by Robert Donner and Curt Johnson

按道理拿到的结果应该是一样的,但结果相差很远,且OllyDBG中一个中文到找不到,实在无法理解,谁能给我一个答案?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 203
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
资源不是代码,在运行时刻动态加载的,应该是加载到堆上去了吧,你在代码里面当然搜不到
2006-5-11 21:11
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
push 0A  = 10,已破中级记录。$0D请留尊姓大名。

以此类推。
2006-5-11 21:13
0
雪    币: 107
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
to jamguo:
  请问怎样知道是从哪里动态加载的?堆是堆栈的意思吗?

to oldsir:
  请问你怎么知道push 0A是对应第10条?OllyDBG中都没有查出这个字符串,怎么调试到push 0A那行?
2006-5-11 22:29
0
雪    币: 107
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
to oldsir:
  不好意思,自己傻了,呵呵,我知道了

但我还是不知道eXescope搜出来的这些字符串究竟存放在哪里?
2006-5-11 22:46
0
雪    币: 212
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
资源里面的字符串一般是经过loadstring方式载入的

比如资源里面

10 离开

那么在程序中是通过

push 0A
call (一般是包含loadstring的一个函数)

来将“离开”载入的。

你搜索的时候找 push 0A
然后查看其后是否有载入函数就能正确定位了
2006-5-11 23:07
0
游客
登录 | 注册 方可回帖
返回
//