怎么手动脱壳??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么手动脱壳??相关的知识,希望对你有一定的参考价值。

毕竟自己动手丰衣足食软件又不是万能,想自己手动脱壳,要用到什么辅助软件和技术?要用到编程吗?我会些VB。

参考技术A 手动脱壳就是不借助自动脱壳工具,而是用动态调试工具SOFTICE或TRW2000来脱壳。这课谈谈一些入门方面的知识,如要瞭解更深的脱壳知识,请参考《脱壳高级篇》这课。   工具   *调试器:SoftICE 、TRW2000   *记忆体抓取工具:Procdump等;   *十六进位工具:Hiew、UltraEdit、Hex Workshop等;   *PE编辑工具: Procdump、PEditor等;     名词概念   ★PE文件:Microsoft设计了一种新的档格式Portable Executable File Format(即PE格式),该格式应用於所有基於Win32的系统:Windows NT、Windows 2000、Win32s及Windows 95/98。     ★基址(ImageBase ):是指装入到记忆体中的EXE或DLL程式的开始位址,它是Win32中的一个重要概念。 在Windows NT中,缺省的值是10000h;对於DLLs,缺省值为400000h。在Windows 95中,10000h不能用来装入32位的执行档,因为该位址处於所有进程共用的线性位址区域,因此Microsoft将Win32可执行档的缺省基底位址改变为400000h。     ★RVA:相对虚拟位址(Relative Virual Address),是某个项相对於档映象位址的偏移。例如:装载程式将一个PE档装入到虚拟位址空间中,从10000h开始的记忆体中,如果PE中某个表在映射中的起始地址是10464h,那麼该表的RVA就是464h。虚拟位址(RVA)=偏移位址+基址(ImageBase )     ★Entry Point:入口点,就是程式在完成了对原程式的还原後,开始跳转到刚还原的程式执行,此时的位址就是入口点的值。   2、步骤     ★确定壳的种类     一般拿到软体後,可用工具FileInfo、gtw、TYP32等侦测文件类型的工具来看看是何种壳,然後再采取措施。     ★入口点(Entry Point)确定     对初学者来说定位程式解壳後的入口点确定较难,但熟练後,入口点查找是很方便的。 决大多数 PE 加壳程式在被加密的程式中加上一个或多个段。 所以看到一个跨段的 JMP 就有可能是了。如:UPX 用了一次跨段的 JMP , ASPACK 用了两次跨段的 JMP 。 这种判断一般是跟踪分析程式而找到入口点,如是用TRW2000也可试试命令:PNEWSEC,它可让TRW2000中断到入口点上。   PNEWSEC:执行直到进入一个 PE 程式记忆体的新的 section时产生中断点。(如不懂,以後到脱壳高级篇自会明白)     另外也可用D.boy的冲击波2000,它能轻易的找到任何加密壳的入口点,     ★dump取记忆体己还原档     找到入口点後,在此处可以用 Procdump的FULL DUMP功能来抓取记忆体中整个档,   如是用TRW2000也可用命令:     makepe命令含义:从记忆体中整理出一个指令名称的PE格式的exe档, 当前的 EIP 将成为新的程式入口,生成档的 Import table 已经重新生成过了。生成的PE档可执行任何平台和微机上。     pedump命令含义:将PE档的记忆体映射直接映射到指定的档裏。生成的档只能在本机执行,不能在其他系统平台或微机执行。      ★修正刚dump取的档     如是用 Procdump的FULL DUMP功能脱壳的档,要用 Procdump或PEditor等PE编辑工具修正入口点(Entry Point)。 参考技术B 加密解密一般通常会用到汇编语言~ 软件的话,会用到反汇编软件 不过 像shell这种东西来讲 压缩率会比较高 有的压缩方式还会改程序入口,并且加一些花指令使程序达到免杀的目的所以自己手动脱壳是相当困难的还是用对应的脱壳软件做比较好~

针对ASProtect 2.2 or 2.3 SKE的软件怎么用Ollydbg脱壳,破解

参考技术A 4大金钢之一哦.. 在这里能跟你说清楚就不叫四大金钢了..
如果那软件重要的话,你还是花钱找个人帮你脱吧

以上是关于怎么手动脱壳??的主要内容,如果未能解决你的问题,请参考以下文章

upx 手动脱壳

逆向基础:软件手动脱壳技术入门

记手动脱壳

记手动脱壳

UPX ... ASPACK怎么脱壳

如何给程序脱壳