lmzdq 发表于 2015-4-17 08:40

就差一步之遥,牛牛推我一把吧。

本帖最后由 lmzdq 于 2015-8-23 14:09 编辑

近日看一教程,跟着练,没想到遇到困难,解决不了,请大牛帮着研究一下。程序逆向过程如下:
1、查壳,无壳,为VC++编写。
2、OD载入,OEP清晰,的确无壳。
3、运行程序,输入注册码,点确定,显示
4、F12,暂停程序,单击“K”,来到这里:
5、“显示调用”最后一个,来到这里:
0c1b5f2b,这个上面有三个跳转。
6、给0c1b5f2b下断,发现,注册框中的“确定”点击了后,下不去了,不会跳出注册不对的提示了。初步判断只要跳过这个0c1b5f2b call,就可以实现逆向,未曾想到虽然这上面的三个跳转,任何一个都可以跳过0c1b5f2b,但不管哪个跳转改为jmp,都还是会显示注册码不对的提示。
7、研究发下,这三个跳转虽可以跳过0c1b5f2b,但往下走,会有几个往上跳的指令,这样又回到上面,程序必须走到0c1b5f2b,如图:
8、没办法,就开始研究,0c1b5f2B这个call的上面的跳转上面的call,看看有没有出路,发现,它的上面,还有三个call。
9、接下来,开始研究这上面的CAll,在段首处下断,单步步过,到了call处,再单步步入,没什么收获。
10、还是回到0c1b5f2B这个call上,单步步入,发现提示:注册码不对的地方。
接下来,就不知道怎么处理了。大牛,指点下迷津吧。





小者 发表于 2015-4-17 08:40

ret直接秒杀

cell 发表于 2015-4-17 12:16

感谢分享。。。支持楼主。。。

923004243 发表于 2015-4-17 13:21

但不进入这个关键CALL一直走看看   如果里面能跳过在里面   不然就一直走   他是CALL里面的一个CALL   
   

yAYa 发表于 2015-4-17 13:30

这种老软件 应该可以追出码.留楼编辑.

lmzdq 发表于 2015-4-17 14:41

牛牛具体指导下吧!

岁月神偷 发表于 2015-4-17 21:01

不会玩,感觉验证不在你说的那段,而是在时钟里面!!

lmzdq 发表于 2015-4-18 09:57

这个本以为很简单的爆破或追码,怎么弄得很复杂了?这么多人不会破,真是意外啊。

s1986q 发表于 2015-4-20 15:22

是一个vf程序,没有思路。
页: [1]
查看完整版本: 就差一步之遥,牛牛推我一把吧。