实战追码之详解回溯

先查壳,VC++10编译,无壳程序。既然无壳,直接丢OD啊

F9运行起来,直接找关键字符串

智能搜索“address”结果,什么什么都搜不到

搜不到,既然有对话框,那就来对话框函数断点吧

点了确定,直接重新注册。让它断下来,断下来就开始回溯吧,单步F8一路向下

关于回溯,解释下。纯个人理解,如有错误或误导请管理删贴。谢谢

既然没在程序领空,那我们接着F8吧

经过一路F8,终于来到了程序领空,接着开始找关键call和关键跳转(这张图片是激活失败call下面的0131D6C0)那一行代码右键选择跳转来源找到的发现是一个无条件跳转的jmp,那问题来了既然是无条件跳转指令,为什么还走向了失败。答案是肯定有别的跳转跳过了jmp,执行了jmp下面的代码,之后一路走到了激活失败。那就接着找跳过jmp的跳转源头

既然是这个je跳过jmp走向激活失败,那怀疑它就是关键跳转,而它上面的call一般就是关键call了。那就给它们F2下断,F9重新运行程序点注册

再次点击注册,程序被断再了关键call处,F7进call看看能不能找到真码

进call后一路F8注意观察寄存器窗口和堆栈窗口,接着发现一个循环直接打断

打断循环后,寄存器窗口出现了疑似的真码。复制下来,用它再次注册。该程序注册码是根据邮箱来生成的,注意邮箱和注册码对应

再次点击注册后,那个je果真不跳了,那应该就是注册成功了。直接F9让它运行起来

果然不出所料已经授权成功

关了OD再次打开又提示注册,可能在启动时检测了邮箱,非邮箱格式的注册后,再次打开会注册失败。使用邮箱注册,重启依然注册成功。

OK既然已经授权成功,那就完美破解了。关于程序的用途,看下图。我也不知道他是干啥用的,经常办公演讲的应该知道吧

最后附上原程序链接,方便大家练手https://www.lanzous.com/i5hwdwj


您的回复和评分就是我最大的动力,玩的开心,也别忘记回复啦








                                                                                                             END                                                                                                            

THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
管埋员的头像-小北的自留地

昵称

取消
昵称