万能断点了解一下
前言
放假了,继续学破解。shark恒第10课,万能断点。主要用在PE头别修改的问题上。
下面开始说正事了哈
正文
第10课的课件是MP3转换器,首先拿去查壳(常规操作)
载入OD(在OD可以更加直观的看到PE头被修改了)
然后F9运行程序
回到反汇编窗口,右键单击查看->user32模块
然后在user32模块里右键->查找->二进制字符串,搜索F3 A5 8B C8 83 E1 03 F3 A4 E8(万能断点处)
然后点击确定就会跳到反汇编窗口(注意:系统领空)
打开PE输入好假码之后进行,断点操作
点击确认后,发现程序断了下来
Alt+F9跳出系统领空
然后F8单步就能见到假码,真码,真码与假码对比
(真码)
(真假码对比)
(将真码拷贝出来,关闭OD)注册即可
这些天破解的总结
逆向第二课总结
破解要用反向思维来想。比如他跳转不成功进入到报错。那他跳转成功是否是正确的呢?
破解要用反向思维来想。比如他跳转不成功进入到报错。那他跳转成功是否是正确的呢?
注意:当修改CPU区的代码的时候按空格,修改必须保证修改的代码为16进制
逆向第一课总结:
1.首先判断软件有没有加壳,用peid看,如果加了壳就找对应的脱壳工具,进行脱壳。
2.然后运行软件,观察软件的运行。获取关键字。如:密码错误的那个
3.把软件拖入od进行搜索关键字,双击关键字的那行。然后跳到CPU区,进行断点。f6运行程序看程序是不是跳到哪里。如果跳转成立的线是红色的,不成立则为灰色,跳转标识符>
,然后进行noop填聪(就是什么也没有),然后软件就破解了。
自己可以考虑用C写个简单的登陆程序,进行破解。完毕
注意:搜索用智能搜索,搜索关键字要模糊化,不要全部打上。搜索跳转到CPU区之后先看软件的运行流程,分析软件,下断点,按f6运行程序进行调试。然后进行下一步。
破解完后如果要进行保存,点击复制到可执行文件,选择,保存文件。给他取个名字
破解不联网登陆软件
常规思路就是:查壳,脱壳,然后拖入od,看看他有没有跳过什么,如果是红色线跳转的话noop填充把跳转删了,如果是灰色线跳转不超过的话,把开始跳转的汇编代码改为jmp 无条件跳转,如果有个x前面加个0
当你脱壳之后,因为现在壳都有压缩功能。所有脱壳之后文件会变大,如果文件变大了。如果PE有检测文件大小功能,如果文件大小不等于
有壳时候的大小就会退出PE。判断是否有自效验就是,脱壳后PE打不开。
破解方法:
将PE拖入到OD设置API断点->常用断点->文件大小断点。F9运行,发现程序被断下来了,在右下角的窗口可以看见判断函数,点击反汇编数据窗口跟踪,然后如果发现。cmp 十六进制(文件大小),然后用Noop填充即可
一般有关键跳上面就有关键call,z载入OD的程序可以观察一下有什么注册成功之类的关键字。上面就有关键跳和关键call,找主要跳转。如果关键跳跳过了正确程序的话,可以从关键call中进行更改使关键call达到正确的程序,关键call和关键跳中有笔记,test可以仔细观察一下
一般有注册或者登陆之类的。载入OD找好关键字之后,双击跳到反汇编窗口之后。可以发现判断跳转的都是je
先用API断点函数下一个ReadFile读文件的函数,如果有壳则用401000跳到字符区。然后搜索关键字,双击关键字跳到反汇编窗口F2下断点,将读文件的断点禁止,运行软件跳到断点
之后往上看判断,是否有真码
ini类型重启验证(重启验证之后没有任何关键字提示),我们就用不了ReadFile类型断点任何在搜索关键字来搜索真码,但是我们可以用BP下个GetPrivateProfileStringA断点,专门用于对付ini重启验证。
知识点记录:
程序领空:OD左上角文件名如果文件是程序名就是程序领空
系统领空:OD左上角文件名如果不是程序名的话就是系统领空
如果遇见系统领空的话就按Alt+F9(或者在调试按执行到用户代码)跳出系统领空,然后单步寻找真码
因为PE头部被修改,将PE载入到OD之后直接运行程序。右键->查找->模块user32。到了模块user32之后进行查找->二进制字符串->搜索:F3 A5 8B C8 83 E1 03 F3 A4 E8,双击跳转。然后在合适的步骤下断点,等程序断下来之后
Alt+F9跳出系统领空,找真码即可。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:万能断点了解一下
本文作者:九世
发布时间:2018-09-08, 17:40:18
最后更新:2019-04-19, 20:36:16
原始链接:http://jiushill.github.io/posts/7d87ec35.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。