玩玩破解,写给新人看(第二集)
本帖最后由 yyhd 于 2022-4-29 13:30 编辑第四课用前三课的知识,可以实战一下了
本节我们来破解一个小软件,用前三课的知识就足够了。换句话说,就是本节课看完了,你就不再了“破盲了”。
第一步:我们先准备好破解工具。
还记得吧,破解三兄弟。老大是PEID,老二是DIE64,老三是OD。你在吾爱破解发布的破解工具包自己下载吧。首先老大先上,查一下是否有壳?
我们就看红色箭头指的地方,是VC编写的,实际上是易语言编写的,无壳。我们就不用考虑脱壳的事情了。而且我们还知道是VC编写的,那么老二就不需要上阵了。那么什么时候需要老二呢?就是当老大查出有壳,PEID只显示壳名称,不能显示出是什么语言编写的,就必须老二出场了。我把刚才的软件加个壳,你们来对比一下。老大出场,查一下。
看到红色箭头指的地方了吧,原来是VC,现在变成了UPX,UPX是一种壳的名字,你现在无法知道这个软件是什么语言编写的了吧。怎么办?
老二必须上场了。
红色箭头指出来这个软件是VC编写的,绿色箭头指出壳的名字。呵呵,老二挺能干,把老大的活都抢了。不过还是建议先用PEID来查壳,毕竟是专门查壳的工具,有它的优势,另外也别让老大失业。 现在该老三OD上场了。直接把程序拖到OD里就可以了。 然后,我们干什么呢?当然是去找关键验证代码的位置。我们前三课说了,最常用的方法是根据验证后的结果找线索。今天我们要破解的这个软件,当账号和密码不正确时有失败提示,正确时有成功提示,这就是线索,也是我们破解的下手之处。
我们现在要做的就是用OD定位到程序中输出失败或者成功的字符串代码那里。怎么做呢?当然用OD里面的“中文搜索引擎”就可以查找到对应的位置。见下图:
红色箭头指的是我们要找的字符串,黄色箭头对应的那一行就是关键代码所在的地址编号。我们在登陆成功这一行双击鼠标左键,就到了关键程序代码处。
我们现在已经找到了关键代码的位置,接下来我们该干什么呢? 我们要清楚,我们现在找到的关键代码的位置是验证后的结果的位置,我们的目标是找到验证中的关键代码位置,肯定是先验证才有结果,所以我们必须要往上找。问题是往上多少行才是验证中的位置呢? 神仙也不知道,但是我们知道一点就是,验证就是真假码的比较,比较后如果正确就会执行提示成功的那段代码,如果不正确就会提示失败的那段代码。(没有编程基础的朋友注意下,每个程序中的代码的执行不是完全一行一行按顺序执行的,也就是说OD里你看到的程序代码不是从最上面一行一行执行的,在代码中会有很多跳转指令,导致程序代码是跳来跳去执行的。你可以这样理解,编好的程序就像一个有思维的人一样,他会根据一些条件来选择执行不同的代码)。
那么,我们就可以根据跳转指令来反查到验证的关键位置。简单来说,我们就在刚才找到的“登陆成功”字符串代码上面找跳转,看看有没有能够跳过去的指令,在上面很近的位置就找到了。
到这一步,你就已经基本破解成功了。JE是一个条件跳转指令,我们把这条指令修改为NOP,NOP是空指令,就是当代码执行到这里的时候无论如何都不会跳走,都会继续往下执行登陆成功这段代码。
然后在修改的代码处鼠标右键,选择红色箭头指的“复制到可执行文件”,把修改后的程序保存即可。
总结一下:
1、破解软件的第一步就是要找出突破口,验证后的结果是最常用的。拿到一个软件后要先试着登陆一下,看看登陆验证后出现什么结果,是出现了字符串,还是信息框,还是其他,这些就是突破口。
2、通过突破口找到验证后结果的代码位置后,找位置上面的跳转,然后修改跳转,目标就是“无论如何跳向成功,无论如何跳过失败”。
3、关键跳转上面不远处就是验证中的关键代码位置,如果你要分析验证机制或者要找正确的账号密码就在那里。
如果您觉得我发的内容确实对您有所帮助,请麻烦您支持一个热心值,进行精神鼓励,也是我继续写下去的动力!
玩玩破解,写给新人看(第一集)
玩玩破解,写给新人看(第二集)
玩玩破解,写给新人看(第三集)
玩玩破解,写给新人看(第四集)
玩玩破解,写个新人看(第五集)
玩玩破解,写给新人看(第六集)
玩玩破解,写给新人看(第七集)
玩玩破解,写给新人看(第八集)
玩玩破解,写给新人看(第九集)
玩玩破解,写给新人看(第十集)
玩玩破解,写给新人看(第十一集)
玩玩破解,写给新人看(第十二集)
玩玩破解,写给新人看(阶段练习1)
玩玩破解,写给新人看(第十三集)
玩玩破解,写给新人看(第十四集)
玩玩破解,写给新人看(第十五集)
玩玩破解,写给新人看(第十六集)
玩玩破解,写给新人看(第十七集)
玩玩破解,写给新人看(第十八集)
玩玩破解,写给新人看(第十九集)
玩玩破解,写给新人看(第二十集)
玩玩破解,写给新人看(第二十一集)
玩玩破解,写给新人看(第二十二集)
玩玩破解,写给新人看(第二十三集)
玩玩破解,写给新人看(第二十四集)
闲谈如何破解软件?
玩玩破解——小白实战1,你也行!
玩玩破解——小白实战2,巧搜字符串
玩玩破解——小白实战3,易语言字符串比较通杀
玩玩破解——小白实战4,冰火两重天
对新人们学习《玩玩破解》系列教程的集中解答
玩玩破解—加点油,再前行!
玩玩破解—小白实战5,易语言变脸
玩玩破解——小白实战6,再上一层楼,做个注册机
新年送“心”礼,易语言逆向分析助手6.0
重新认识Delphi程序按钮事件特征码
玩玩破解番外篇1—快速分析汇编代码
玩玩破解之逆向工具篇 楼主可否打包一下课件之类的嘛,萌新也可以练练手 s8750623 发表于 2021-1-27 09:45
我来分享工具吧 顶我上去。工具集合里面包括DIE0.64 PEID OD。
蓝奏云:https://wwe.lanzouj.com/iWm4tk ...
谢谢分享,上午好! 希望楼主能把练习用的那个小软件分享出来,一步一步跟着走感觉效果会更好 本帖最后由 apie 于 2021-1-26 10:12 编辑
我是课代表
1. JE,mov等指令是汇编指令,详细可以看http://c.biancheng.net/view/3567.html,其中JE等都是jump的扩展
2. 目前还只是简单的从指令文本进行分析,还没有断点调试等功能
3. 目前还只是简单的脱壳等教程,还没有安卓包重签名等流程 DIE64在哪里下呀,没找到 小工具能提供下么? 没找的老二和老三,就看到程序脱壳相关下面有很多不知道怎么用,还有一个strongOD 哇,我看懂了! 太细致了,感谢。 好家伙,头一次看懂了{:1_918:} 谢谢楼主如此细心的教导,收益匪浅
希望继续分享下去,谢谢 一句话,通俗易懂 收藏了之后看 第一集再哪里看啊