几种用OD脱壳方法

合集下载

(完整版)常见几种脱壳方法

(完整版)常见几种脱壳方法

----------------<小A分>----------------一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳(强壳)两种"UPX" "ASPCAK" "TELOCK" "PELITE" "NSPACK(北斗)" ... "ARMADILLO" "ASPROTECT" "ACPROTECT" "EPE(王)" "SVKP" ...顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。

当然加密壳的保护能力要强得多!-----------<小A分割线>-------------二、工具的认识OllyDBG ring3 shell层级别的动态编译工具、PEid、ImportREC、LordPE、softIce ring0级别调试工具-------------<小A分割>-------------------三、常见手动脱壳方法预备知识1.PUSHAD (入栈/压栈)代表程序的入口点,2.POPAD (弹栈/出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。

------------<小A分割线>--------------------方法一:单步跟踪法1.用OD载入,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。

也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入7.一般有很大的跳转(大跨段),比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN 的一般很快就会到程序的OEP。

OD破壳

OD破壳

但愿大家互相进修进修,大家对于破解都不是很了解,人们想学破解,可是去无从入手,所以决议为大家写1个破解初级读物的教程,但愿能大家了解破解有一些帮忙,但愿能有更多的人踏入破解的大门1.低级,修改步伐,用ultraedit等东西修改exe文件,称暴力破解,略称爆破中级,追出软体的注册码高级,开具注册机2.经常使用破解东西(1)侦壳东西:PEiD(2)消息联合的OllyDbg引领破解东西的新潮水一,此刻咱们起首来进修下破解的开端,爆破~1.侦壳要破解1个软体起主要做的就是侦壳,要侦壳就要对壳有绝对似的了解,家喻户晓,软体作者用编程语言编著好软体后,是将它编译成扩展名为EXE的可执行文件编译为EXE的目的有两点:(1)有一些版权信息需要掩护起来,不克不及让别人随心改动,如作者的姓名、软体名称等;(2)需要给步伐"瘦身",从而利便存储、使用以及网上传道输送为了编译,会用到一些软体它们能将可执行文件压缩以及对信息加密(图1),实现上面所说的两个功效,这些个软体称为加壳软体为软体加上的东东就称为"壳"加壳软体差别于一般的WinZIP、WinRAR等打包类压缩软体加壳软体是压缩可执行文件的,压缩后的文件可以直接运行最多见的加壳软体有3个:ASPACK 、UPX、PEcompact终究它们是主流,据计数,用它们加壳的软体约占市面所有软体的90%!其它不经常使用的加壳软体有ASPROTECT、PETITE 、NEOLITE、TELOCK等软体最多见的编程语言是Delphello,Visual Basic(略称VB),Visual C++(略称VC)了解些编程的常识,会让破解更加轻车熟道底下来讲侦壳,此刻比力经常使用侦壳软体就PeiD,他具备华美的图形界面外壳整合(新增到鼠标右键)功效令使用更加利便,撑持拖放操作配置时,务请将"扩展到鼠标右键"打上对号其使用要领是,鼠标点住XX.exe,按鼠标右键,选"使用PEid扫描"便可;"壳"的信息就显示在底部2.破解东西OD有关OD的先容我把他放到附件里了,这个是看雪论坛的先容,是比力周全的,至少我感觉比我写的要好,所以大家根据他可以大好的了解OD3.爆破实例爆破是破解的开端,所说的爆破,就是指路程经过过程修改可执行文件的源文件,降临达相应的目的你半大白?呵呵,举个例子好了,好比说某同享软体,它比力用户输入的注册码,要是用户输入的,跟它路程经过过程用户名(或其它)算出来的注册码相等的话(也就是说用户输入的注册码不错了),那末它就会跳到注册乐成的处所去,不然就跳到堕落的处所去大白过来了吧,咱们只要找到这个跳转指令,把它修改成咱们需要的"造型",如许,咱们是否就可认随心所欲了?一,破解时经常使用的汇编指令如下,汇编较弱者可先强行违住,以后就可逐步理解了cmp a,b //比力a与bmov a,b //把b的值送给a,使a=bret //归回主步伐nop //无效用,英文"no operation"的简写,意思是"do nothellong"(呆板码90) (解释:ultraedit打开编辑exe文件时瞅见90,等同于汇编语句nop)call //挪用子步伐,子步伐以ret末端je 或jz //若相等则跳(呆板码74 或0F84)jne或jnz //若不相等则跳(呆板码75或0F85)jmp //无前提跳(呆板码EB)jb //若小于则跳ja //若大于则跳jg //若大于则跳jge //若大于等于则跳jl //若小于则跳jle //若小于等于则跳pop xx //xx出栈push xx //xx压栈更为具体的指令请查阅汇编册本4.破解常见修改,参看表1汇编指令修改相应的呆板码修改(路程经过过程16进制编辑器实现)jnz/jne->nop 75->90jnz/jne -> jmp 75-> EBjz/je->nop 74->90jz/je -> jmp 74-> EBjnz -> jz 75->74 或0F 85 -> 0F 84jz -> jnz 74->75 或0F 84 -> 0F 85jnz -> jz 75->74 或0F 85 -> 0F 84je-> jne 74->75 或0F 84 -> 0F 85表1 破解常见修改(1)修改成jmp(其示意向见图6)je(jne,jz,jnz) =>jmp相应的呆板码为EB (意思是堕落信息向上找到的熬头个跳转),jmp的效用是绝对跳,无前提跳,从而跳过底下的堕落信息例如:xxxxxxxxxxxx 堕落信息,如注册码不对,sorry,未注册版不乐成,"Function Not Avaible in Demo","Command Not Avaible"或"Can't save in Shareware/Demo"等,咱们但愿把它跳过,不让它浮现……xxxxxxxxxxxx 不错线路地点,直接跳转到这搭(图6)(2)修改成nop(其示意向见图7)je(jne,jz,jnz) =>nop相应的呆板码90 (不错信息向上找到的熬头个跳转),nop的效用是抹掉这个跳转,使这个跳转失效,掉去效用,从而使步伐顺利降临紧跟其后的不错信息处例如:xxxxxxxxxxxx 不错信息,如注册乐成,谢谢您的撑持等,咱们但愿它不被跳过,让它浮现,所以步伐绝对是要顺利降临这搭,不克不及跳转在OD中,咱们一般是把不需要设置NOP,只是把JE或JNZ改成JNZ或JE便可,也就是把相等则跳改成不相等则跳,或不相等则跳改成相等则跳,把跳转过程相反,到达更改步伐流程的目的……xxxxxxxxxxxx 堕落信息,咱们但愿不要跳到这搭,不让它浮现!(图7)二,怎样迅速确定暴破物1,确定目标有无加壳没有最好了,有的话看是否常见壳,可不成以用现存脱壳软体迅速脱掉弄不稳定的话,权时放弃它"我吃定你了!",不要如许,老兄不就是一壳么,不要以及他一般见地记取,你今日的重点是爆破不要主次不分、舍本逐末,这也是刚开始学者最易犯的纰缪这方面,我用PEID它可以整合到资源菜谱,很是利便2,确定用啥子语言编著我的经验是,DELPHI的步伐布局清楚、紧凑密切,最好阐发其次是VC,BC,ASM,比力难的是VB,要有绝对似的经验才可弄定一两个2,在反汇编文件中找到可疑点经典语句自不消说,好比,"恭喜","注册乐成","注册码纰缪""失效的注册码","Thank You","Sorry"...找到后,一般向上不远方就可瞅见前提转移语句JZ、JNZ、JLE啥子的究竟上,只有少少少少的软体只修改注册判断就OK的所以咱们要把更多的注意力转到其它的可疑点如未注册标识,逾期正告,次数标识,NAG会话框...,谙练使用各类东西的搜刮功效是基本功之一找到后再向上不远方找前提转移语句三,怎样暴破当你找准爆破点后,你会发明有许多种爆破的要领均可以达目的1,修改转移语句我一般如许改:不需要跳,我就把JNE改成JE或把JE改成JNZ需要跳,我就把JE或JNZ改成JMP底下的附件我做了1个有关爆破的视频文件教程,但愿对大家理解爆破有帮忙4.动态追踪破解技巧-破解经典句式以下是经典的比力组合,常常是注册码的浮现处,所以被称为破解经典句式⑴mov eax,[ ] //这搭可所以地址,也可所以其它寄放器或mov eax [ ]mov edx,[ ] //同上,凡是这两个地址就储存着意要信息或可所以pop edxcall XXXXXXXX //要害calltest eax,eax //eax为标记位jz(jnz)或jne(je) //要害跳转⑵mov eax,[ ] //这搭可所以地址,也可所以其它寄放器mov edx,[ ] //或是pop edx,凡是该地址就储存着意要信息call XXXXXXXX //要害calljne(je) //要害跳转⑶mov eax,[ ] //这搭可所以地址,也可所以其它寄放器mov edx,[ ] //同上,凡是储存着意要信息cmp eax,edx //要害比力jnz(jz) //要害跳转。

OD破解常用方法

OD破解常用方法

[分享] OD破解常用方法[复制链接]一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。

当然加密壳的保护能力要强得多!二、常见脱壳方法预备知识1.PUSHAD (压栈)代表程序的入口点,2.POPAD (出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。

方法一:单步跟踪法1.用OD载入,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。

也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。

Btw:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。

一般情况下可以轻松到达OEP!方法二:ESP定律法ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。

(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!3.选中下断的地址,断点--->硬件访--->WORD断点。

使用OllyDbg快速脱壳

使用OllyDbg快速脱壳

破解教程★★使用OllyDbg快速脱壳★★使用OllyDbg快速脱壳dOSKEY lEE目标:采用ASPACK、UPX加壳的NOTEPAD.EXE工具:OllyDbg 1.09英文版、DUMP插件、PEditor系统:Win98SE关键词:脱壳、OllyDbg、OD、DUMP、PUSHAD、POPAD预备知识大多数壳都有一个共同的特点。

在壳准备开始解压时都要执行PUSHAD,当壳解压完时都要调用POPAD。

到底PUSHAD和POPAD是什么干什么用的呢?其实PUSHAD是用来将所有普通寄存器顺序进栈的指令,POPAD是所有普通寄存器顺序出栈指令。

POPAD的出栈顺序和PUSHAD相反。

壳为了保护寄存器,便在解压前将所有寄存器进栈保护起来,当解压完成后又将寄存器出栈,恢复其原貌,并将IP设置为原程序的OEP。

这样我们就可以通过这个特点快速脱掉多种软件的壳。

ASPACK篇先用ASPACK将NOTEPAD.EXE加壳。

用OllyDbg(以下简称OD)载入。

看见光标停在壳的入口处。

0040D001 > 60 PUSHAD ;壳的入口。

准备开始解压,保护寄存器0040D002 E8 03000000 CALL NOTEPAD.0040D00A……我们不管它,直接向下翻页找POPAD指令。

在40D3AF处找到POPAD……0040D3AF 61 POPAD ;解压完成,恢复寄存器0040D3B0 75 08 JNZ SHORT NOTEPAD.0040D3BA0040D3B2 B8 01000000 MOV EAX, 10040D3B7 C2 0C00 RETN 0C0040D3BA 68 CC104000 PUSH NOTEPAD.004010CC ;返回到原程序OEP处0040D3BF C3 RETN……选定40D3AF这一行,F4运行到此处。

在这里说明壳已经完成解压工作。

并且返回到原程序的入口处。

OD使用完全教程

OD使用完全教程

教你如何破解软件,OD破解软件,OD使用教程教你如何破解软件,OD破解软件,OD使用教程大家好,这几天我上网大概看了一下,ITyouth论坛的内容真的应有尽有,不知道应该写什么了,所以我想了一晚上终于想到了还是教你们些破解知识吧!我想对大家来说都很有用吧!我将会一直坚持下去保证课堂质量,有不会的可以提出来问我,尽量解答(呵呵!我也是鸟嘛!)废话不多说!支持我的就往下看吧!先教大家一些基础知识,学习破解其实是要和程序打交道的,汇编是破解程序的必备知识,但有可能部分朋友都没有学习过汇编语言,所以我就在这里叫大家一些简单实用的破解语句吧!----------------------------------------------------------------------------------------------------------------语句:cmp a,b//cmp是比较的意思!在这里假如a=1,b=2 那么就是a与b比较大小.mov a,b//mov是赋值语句,把b的值赋给a.je/jz//就是相等就到指定位置(也叫跳转).jne/jnz//不相等就到指定位置.jmp//无条件跳转.jl/jb//若小于就跳.ja/jg//若大于就跳.jge//若大于等于就跳.----------------------------------------------------------------------------------------------------------------------这些都是我们在以后的课程中会经常遇到的语句,应该记住它们,接下来我们在讲讲破解工具的使用:我们破解或给软件脱壳最常用的软件就是OD全名叫ODbyDYK界面如图1它是一个功能很强大的工具,左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值.右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色突出显示.cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态.左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息.右下角的是当前堆栈情况,还有注释啊.恩,今天的课程就上到这了,大家可以在自己的电脑下试试OD,了解了解OD,下堂课我将破解一款软件给大家看,我们就用今天讲的语句和OD来破解,在以后的课程里我还会教大家脱壳,因为现在的软件为了维护版权多数都加了壳的,所以要破解就必须脱壳!好了!下节课见!88OD下载地址:百度一下吧破解工具------ODbyDYK v1.10 12.06.rar 5.1MB【原创】"白拿"软件破解班(二)呵呵!大家好!我是散人,我们又见面了!恩,按照上节课说的那样今天来破解个软件给大家看看!大家只要认真看我的操作一定会!假如还是不明白的话提出难点帮你解决,还不行的话加我QQ!有时间给你补节课!呵呵!好!孔子曰:“废话不可多说也”OK!!!~!!!先讲下预备知识:JZ/JE//相等则跳转JNE/JNZ//不相等则跳转JMP //无条件跳转目标柏林:LRC傻瓜编辑器杀杀杀~~~~~~~~~简介:本软件可以让你听完一首MP3歌曲,便可编辑完成一首LRC歌词。

脱壳教程1

脱壳教程1

脱壳教程1:认识脱壳一切从“壳”开始首先大家应该先明白“壳”的概念。

在自然界中,大家对壳这东西应该都不会陌生了,植物用它来保护种子,动物用它来保护身体等等。

同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。

它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。

就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。

由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。

就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。

最早提出“壳”这个概念的,据我所知,应该是当年推出脱壳软件 RCOPY 3 的作者熊焰先生。

在几年前的 DOS 时代,“壳”一般都是指磁盘加密软件的段加密程序,可能是那时侯的加密软件还刚起步不久吧,所以大多数的加密软件(加壳软件)所生成的“成品”在“壳”和需要加密的程序之间总有一条比较明显的“分界线”。

有经验的人可以在跟踪软件的运行以后找出这条分界线来,至于这样有什么用这个问题,就不用我多说了。

但毕竟在当时,甚至现在这样的人也不是很多,所以当 RCOPY3 这个可以很容易就找出“分界线”,并可以方便的去掉“壳”的软件推出以后,立即就受到了很多人的注意。

老实说,这个我当年在《电脑》杂志看到广告,在广州电脑城看到标着999元的软件,在当时来说,的确是有很多全新的构思,单内存生成 EXE 可执行文件这项,就应该是世界首创了。

但它的思路在程序的表现上我认为还有很多可以改进的地方(虽然后来出现了可以加强其功力的 RO97),这个想法也在后来和作者的面谈中得到了证实。

在这以后,同类型的软件想雨后春笋一般冒出来,记得住名字的就有: UNKEY、MSCOPY、UNALL .... 等等,但很多的软件都把磁盘解密当成了主攻方向,忽略了其它方面,当然这也为以后的“密界克星”“解密机器”等软件打下了基础,这另外的分支就不多祥谈了,相信机龄大一点的朋友都应该看过当时的广告了。

普通壳的脱壳方法和脱壳技巧

普通壳的脱壳方法和脱壳技巧

普通壳的脱壳方法和脱壳技巧脱壳是指将一个已经打包的可执行文件(通常是二进制文件)恢复为原始的、可以读取和修改的形式。

这在软件逆向工程、安全审计和病毒分析等领域都是非常常见的操作。

下面我将为你介绍普通壳的脱壳方法和脱壳技巧。

一、普通壳的脱壳方法1.静态脱壳静态脱壳是指对目标文件进行分析,找到壳的解密和载入代码,然后将其解密出来,恢复原始的可执行文件。

- 调试器脱壳:使用调试器(如OllyDbg、IDA Pro等)来单步执行目标程序,找到壳的解密代码,并通过调试器的内存分析功能来寻找待解密的数据。

一旦找到解密的算法和密钥,就可以将目标文件完全解密出来。

- 静态分析脱壳:通过静态分析工具(如IDA Pro、Hopper等)来逆向目标文件,找到壳的解密算法和密钥,然后将其解密出来。

2.动态脱壳动态脱壳是指在目标程序运行时,通过对程序的运行过程进行监控和分析,找到壳的解密和载入代码,并将其解密出来,恢复原始的可执行文件。

-API钩取脱壳:通过使用一个DLL注入到目标程序的地址空间中,然后使用API钩子来监控API函数的调用,找到壳解密代码的入口点。

一旦找到壳解密代码的起始地址,就可以通过调试器执行目标程序,并在合适的时机将解密出来的代码或数据导出。

- 内存转储脱壳:通过在目标程序的执行过程中,使用内存转储工具(如winhex、ollydump等)将目标程序的内存转储出来,然后使用静态脱壳的方法对内存转储文件进行分析。

二、普通壳的脱壳技巧1.加载器分析在进行脱壳之前,首先要分析目标文件中的加载器。

加载器是壳程序的一部分,用于解压和载入真正的可执行文件。

通过分析加载器,可以确定载入代码和解密算法的位置,并推导出解密算法的密钥。

2.寻找壳代码的入口点在进行脱壳时,需要找到壳代码的入口点,即壳程序开始执行的位置。

可以通过调试器或者静态分析工具来寻找入口点,并标记下来以备后续使用。

3.内存和断点设置通过内存和断点设置,在目标程序运行过程中定位到关键的内存位置。

用OD手脱未知壳 - 顺风猪病通3.0脱壳 + 破解

用OD手脱未知壳 - 顺风猪病通3.0脱壳 + 破解

用OD手脱未知壳- "顺风"猪病通3.0脱壳+ 破解【脱壳作者】刹那恍惚【使用工具】OllyDBG 汉化第二版,LordPE Deluxe 增强版,ImportREC v1.6F,PEiD v0.94,FI 4.01a【脱壳平台】WinXP SP2【软件名称】猪病通3.0【软件大小】22.0 MB【保护选项】作者自己保护【加壳方式】未知壳【软件简介】《猪病通XP版》计算机软件是由农业部饲料工业中心、北京广胜丰联信息技术有限公司的专家合作研究的新一代智能型兽医临床诊断软件,系统采用了现代计量医学的研究成果,应用概率统计的方法,如最大似然法、逐步判别法和聚类分析法等,其主要诊断原理是通过对兽医临床诊断的大量样本、专家经验和书本知识对疾病信息和症状信息进行分值计量定义,找出症状与疾病之间的统计规律,确定出经验公式,然后根据对这些症状信息的统计处理而得出诊断结果。

【下载地址】/products/download/swine.rar【脱壳声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)--------------------------------------------------------------------------------【脱壳内容】一、准备工作老规矩设置Ollydbg忽略所有异常,用IsDebug 1.4插件去掉Ollydbg的调试器标志。

1&nbsp;侦壳:用PEiD查壳Borland Delphi 4.0 - 5.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用FI 4.01a 查显示为Borland Delphi 5 !! (*PE)二,去效验+ 寻找OEP + DUMPOD&nbsp;载入后有入口警告0082420C&nbsp;&gt;&nbsp;&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;PUSH&nbsp;EBP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; 程序入口0082420D&nbsp;&nbsp;&nbsp;&nbsp;8BEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MO V&nbsp;EBP,ESP0082420F&nbsp;&nbsp;&nbsp;&nbsp;B9&nbsp;0E000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;ECX,0E00824214&nbsp;&nbsp;&nbsp;&nbsp;6A&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH &nbsp;000824216&nbsp;&nbsp;&nbsp;&nbsp;6A&nbsp;00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUSH &nbsp;000819885&nbsp;&nbsp;&nbsp;&nbsp;66:8B4C24&nbsp;0E&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;CX,WORD&nbsp;PTR&nbsp;SS:[ ESP+E]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; 返回到这里0081988A&nbsp;&nbsp;&nbsp;&nbsp;66:8B5424&nbsp;0A&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;DX,WORD&nbsp;PTR&nbsp;SS:[ ESP+A]0081988F&nbsp;&nbsp;&nbsp;&nbsp;66:8B4424&nbsp;08&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;AX,WORD&nbsp;PTR&nbsp;SS:[ ESP+8]00819894&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;6BFFFFFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;flDiagS.00819804 00819899&nbsp;&nbsp;&nbsp;&nbsp;DD5C24&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FSTP&nbsp;QWORD&nbsp; PTR&nbsp;SS:[ESP+18]0081989D&nbsp;&nbsp;&nbsp;&nbsp;9B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;WAIT0081989E&nbsp;&nbsp;&nbsp;&nbsp;66:8B4424&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;AX,WORD&nbsp;PTR&nbsp;SS:[ ESP+16]008198A3&nbsp;&nbsp;&nbsp;&nbsp;50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;PUSH&nbsp;EAX008198A4&nbsp;&nbsp;&nbsp;&nbsp;66:8B4C24&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;CX,WORD&nbsp;PTR&nbsp;SS:[ ESP+18]008198A9&nbsp;&nbsp;&nbsp;&nbsp;66:8B5424&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;DX,WORD&nbsp;PTR&nbsp;SS:[ ESP+16]008198AE&nbsp;&nbsp;&nbsp;&nbsp;66:8B4424&nbsp;14&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;AX,WORD&nbsp;PTR&nbsp;SS:[ ESP+14]008198B3&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;D0FDFFFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;flDiagS.00819688 008198B8&nbsp;&nbsp;&nbsp;&nbsp;DC4424&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FADD&nbsp;QWORD&nbsp ;PTR&nbsp;SS:[ESP+18]008198BC&nbsp;&nbsp;&nbsp;&nbsp;DD1C24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FSTP&nbsp;Q WORD&nbsp;PTR&nbsp;SS:[ESP]008198BF&nbsp;&nbsp;&nbsp;&nbsp;9B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;WAIT008198C0&nbsp;&nbsp;&nbsp;&nbsp;DD0424&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FLD&nbsp;QW ORD&nbsp;PTR&nbsp;SS:[ESP]008198C3&nbsp;&nbsp;&nbsp;&nbsp;83C4&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD&nbsp;ESP, 20008198C6&nbsp;&nbsp;&nbsp;&nbsp;C3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;RETN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;; 返回到008245F4F8&nbsp;单步,走到008198C6 处时返回到008245F4008245EF&nbsp;&nbsp;&nbsp;&nbsp;E8&nbsp;8452FFFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;flDiagS.00819878&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; 获取本地时间。

OD使用完全教程

OD使用完全教程

教你如何破解软件,OD破解软件,OD使用教程教你如何破解软件,OD破解软件,OD使用教程大家好,这几天我上网大概看了一下,ITyouth论坛的内容真的应有尽有,不知道应该写什么了,所以我想了一晚上终于想到了还是教你们些破解知识吧!我想对大家来说都很有用吧!我将会一直坚持下去保证课堂质量,有不会的可以提出来问我,尽量解答(呵呵!我也是鸟嘛!)废话不多说!支持我的就往下看吧!先教大家一些基础知识,学习破解其实是要和程序打交道的,汇编是破解程序的必备知识,但有可能部分朋友都没有学习过汇编语言,所以我就在这里叫大家一些简单实用的破解语句吧!----------------------------------------------------------------------------------------------------------------语句:cmp a,b//cmp是比较的意思!在这里假如a=1,b=2 那么就是a与b比较大小.mov a,b//mov是赋值语句,把b的值赋给a.je/jz//就是相等就到指定位置(也叫跳转).jne/jnz//不相等就到指定位置.jmp//无条件跳转.jl/jb//若小于就跳.ja/jg//若大于就跳.jge//若大于等于就跳.----------------------------------------------------------------------------------------------------------------------这些都是我们在以后的课程中会经常遇到的语句,应该记住它们,接下来我们在讲讲破解工具的使用:我们破解或给软件脱壳最常用的软件就是OD全名叫ODbyDYK界面如图1它是一个功能很强大的工具,左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值.右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色突出显示.cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态.左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息.右下角的是当前堆栈情况,还有注释啊.恩,今天的课程就上到这了,大家可以在自己的电脑下试试OD,了解了解OD,下堂课我将破解一款软件给大家看,我们就用今天讲的语句和OD来破解,在以后的课程里我还会教大家脱壳,因为现在的软件为了维护版权多数都加了壳的,所以要破解就必须脱壳!好了!下节课见!88OD下载地址:百度一下吧破解工具------ODbyDYK v1.10 12.06.rar 5.1MB【原创】"白拿"软件破解班(二)呵呵!大家好!我是散人,我们又见面了!恩,按照上节课说的那样今天来破解个软件给大家看看!大家只要认真看我的操作一定会!假如还是不明白的话提出难点帮你解决,还不行的话加我QQ!有时间给你补节课!呵呵!好!孔子曰:“废话不可多说也”OK!!!~!!!先讲下预备知识:JZ/JE//相等则跳转JNE/JNZ//不相等则跳转JMP //无条件跳转目标柏林:LRC傻瓜编辑器杀杀杀~~~~~~~~~简介:本软件可以让你听完一首MP3歌曲,便可编辑完成一首LRC歌词。

脱壳找OEP7种基本方法

脱壳找OEP7种基本方法

脱壳找OEP7种基本方法七种找OEP的方法OD手动脱壳的7种法则方法一:单步跟踪法1.用OD载入,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。

也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN 的一般很快就会到程序的OEP。

PS:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。

一般情况下可以轻松到达OEP!方法二:ESP定律法ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突变成红色。

(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!3.选中下断的地址,断点--->硬件访--->WORD断点。

4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP。

方法三:内存镜像法1:用OD打开软件!2:点击选项——调试选项——异常,把里面的忽略全部√上!CTRL+F2重载下程序!3:按ALT+M,打开内存镜象,找到程序的第一个.rsrc.按F2下断点,然后按SHIFT+F9运行到断点,接着再按ALT+M,打开内存镜象,找到程序的第一个.rsrc.上面的.CODE(也就是00401000处),按F2下断点!然后按SHIFT+F9(或者是在没异常情况下按F9),直接到达程序OEP!方法四:一步到达OEP1.开始按Ctrl+F,输入:popad(只适合少数壳,包括UPX,ASPACK壳),然后按下F2,F9运行到此处2.来到大跳转处,点下F8,到达OEP!方法五:最后一次异常法1:用OD打开软件2:点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序3:一开始程序就是一个跳转,在这里我们按SHIFT+F9,直到程序运行,记下从开始按SHIFT+F9到程序运行的次数m!4:CTRL+F2重载程序,按SHIFT+F9(这次按的次数为程序运行的次数m-1次)5:在OD的右下角我们看见有一个"SE句柄",这时我们按CTRL+G,输入SE句柄前的地址!6:按F2下断点!然后按SHIFT+F9来到断点处!7:去掉断点,按F8慢慢向下走!8:到达程序的OEP!方法六:模拟跟踪法1:先试运行,跟踪一下程序,看有没有SEH暗桩之类2:ALT+M打开内存镜像,找到(包含=SFX,imports,relocations)内存镜像,项目30地址=0054B000大小=00002000 (8192.)Owner=check 00400000区段=.aspack包含=SFX,imports,relocations类型=Imag 01001002访问=R初始访问=RWE3:地址为0054B000,如是我们在命令行输入tc eip<0054B000,回车,正在跟踪ing。

几种用OD脱壳方法

几种用OD脱壳方法

几种用OD脱壳方法OD(Object Dump)即对象转储,是指将内存中的对象转化为文件或其他形式的过程。

脱壳是指从被加壳/保护的程序中提取可执行代码的过程。

以下是几种常见的用OD脱壳方法:1.静态脱壳:静态脱壳是指在未运行程序的情况下进行脱壳。

这种方法适用于一些简单的壳或保护机制。

静态脱壳一般包括以下步骤:-分析被加壳程序的文件结构,确定壳的类型和解密算法。

-定位加密/保护的代码段和目标程序的入口点。

-提取加密的代码段并进行解密。

-删除或替换壳代码,将解密的代码插入到目标程序的入口点。

2.动态脱壳:动态脱壳是指在运行被加壳程序的过程中进行脱壳。

这种方法更加复杂,但可以应对一些更强大的保护机制。

动态脱壳的步骤如下:- 使用调试器(如OllyDbg、IDA Pro等)加载被加壳程序,并设置断点。

-运行程序并观察其行为。

一般可以通过跟踪内存或执行流来确定代码解密、动态链接等操作。

-当程序执行到解密/动态链接等关键点时,暂停程序并检查相关内存中的加密数据。

-通过观察内存数据的变化和算法的操作,找出解密算法、关键数据等。

-使用调试器的功能(如修改内存、暂停/恢复执行等)来修改和恢复解密的数据,最终达到脱壳的目的。

3.虚拟机检测:有时候,加壳程序会在运行时检测是否在虚拟机中执行。

如果发现运行在虚拟机中,则不会执行解密操作。

因此,一种常见的脱壳方法是绕过虚拟机检测。

这可以通过修改虚拟机检测函数的返回值来实现。

通过调试器可以定位到虚拟机检测的相关代码,并修改相应的变量或寄存器值。

4.内存脱壳:部分加壳程序并不是一次性将整个程序都解密并运行,而是采用内存加载的方式,将加密的代码段逐步解密到内存中执行。

这种情况下,可以使用内存脱壳来获取完整的可执行文件。

内存脱壳的步骤如下:-使用调试器加载被加壳程序。

-执行程序,观察其行为并找到解密/加载代码的操作。

-在解密/加载代码执行前暂停程序,此时可使用调试器的内存修改功能,在内存中找到加密的代码段,并修改为解密后的代码。

脱壳教程_精品文档

脱壳教程_精品文档

脱壳教程标题:脱壳教程引言:脱壳是指将软件或应用程序的包装层(也称为保护壳或加密层)移除,以便对其进行更深入的分析、修改或逆向工程。

脱壳过程可以帮助软件开发人员或安全研究人员理解程序的内部运行机制,发现其中的漏洞或者进行优化改进。

本文将介绍脱壳过程的基本原理和几种常见的脱壳工具以及其使用方法。

一、脱壳的基本原理脱壳的基本原理是通过破解或绕过软件的保护机制来移除保护壳。

保护机制通常包括各种检测和防御技术,如代码混淆、加壳、逆向工程等。

常见的保护壳有UPX、ASProtect、Enigma等。

脱壳的过程涉及对程序进行调试、分析和修改。

二、脱壳工具介绍及使用方法1. OllyDbgOllyDbg是一款著名的逆向工程和调试工具,也是脱壳过程中经常使用的工具之一。

它具有强大的调试和反汇编功能,可以帮助分析程序的执行流程、内存变化等。

使用OllyDbg进行脱壳时,首先需要加载待脱壳的程序,然后设置断点,跟踪程序执行,找到关键的保护机制的位置,最终移除保护壳。

2. IDA ProIDA Pro是一款功能强大的反汇编和逆向工程工具。

它可以将程序转换为易读的汇编代码,并提供强大的导航和分析功能。

脱壳时可以使用IDA Pro来分析和修改程序的内存和代码。

它可以帮助找到程序的入口点、解密过程等,从而移除保护壳。

3. x64dbgx64dbg是一款开源的调试器工具,适用于32位和64位的Windows系统。

它具有用户友好的界面和丰富的调试功能,并支持脱壳过程中的动态调试和反调试技术。

使用x64dbg进行脱壳时,可以跟踪程序的执行流程、查看内存变化,找到关键代码并进行修改。

三、脱壳过程示例以某款加壳的软件为例,介绍基本的脱壳过程。

1. 加载待脱壳的程序到脱壳工具中,并设置断点。

2. 运行程序,在断点处停下来,观察程序的状态和执行流程。

3. 跟踪程序的执行,查找关键的保护机制位置,例如解密函数、保护壳的入口等。

4. 分析并修改程序的内存和代码,移除保护壳。

OD基础知识介绍

OD基础知识介绍

OD基础知识介绍一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。

当然加密壳的保护能力要强得多!二、常见脱壳方法预备知识1.PUSHAD (压栈)代表程序的入口点,2.POPAD (出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。

方法一:单步跟踪法1.用OD载入,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。

也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。

Btw:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。

一般情况下可以轻松到达OEP!方法二:ESP定律法ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。

(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!3.选中下断的地址,断点--->硬件访--->WORD断点。

手动脱壳基础知识-电脑资料

手动脱壳基础知识-电脑资料

手动脱壳基础知识-电脑资料单步跟踪法:1.OD载入,不分析代码,。

2.近CALL—F7,远CALL—F8,实现向下的跳转。

3.有回跳处,下一句代码处—F4 (右键—代码断点运行到所选)4.大的跳转(大跨段,JMP***或JE***或RETN),很快就会到OEP内存镜像法:1.OD载入软件2.点选项—调试选项—忽略全部—CTRL+F2重载3.ALT+N打开内存镜像,找程序第一个.rsrc—F2下断—SHIFT+F9运行到断点,再打开找到程序第一个.rsrc上面的.code处(就是00401000处),F2下断—SHIFT+F9或无异常按F9,到OEP 模拟跟踪法:无暗桩情况下使用1.F9试运行,跑起来就无SEH暗桩之类的,否则就有.2.ALT+N打开内存镜像,找到包含“=sfx,imports reloco tions”字符3.地址=*** 命令行输入:tceip<***,回车.ESP定律法:1.F8,观察OD右上角寄存器中ESP有没有实现(红色)2.命令行下 DD ******(当前代码ESP值),回车3.DD就选中下端地址,断点—硬件访问—DWORD断点,F9运行,到跳转处按F8 到DEP最后一次异常法:1.OD打开—点选项—调试选项—去掉所有异常—CTRL+F2重载.2.SHIFT+F9.只到程序运行,记下次数M3.CTRL+F2重载—按SHIFT+F9(次数为M-1次)4.按CTRL+G—输入OE右下角的SE句柄前的地址.5.F2下断—SHIFT+F9到断点处.6.去断按F8,到OEP.一步到位OEP法:只适合少数壳,如UPX,ASPACK1.CTRL+F—输入:POPAD.回车查找—F2下断—F9运行到此处.2.来到大跳转处,点F8到OEP.SFX法:1.设置OD,忽略所有异常.2.切换到SFX选项卡,选择“字节模式跟踪实际入口”,确定.3.重载—“否”压缩代码,到OEP.。

od破解软件教程破解教程

od破解软件教程破解教程

od破解软件教程破解教程希望大家互相学习学习,发现现在大家对于破解都不是很了解,很多人想学破解,但是去无从入手,所以在BCG小组大家的商议下,决定为大家写一个破解入门的教程,希望能大家了解破解有一些帮助,希望能有更多的人踏入破解的大门。

1.初级,修改程序,用ultraedit等工具修改exe文件,称暴力破解,简称爆破中级,追出软件的注册码高级,写出注册机2.常用破解工具(1)侦壳工具:PEiD(2)动静结合的OllyDbg引领破解工具的新潮流。

一,现在我们首先来学习下破解的初步,爆破~1.侦壳要破解一个软件首先要做的就是侦壳,要侦壳就要对壳有一定的了解,众所周知,软件作者用编程语言编写好软件后,是将它编译成扩展名为EXE的可执行文件。

编译为EXE 的目的有两点:(1)有一些版权信息需要保护起来,不能让别人随意改动,如作者的姓名、软件名称等;(2)需要给程序“减肥”,从而方便存储、使用和网上传输。

为了编译,会用到一些软件。

它们能将可执行文件压缩和对信息加密(图1),实现上述两个功能,这些软件称为加壳软件。

为软件加上的东东就称为“壳”。

加壳软件不同于一般的WinZIP、WinRAR等打包类压缩软件。

加壳软件是压缩可执行文件的,压缩后的文件可以直接运行。

最常见的加壳软件有3个:ASPACK 、UPX、PEcompact。

毕竟它们是主流,据统计,用它们加壳的软件约占市面所有软件的90%!其他不常用的加壳软件有ASPROTECT、PETITE 、NEOLITE、TELOCK等。

软件最常见的编程语言是Delphi,Visual Basic(简称VB),Visual C++(简称VC)。

了解些编程的知识,会让破解更加轻车熟路。

下面来说侦壳,现在比较常用侦壳软件就PeiD,他具有华丽的图形界面。

外壳整合(添加到鼠标右键)功能令使用更加方便,支持拖放操作。

配置时,务请将“扩展到鼠标右键”打上对号。

其使用方法是,鼠标点住,按鼠标右键,选"使用PEid扫描"即可;“壳”的信息就显示在底部。

新手必须知道的脱壳及修复工具解读

新手必须知道的脱壳及修复工具解读

新手必须知道的脱壳及修复工具很多软件都加了壳,除了易语言软件很少加壳。

对于我们这些新手也叫菜鸟级的,既然想学破解,脱壳是第一步,我也在学习啦,第一步就是个人电脑里面必须装的必备脱壳及修复工具,现在发一个工具介绍,我想对新手应该有用,大家可以复制工具名字,去网上下载:脱壳工具以及脱壳一般流程查壳(PEID、FI、PE-SCAN)--->寻找OEP(OD)--->脱壳/Dump(LordPE、PeDumper、OD自带的脱壳插件、PETools)--->修复(Import REConstructor)【工具介绍】1、查壳PEID--功能强大的侦壳工具,自带脱壳插件(但是,效果不怎么样)工作原理:核心是userdb.txt(大家看看就完全明白了)[通过壳的入口特征码进行辨认]使用方法:可以拖放、也可以把PEID添加到右键菜单里面去FI--功能强大的侦壳工具,DOS界面。

使用方法:可以拖放、可以使用DOS命令行2、寻找OEPollydbg的四个区域左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值.右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色突出显示.cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态.左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息.右下角的是当前堆栈情况,还有注释啊.几个经常使用的快捷键F2:在需要的地方下断点(INT3型断点)F3:选择打开程序F4:运行到所选择的那一行F7:单步进入F8:单步跟踪F9:执行程序(运行程序)其中要特别讲一下3个F9的区别和作用:根据Ollydbg.hlp的中文翻译Shift+F9 - 与F9相同,但是如果被调试程序发生异常而中止,调试器会首先尝试执行被调试程序指定的异常处理(请参考忽略Kernel32中的内存非法访问)。

(完整版)常见几种脱壳方法(可编辑修改word版)

(完整版)常见几种脱壳方法(可编辑修改word版)

----------------<小 A 分>----------------一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳(强壳)两种"UPX" "ASPCAK" "TELOCK" "PELITE" "NSPACK(北斗)" ... "ARMADILLO" "ASPROTECT" "ACPROTECT" "EPE(王)" "SVKP" ...顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。

当然加密壳的保护能力要强得多!-----------<小 A 分割线>-------------二、工具的认识OllyDBG ring3 shell 层级别的动态编译工具、PEid、ImportREC、LordPE、softIce ring0 级别调试工具-------------<小 A 分割>-------------------三、常见手动脱壳方法预备知识1.P USHAD (入栈/压栈)代表程序的入口点,2.P OPAD (弹栈/出栈)代表程序的出口点,与 PUSHAD 想对应,一般找到这个OEP 就在附近3.O EP:程序的入口点,软件加壳就是隐藏了 OEP(或者用了假的 OEP/FOEP),只要我们找到程序真正的 OEP,就可以立刻脱壳。

------------<小 A 分割线>--------------------方法一:单步跟踪法1.用OD 载入,点“不分析代码!”2.单步向下跟踪 F8,实现向下的跳。

也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按 F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个 CALL 的,我们就 F7 跟进去,不然程序很容易跑飞,这样很快就能到程序的 OEP6.在跟踪的时候,如果运行到某个 CALL 程序就运行的,就在这个 CALL 中F7 进入7.一般有很大的跳转(大跨段),比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN 的一般很快就会到程序的 OEP。

脱壳找OEP7种基本方法

脱壳找OEP7种基本方法

脱壳找OEP7种基本方法七种找OEP的方法OD手动脱壳的7种法则方法一:单步跟踪法1.用OD载入,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。

也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN 的一般很快就会到程序的OEP。

PS:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。

一般情况下可以轻松到达OEP!方法二:ESP定律法ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突变成红色。

(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!3.选中下断的地址,断点--->硬件访--->WORD断点。

4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP。

方法三:内存镜像法1:用OD打开软件!2:点击选项——调试选项——异常,把里面的忽略全部√上!CTRL+F2重载下程序!3:按ALT+M,打开内存镜象,找到程序的第一个.rsrc.按F2下断点,然后按SHIFT+F9运行到断点,接着再按ALT+M,打开内存镜象,找到程序的第一个.rsrc.上面的.CODE(也就是00401000处),按F2下断点!然后按SHIFT+F9(或者是在没异常情况下按F9),直接到达程序OEP!方法四:一步到达OEP1.开始按Ctrl+F,输入:popad(只适合少数壳,包括UPX,ASPACK壳),然后按下F2,F9运行到此处2.来到大跳转处,点下F8,到达OEP!方法五:最后一次异常法1:用OD打开软件2:点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序3:一开始程序就是一个跳转,在这里我们按SHIFT+F9,直到程序运行,记下从开始按SHIFT+F9到程序运行的次数m!4:CTRL+F2重载程序,按SHIFT+F9(这次按的次数为程序运行的次数m-1次)5:在OD的右下角我们看见有一个"SE句柄",这时我们按CTRL+G,输入SE句柄前的地址!6:按F2下断点!然后按SHIFT+F9来到断点处!7:去掉断点,按F8慢慢向下走!8:到达程序的OEP!方法六:模拟跟踪法1:先试运行,跟踪一下程序,看有没有SEH暗桩之类2:ALT+M打开内存镜像,找到(包含=SFX,imports,relocations)内存镜像,项目30地址=0054B000大小=00002000 (8192.)Owner=check 00400000区段=.aspack包含=SFX,imports,relocations类型=Imag 01001002访问=R初始访问=RWE3:地址为0054B000,如是我们在命令行输入tc eip<0054B000,回车,正在跟踪ing。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

几种用OD脱壳方法
OD是反编译软件的一种,可以将可执行文件转换为可读的源代码。

脱壳是指从已经加密或保护的软件中提取出原始的未加密或未保护的代码。

下面是几种常见的OD脱壳方法:
1.静态分析法:
静态分析是指对二进制文件进行分析,了解其结构、函数调用和控制
流程等信息。

通过对逆向工程的分析,可以分析出加密算法和解密函数的
位置。

使用静态分析法脱壳的主要步骤如下:
-打开OD软件,将加密的可执行文件加载到OD中。

- 使用各种OD工具,如IDA Pro,OllyDbg等,显示可执行文件的汇
编代码。

-通过分析代码和调试程序,找到加密算法和解密函数的位置。

-根据找到的位置,修改程序的执行流程,跳过解密函数,使得程序
直接执行解密后的代码。

2.动态调试法:
动态调试是指在运行时对程序进行调试和分析。

使用动态调试法脱壳
的主要步骤如下:
-打开OD软件,将加密的可执行文件加载到OD中。

- 使用动态调试工具,如OllyDbg或GDB等,在程序执行期间跟踪和
记录函数调用和内存访问。

-通过分析函数调用和内存访问,找到加密算法和解密函数的位置。

-在找到的位置上下断点,执行程序并使用OD工具查看解密后的代码。

3.内存镜像法:
内存镜像法是指通过将程序加载到内存中,并对内存进行镜像和分析
来脱壳。

使用内存镜像法脱壳的主要步骤如下:
-运行加密的可执行文件。

- 使用内存镜像工具,如DumpBin或WinDBG等,将程序的内存镜像
保存到磁盘上。

-使用OD软件加载内存镜像文件。

-通过分析内存镜像文件,找到加密算法和解密函数的位置。

-修改程序的执行流程,跳过解密函数,使得程序直接执行解密后的
代码。

这些方法都可以用于将加密的可执行文件转换为可读的源代码,从而
进行进一步的分析和修改。

脱壳过程需要进行深入的逆向工程和对程序的
理解,因此需要具备一定的技术和知识。

此外,需要注意的是,脱壳过程
可能涉及到破解和侵犯版权的行为,应遵守法律规定,并仅限于安全研究
和个人学习的目的使用。

相关文档
最新文档