Buffer 指向的缓冲区存放用户输入的文本,起始地址为 40218E,我们在 Buffer 参数上面单击鼠标右键选择-Follow in Dump 来在数
据窗口中定位到该缓冲区。
由于此函数还没有执行,所有缓冲区里面是空的,我们选择主菜单中的 Debug-Execute till return,我们就到了 ret 指令处,我们按 F7 键
返回到主模块中。
我们可以看到缓冲区中保存了我们输入的名字,程序会进行相应的处理生成正确的序列号。如果我们想编写注册机的话,我们得分
析由名称生成序列号的算法,但是现在我们暂时不关心生成算法,我们只是想看看生成的序列号是多少。
第二次断在了 GetDlgItemTextA 处,新的缓冲区保存用户输入的序列号,起始地址为 40217E,我们在数据窗口中定位到
该缓冲区。
同样由于函数还没有执行,缓冲区里面是空的,我们通过选择主菜单中的 Debug-Execute till return 执行到返回,然后按 F7 键返回到
主模块中。
好了,现在缓冲区里面存放了我们输入的错误序列号,从程序的角度出发,程序就会取用户输入的错误的序列号与根据名称生成的
正确序列号进行比较,所以我们可以对错误序列号设置内存访问断点,看看程序的哪些地方使用了。
评论0
最新资源