首页
社区
课程
招聘
[求助]如何确定断点和算法CAL的所在位置。
发表于: 2007-2-24 15:36 4707

[求助]如何确定断点和算法CAL的所在位置。

2007-2-24 15:36
4707
http://bbs.chinapyg.com/viewthread.php?tid=852&extra=page%3D1
上面的是代码的原文

:0050C76D 8D55F0 lea edx, dword ptr [ebp-10]
:0050C770 8B86FC020000 mov eax, dword ptr [esi+000002FC]
:0050C776 E8355FF3FF call 004426B0
:0050C77B 8B45F0 mov eax, dword ptr [ebp-10] 机器码送eax
:0050C77E E859CDEFFF call 004094DC 把机器码转换成十六进制
:0050C783 E8EC260000 call 0050EE74 算法call,跟进去
:0050C788 8BD8 mov ebx, eax
:0050C78A 8B45FC mov eax, dword ptr [ebp-04]
:0050C78D E84ACDEFFF call 004094DC
:0050C792 3BD8 cmp ebx, eax 这里ebx的十六进制是真码
:0050C794 0F8581000000 jne 0050C81B ★★★这里跳向死亡★★★
:0050C79A B201 mov dl, 01
:0050C79C A17CBE4600 mov eax, dword ptr [0046BE7C

请问破文作者是怎么知道地址0050C783的 CALL是算法CALL的 ?

又是在程序的什么地方下的断点呢?

我觉得是在:0050C76D 8D55F0 lea edx, dword ptr [ebp-10]  的上面

否则不可能知道 0050C77B 8B45F0 mov eax, dword ptr [ebp-10] 机器码送eax

这个的意思。。。。。。

刚接触算法,希望前辈们多多辅导。谢谢!

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

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
难道没有一位前辈愿意帮我吗/
2007-2-24 22:12
0
雪    币: 47147
活跃值: (20380)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
最初由 杜杜哎哟 发布
:0050C783 E8EC260000 call 0050EE74 算法call,跟进去
:0050C788 8BD8 mov ebx, eax
:0050C78A 8B45FC mov eax, dword ptr [ebp-04]
:0050C78D E84ACDEFFF call 004094DC
:0050C792 3BD8 cmp ebx, eax 这里ebx的十六进制是真码
:0050C794 0F8581000000 jne 0050C81B ★★★这里跳向死亡★★★
........


从上面可知,这句 cmp ebx, eax  很关键,ebx和eax值是我们所关心的,你现在必须知道这2个值是从哪来的。一般的函数调用,即CALL其返回值是通过EAX返回的。

因此:0050C783  call 0050EE74 这句关键,跟进去分析其EAX中的值是如何计算出来的。
2007-2-25 09:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
也就是说
cmp ebx, eax的 EAX是由
:0050C788 8BD8 mov ebx, eax
:0050C78A 8B45FC mov eax, dword ptr [ebp-04]
这个两个送给cmp ebx, eax的 EAX的

:0050C788 和:0050C78A 的EAX是由他们上面的CALL计算的
由此判断出:0050C783 E8EC260000 call 0050EE74 是算法CALL

是这样吗
2007-2-25 11:54
0
雪    币: 199
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我也不知道怎么分析的请大侠看看我
分析的对不对

:0050C783 E8EC260000 call 0050EE74   算法call,跟进去
:0050C788 8BD8 mov ebx, eax    这里的EAX是上面的CALL给的 然后把EAX的真码给EBX
:0050C78A 8B45FC mov eax, dword ptr [ebp-04]   这里又是什么?
:0050C78D E84ACDEFFF call 004094DC    得到假码给EAX
:0050C792 3BD8 cmp ebx, eax      这里真假码比较 这里ebx的十六进制是真码
:0050C794 0F8581000000 jne 0050C81B ★★★这里跳向死亡★★★
2007-2-25 12:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
skllskll
请问你是在什么地方下的断点呢?
我现在就这里不明白咯
2007-2-25 13:08
0
雪    币: 199
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
当然是关键CALL下断啦
2007-2-25 13:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
0050C78D E84ACDEFFF call 004094DC
在这下的是吗?
但是,在这下F8会向下啊,按方向键的话,看不到寄存器的变化。
应该是在算法CALL上面的某一处下断才是啊。・・
2007-2-25 19:37
0
雪    币: 199
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
啊不会用OD呀
F7跟进CALL呀
2007-2-25 20:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
:0050C776 E8355FF3FF call 004426B0
:0050C77B 8B45F0 mov eax, dword ptr [ebp-10] 机器码送eax
:0050C77E E859CDEFFF call 004094DC 把机器码转换成十六进制

要知道上面这两行代码的意思就必须在他们是面下断运行后看寄存器才知道啊

:0050C78D E84ACDEFFF call 004094DC //关键CALL
:0050C792 3BD8 cmp ebx, eax 这里真假码比较 这里ebx的十六进制是真码
:0050C794 0F8581000000 jne 0050C81B ★★★这里跳向死亡★★★

如果是在上面的关键CALL下断并F7跟进的话,怎么会看到

:0050C77B 8B45F0 mov eax, dword ptr [ebp-10] 机器码送eax
:0050C77E E859CDEFFF call 004094DC 把机器码转换成十六进制

这两行的作用呢?

就卡在这了,明白这点就全明白咯。

嘿嘿,麻烦再帮下忙,谢咯!

请问你的QQ是。。。。。。
2007-2-25 21:25
0
雪    币: 199
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
:0050C783 E8EC260000 call 0050EE74   算法call,跟进去
2007-2-25 21:57
0
游客
登录 | 注册 方可回帖
返回
//