【纯小白】【玩玩破解,写给新人看(第四集) 】机器码验证-实践
今天继续学习了第四集,进度有点慢,又自己动手做了第四集的机器码验证破解,注册表重启验证有点没整明白,晚点继续学习第五集。按照之前的思路,继续对机器码验证进行破解,两种思路,一是修改跳转,二是找到根据机器码计算出的真码。
先来第一种:修改跳转
一步一步来,首先自己先运行下程序-->随便输入密码,看有没有弹框提示,以便作为中文搜索的线索:
确认好了有弹框,打开OD-->把程序拖入O-->中文智能搜索出中文-->找到中文提示-->双击中文引擎模块的中文提示跳转到汇编代码处:
往上面一点,发现了登录成功提示,继续往前找,找到了最近的一个je跳转,鼠标左键单击一下这个je,可以发现他会跳过成功登录字样(白色框),也就是说,这个je会根据之前的比较结果决定是否跳转:
根据前面所学,可以直接把这个je代码修改为NOP,这样不管输入正确与否,都会执行登录成功那段代码:
原本的逻辑已经变为顺序执行,接着只需要保存为可执行文件即可,这样不管输入什么,都会走登录成功的逻辑:
下面是第二种,找到验证call,拿到程序根据机器码算出来的真码:
一样的步骤,将程序拖入OD-->找中文提示信息-->找到最近的一个call-->打上断点,以便确认是否为我们想要的验证call:
然后F9,直接运行,输入密码,发现直接弹框了,没断上:
说明这不是我们想要的call,得继续往前找(后来,我发现我上面断的那个call,在je之后,这明显不对嘛,要找应该直接找je之前最近的一个call),所以我找到了je之前最近的一个call,下断点:
再来一次F9,运行,输入密码,确实在call处断上了,然后F7进入call里边:
就看到ebx里边的值了,估计这就是key,然后F8继续单步执行下去,就发现这个值多次出现,但我始终没找到真正比较的地方:
最后输入看到的这个值,确认为key:
一口猪头肉 发表于 2021-1-31 16:36
羡慕
。。。。。
来吧,一起动手试试呀,我感觉这比我看书来得快,但就是缺少前置知识,不过应该可以在实践中做一些补充 我若化成风 发表于 2021-1-31 16:32
不错不错,大佬
不不不,我只是想把学到的转化出来,我记忆力也不行,害怕忘记{:1_937:} 不错不错,大佬{:1_893:} 羡慕
。。。。。 厉害👍…… {:1_921:}呵呵,很好! yyhd 发表于 2021-1-31 20:41
呵呵,很好!
谢谢大佬,我学得慢,还有很多不会,文中有不对的,希望大佬多指点指点:lol 跟着yyhd大佬和楼主学习! 感谢分享{:1_921:}