chenchenchen777 发表于 2022-11-30 16:39

新手开始破解小程序

OllyDbg动态调试与逆向破解TraceMe.exehttps://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=M2U2MzU3OTc0ZDljYmI2ZjgzMmQzYjgxNDBkZTY4YTNfWGs4dEJld2YzanQyUEptZGVsVDNHaXhpNVpTaWdtV2ZfVG9rZW46Ym94Y25SSnRXNzZSSzY1TGwxWjJ6VDE1aXZoXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNAOllyDbg窗口https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=YmQ5MTkxNjVhZDE3ZWUxNDFmNGJiZTMwZTZkMWFjZGRfMXdDZmRuMnhFcWlMWWVNMzh1eVd2VzhOVFFieFRkNHVfVG9rZW46Ym94Y25kampxSWhZWHlJaDd5eU9GSGswMlNiXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA动态调试破解小程序原理:https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=ZTJiYjA3OTQyMzhjNzZmZmQ4NDdkMDZjNjdkMDRiMDdfTDhqNUZlNk9WT2dqQzFpT25PNlN3UlZjc1FpWHQ4Q3dfVG9rZW46Ym94Y25EU3kzVE82M2hiTFhvZ0xWVkx6WlJkXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA输入该输入的信息通过比对程序的本来的值和输入的值假如用户名和密码相符合代码肯定会通过判断,跳转到相应的程序我们所要做的事情,就是在跳转之前看到相应的改变,从而取消改变
[*]将文件放入吾爱破解中去
程序会停留在winmain的入口,我们点击执行函数会跳出相应的执行窗口https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=OWVhZGE3YmRiY2VkMTM4ZmM2M2ZkNTVhNmU4OTQ5YjVfSHdQVkRDSjh4Z21hQjB5MmZ2eDFCUVBYOTJwckh2WTNfVG9rZW46Ym94Y25zUWFleWRheXRqbHZ1cGo4QVZBQndiXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA
[*]我们随意的输入值(我们肯定是输入的错的用户名和密码,但是我们不是为了成功执行完成去的,而是成功去执行这个整个程序)
假设我们输入的是用户名:1111111序列号(密码):222222点击check,反汇编窗口会自动的跳转到相应的反汇编代码中去

[*]从工具栏的插件选项中打开 “API断点设置工具”,尝试勾选常见的的文本框数值获取的函数 “GetDlgItemTextA”,点击确定后程序将自动在程序中调用了该函数的位置设置断点:
https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=M2E4Y2YzZTA2NGY1NjMwMjJhODIzZjkyYjk5M2YyOTFfSGRTUmJWZmxmS0lQa3k0SnFyQUdHcmt5eGFBYXoyZ05fVG9rZW46Ym94Y25pUU1ObDNpR0pKd1NGQkt1dnRmR0FiXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA
[*]快捷键ctrl+f9,可以执行到有返回值的反汇编代码去
https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=ZGRmNDZjN2EyMTg5MjkzODMxNDk2ODg0NGQ1MmYzZTJfZjNSUGVMZGdJQkNnWWM4MlpTZGZDOUlJMzBveDEwelBfVG9rZW46Ym94Y25ZTTNIbmZ3Uk5Melc4N1BuWGEwY1FGXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA
[*]到达第一个有返回值的代码中去看看
https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=NGFkOWZkYzFlMGY0OTIyZmI3MTFhYjEwZTA1ODM0ODhfOVBUVzU5RTZjdXJrWFBkdzdNT1hxbm5EUGp0QjQza3JfVG9rZW46Ym94Y25lRmpOWnN3dnAybERxczdScTBWTjM2XzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA可以说明程序已经到达了输入用户名信息的时候了和我们之前输入的用户名:11111相同

[*]接着按 F8 单步步过,程序将返回至原先调用了该 “GetDlgItemTextA” 函数的程序位置处(结合汇编代码、注释栏目的信息可确认确实调用了两次获取控件值的参数):
https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=NTllOGUwMjBmYmFhMDIyYTliOGZkZWRkYzY3MzRjYjlfeWFoQWswVHpkSkdua3RRZkFyMElSa1dGUjZaR0pZNE9fVG9rZW46Ym94Y25UMU4xc3U2MllXZlNTaVlQaUl6U2FnXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA
[*]进行f8 步过去寻找密码的输入...........................
https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=NGQ2Mjk4MDc0MzdhM2YwNDhhYjVlN2Y0ZDAwNGU3Y2JfOEVrZjl4VjNZdEJJQ2pMeExWeUFYajFOQ3ZUYU1mZmlfVG9rZW46Ym94Y25PbUtZZTVtSDlKamljUkdZd090aDBiXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA终于出现了密码的输入了在之后只能是用户名和密码是否匹配的判断了,假如匹配肯定会成功假如不匹配只能是失败这里我们注意一下紧接之后的跳转代码跳转------这里会涉及到标志寄存器里面相应寄存器的功能和执行不同跳转的条件
继续 F8,返回程序程序原来的运行位置,发现后面即将紧接着执行 test 判断指令( 汇编语言的 test 指令是测试指令,用于测试某些位是否为0,执行的是与运算,并且会将 CF 和 OF 置 0,并且影响 SF、ZF,若测试的位均为 0,则 SF=0、ZF=1),同时紧跟着执行了 je 判断跳转指令( je 指令即 Jump if Equals,在 ZF 被置位时跳转)主要看Z(ZFBAI)https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=OTczYmUzZGNmZjFlZDEyMzczYWJiNzc2MTU3ZDJkNWFfYW5qOVNWZDZhNkhORkV1WjBpczl1WUllS3RNZHdjMTlfVG9rZW46Ym94Y255Z1BvTTZ5Tm5Ia2Q4OTBUdXNDYTdlXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA
[*]在要跳转的跳转符号设置提示
https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=NWEwNjc5NzVlYWZmMTgxZDYwNTdiZDBiODQxYTU4OGFfcXl1UFdpU3FPZmFiM1lUR2VRQk01NTNRcGtsTG9RTlRfVG9rZW46Ym94Y25zdW94RnE2YnpreG5sVUxyT3NoZEVnXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA
[*]f8一直执行函数直到在信息窗口提示:序列号错误
说明了给出的用户名和序列号不匹配,程序直接就跳转到了错误的位置(可能就是因为 je 跳转的原因)https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=MTJjMzM1ZDg1MWVlNjlmM2QzZjhiN2QwMzBkMTcxMzBfUFJ5SUk1OFJRaXpPYW5PQjc0ZXo3Wm5EbFdjb3d1N1dfVG9rZW46Ym94Y25GTHVQa3ZkY0F2TE8xVU5HYXNha0ZiXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA
这是正常的执行一次程序,我们再一次的执行一次函数,来破译小程序我们再一次f8执行到即将跳转的反汇编函数中
[*]
https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=OTE1ZDllODYxMGQ3MDliZGY0MzYzZDA2MTFmZWZiZDJfUWZjSnJKUnRBTU5ucFlrbHd5UnJScWVYV0haRTN2U2hfVG9rZW46Ym94Y25wWjRvNDZQSDRqY0lKY2xSaktsZm1lXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA为什么跳转,因为zf标志寄存器变为了1,跳转到了失败之后的代码
[*]
所以我们直接修改zf的值,把zf的值变为0,让它跳转到正确的代码之中去https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=MGRkMzg1ZTIyMjFmYmI2MDAxNjc0ZjQ4NmZiNTU1MjVfRllFTVd1T05ObnFwSjFtM0prdHdxZUhDUEs1UUd2NXhfVG9rZW46Ym94Y24zbEVocjk1SkoyUWd2UUJUOGVhMUZiXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA
[*]
https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=YjJmOWVkOWQwZDY1NDYzMjQ3MWZjZjAxNTRjZDA0OTNfQW9zNDNvQlZabVk0TG1XbVo2N1FyTHlBSnF1UVI3RmhfVG9rZW46Ym94Y25IbVI1TExCWGIwMnJEOFlEbDJzem5lXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA
最终的修改方法:https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=NTNkNjdjMGMwYTdlNzZjNjk3NWRmZDE4NDIzYjBlNDhfUmlVV2ZDNGxFNlkxSWJlWDdmM0V5YkdOUXA3d2tCVXpfVG9rZW46Ym94Y25BZ25UTjVpTzdsczJUb2JrSVp6U3hkXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA刚刚我们修改了标志寄存器中的ZF让它从1变成了0从而跳转到了成功之后的代码这里我们直接将je修改为jne让之后通过此代码之后的ZF值直接变为0
[*]修改
双击 je 指令处的汇编代码,将 je 修改为 jne 指令: https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=ODU3OTQxNDdhMTk1NTRjZjUyNTZkN2U2Njk0NTQyMjVfT2IwNXZlanhSb1cwTTZObkV2cXdFb3RndUJLUTBYYkdfVG9rZW46Ym94Y25MZmZGRWNKSXN6MlcwUUdJbEhkbEtkXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA2.保存(点击函数,右键复制执行文件)保存修改之后的指令:https://ryni70k1du.feishu.cn/space/api/box/stream/download/asynccode/?code=MzBhNmQyY2E3MTVmYjJlZTBlOWNiNzk4YWFlYmI0ZjdfNGpINGY3aUwyZGlETERjV05sRnliUFFtRnplN0Vxa2NfVG9rZW46Ym94Y25JeTJnNDNDWEpuMmY4WWtSTVpWdkZMXzE2Njk3OTc1MDY6MTY2OTgwMTEwNl9WNA再右键保存文件
之后生成的新的可执行文件就是我们破译之后的小程序了小歪瓜

wuxiajian 发表于 2022-12-1 09:00

我用电脑端网页看的,也看不到图片呀?
楼主方便重新传一下图片吗?

yang1111502 发表于 2022-11-30 18:50

感谢分享

Sp1ral 发表于 2022-11-30 19:02

讲的比较清楚,适合新手学习{:301_1003:}

q705031 发表于 2022-11-30 19:14

图片看不到啊

NYSECBao 发表于 2022-11-30 20:06

学习学习感谢分享

oljml 发表于 2022-11-30 20:11

图?怎么看不见

Vinson2048 发表于 2022-11-30 22:01

楼主强大,有空我也学习弄一下,感谢楼主{:1_918:}

YDDDD 发表于 2022-11-30 22:24

看看,感谢分享

yxh19 发表于 2022-11-30 22:57

谢谢分享:victory:

se2303765 发表于 2022-11-30 23:15

感谢大神的分享
页: [1] 2 3 4 5
查看完整版本: 新手开始破解小程序