步骤:运行->附加->搜索->下断点->运行程序(跳到断点)->暴力破解->取消断点->执行cpu
所谓网络验证就是客户端请求,服务器响应的一种过程。比如:我们登录qq时需要输入账号和密码,而且账号和密码必须时匹配的,而账号密码能否匹配成功还要看qq服务器的响应。
我们模拟一台服务器和一个客户端
当我们随便输的时候腌,没有任何提示,服务器只显登录信息错误。
当我i们输入正确信息时会显示注册成功
现在假设我们不知道已经注册的账号和密码,也想注册成功。
利用od打开该程序搜索有关字符串,得到相关信息
跟进字符串
跟进程序可知,成功或不成功这个地方肯定会有一个跳转
运行程序可知,如果账号密码不匹配,则不能注册成功,但没有注册成功也没有显示任何信息,看了该代码原来如何注册不成功呢程序会一直循环。
我们首先暴力破解:把所有循环都nop掉直接让程序运行到成功位置
运行程序可以知道,即使我们社么也不输就会显示注册成功。
出现的问题时我们点击确定时程旭会直接退出,这可能也是开发人员为防止被破解调用API ExitProcess设置的暗桩。
我们只要找i到该暗庄即可,ctrl+G跳转道暗庄
设置断点让cpu运行到这里,查看调用堆栈,是什么调用了这个函数
跟进
上边的一个跳转指令显示不会跳过之歌函数,我们只需修改指令,让其跳转过该函数就行
在该跳转处下断点,运行可能会退出,再次加载
程序来到我们下断点的地方
修改一下跳转指令运行程序,页面不会在退出
、