YMYS 发表于 2021-2-1 15:19

【简易破解】-玩玩破解,写给新人看(第九集)-实践

本帖最后由 YMYS 于 2021-2-2 14:35 编辑

个人理解:
1.运行软件后有错误的提示框,我们就可以对MessageBoxA函数下断点进行破解;
2.我们要做的就是找到关键代码“登陆失败”字符串所在位置;
3.反向猜测程序流程;

1.程序拖入OD,设置MessageBoxA函数断点,运行程序,定位到弹窗call(第一个返回到,跟随)(附一张上一课的图比较,可以猜测出“登陆失败”字符串所在位置(其实不用也可以猜出关键字符串在弹窗call的下面几行)):



2.向上寻找跳转指令看能否跳过“登陆失败”字符串,发现其上十行的jmp跳转的跳转地址直接跳到后面去了(此跳转执行即可跳过“登陆失败”字符串,未执行的原因肯定是有其他跳转跳过了此jmp),并且再次向上寻找发现有一个大跳转直接跳到了“关键字符串附近”,并且是je条件跳转语句,此时可以大致猜测这个就是关键跳转:实现je跳转时,跳转到的位置上一行为jmp跳转,说明je跳转跳过了jmp跳转而向下执行到了“登陆失败”;不实现je跳转时,代码依次执行直到jmp跳转跳过“登录失败”奔向登录成功。将此je跳转用nop填充即可(其他方法也可);



还有许多其他方法改法,例如修改相关跳转指令je为jne,并且我尝试了在EAX寄存器中寻找账号密码好像只找到了密码是00000000,找账号的时候跳到了一个看不懂的地方;
欢迎大家讨论;

BBoy蓝牙 发表于 2021-2-1 16:43

感谢分享

hutopower 发表于 2021-2-1 19:26

感谢楼主分享!{:1_893:}

buzhidao 发表于 2021-2-2 08:08

感谢分享,学习了

思念说给风听 发表于 2021-2-2 09:35

感谢楼主分享!

Bii 发表于 2021-2-2 10:53

大佬牛逼   

zhrmghgtw 发表于 2021-3-14 20:14

谢谢分享
页: [1]
查看完整版本: 【简易破解】-玩玩破解,写给新人看(第九集)-实践