通常,在破解windows程序过程中比较重要的就是寻找一些重要API的位置,
在验证序列号的时候
•程序通常读取文本框内容的字符串用的是以下两个函数:
–GetDlgItemTextA(GetDlgItemTextW)
–GetWindowTextA(GetWindowTextW)
只要找到输入框的位置,然后往下就能猜测到一般就是验证输入信息是否正确了,在
这里就是一个调用读取输入框的API了,这里加个断点。这里是鱼C论坛的一个实验,基本程序执行的流程猜测如下
鱼C调试篇二
然后慢慢按F8走(要注意getText那边调用了两次,所以可以在那边加断点的情况下按F4一次,下一次就会进入比较序列号的函数了),就看到
这里就是读取了字符串地址放在edx里面,之后当然就是比较序列号了。
往下走,就发现pushedx,pusheax(输入的两个字符串)然后call,再mov,这里实际上就是调用了00401340这里的函数,返回值放在eax里面,然后就是一个jmp了,相应的修改它的跳转就发现很容易了(此处省略)。
只要找到输入框的位置,然后往下就能猜测到一般就是验证输入信息是否正确了,在
这里就是一个调用读取输入框的API了,这里加个断点。这里是鱼C论坛的一个实验,基本程序执行的流程猜测如下
鱼C调试篇二
然后慢慢按F8走(要注意getText那边调用了两次,所以可以在那边加断点的情况下按F4一次,下一次就会进入比较序列号的函数了),就看到
这里就是读取了字符串地址放在edx里面,之后当然就是比较序列号了。
往下走,就发现pushedx,pusheax(输入的两个字符串)然后call,再mov,这里实际上就是调用了00401340这里的函数,返回值放在eax里面,然后就是一个jmp了,相应的修改它的跳转就发现很容易了(此处省略)。