dbsx 发表于 2009-2-16 18:58:32

这种对话框的调用是如何实现的?

我玩的是看雪的一个traceme,这个东西的错误注册参考字符串所在的位置有点别致,我是用了另外一种方法才找到它的错误注册框调用处的,但问题又来了,我没办法跟踪这个程序,我在段首下了断点后连续恩了n次运行主程序才在任务栏出现,但窗口依然没出现,后来我又连续恩了n次运行还是出不来。。。
求解。。。。

Luckly 发表于 2009-2-16 21:17:54

Bp DialogBoxParamA

EMILT 发表于 2009-2-17 16:55:35

不一定要在断首下断的

静慕者 发表于 2009-2-22 11:21:49

应在004011C6处下断,这里是判断输入长度是否合法的~算法call在004011E5~算法很简单,而且是明码比较~

静慕者 发表于 2009-2-22 11:28:57

用bp DialogBoxParamA可以断下来~不过第一次断下来的是主程序~第二次就是错误提示对话框了~断下后单步走到程序领空就行了~往上找就能找到关键call

dbsx 发表于 2009-2-28 14:27:11

貌似不行,它在还没走到程序领空时就已经调用错误对话框了。

rxzcums 发表于 2009-2-28 14:36:59

bp GetDlgItemTextA

第一次取用户名,第二次取注册码。
第一次断下删除断点返回,接下来代码简单,算法简单,明码,用lstrcmpA比较。

dbsx 发表于 2009-3-1 11:07:15

原帖由 rxzcums 于 2009-2-28 14:36 发表 https://www.chinapyg.com/images/common/back.gif
bp GetDlgItemTextA

第一次取用户名,第二次取注册码。
第一次断下删除断点返回,接下来代码简单,算法简单,明码,用lstrcmpA比较。
为什么要删除断点再返回?lstrcmpA这个函数是什么作用(想知道它的适用范围),好像一断寄存器就把真假码显示出来了。

rxzcums 发表于 2009-3-1 11:25:08

懒得解释

不删除的话,返回后走几步不是又断到user32.dll里了吗?!
你不嫌麻烦的话不删就是了。

你问这个问题我就感觉你自己没试。
你试了就知道了嘛

懒得解释也说了一大堆/:L

[ 本帖最后由 rxzcums 于 2009-3-1 11:29 编辑 ]

rxzcums 发表于 2009-3-1 11:30:28

第二个问题。。。
查api手册去/:QQ2
页: [1]
查看完整版本: 这种对话框的调用是如何实现的?