- 7
- 0
- 约4.77千字
- 约 11页
- 2017-03-05 发布于天津
- 举报
【Exploit-ID】脱壳实战_译者小樱.doc
【翻译】脱壳实战
作者:Arunpreet Singh
译者:Sakura(小樱)
声明:原文于2011-12-14刊登在国外著名安全网站Exploit-ID,转载请注明出处。
/link/63.pdf
使用工具
1)OllyDbg
2)Process Explorer
3)PUPE
4)PE Tools
5)Hex WorkShop什么是如果你在方面有研究,那你一定听过或者使用过它。目的是保护可执行文件,这给分析或者增加了难度。在多数,的主要作用是使它们完全不被检测到。
事实上,一般的表现形式是可执行文件,我的意思是它们的来源是无法识别的,公开的可以被杀毒软件检测到。的用处是使它们无法被检测。
“加壳”原理
加壳包括了两个部分1)目标文件
2)Stub,就是一段字节型数据,是汇编代码的数据形式,在插入目标进程后可以被执行。两者是如何一起工作的呢?
。将使用加密算法(例如常用的RC4,AEC)加密。
通过加密,就可以杀毒软件的静态检测。在静态检测当中,杀毒软件尝试去找出可执行文件的模式(patterns)并匹配签名。但是因为文件已被编译,所以杀毒软件现在找不出文件的模式。
在可执行代码前添加
当你运行可执行文件时,将同时运行stub,这时stub将对加密文件进行解密。
注意:解密后的文件仍在内存中。
内存中执行解密文件。
这其实是的核心部分,也被叫做“”。有很多PE的方法。但在大多数情况下,采用了一种方法从内存中执行文件,这是我们下面要讲的重点内容。
让我来解释一下这个方法。这个方法的原始链接地址是:.sg/code/loadexe.html
我只是重复了一下这些步骤。我建议你你参考原文,理解可以更深刻些。
在原文中列出的步骤如下:
使用带有CREATE_SUSPENDED参数的CreateProcess API创建一个挂起进程,任意一个EXE文件都可以,把这个叫做第一个EXE。
调用GetThreadContext API获取挂起进程的寄存器值(线程内容)。挂起进程的EBX寄存器指向进程的PEB。EAX寄存器中包含了(第一个EXE)进程的入口点。
从挂起进程的PEB中获取基地址,例如[EXB+8]处。
在内存中加载第二个EXE(使用ReadFile),并手动执行必要的(alignment)。如果文件和内存不同,则是必要的。
如果第二个EXE文件的基地址跟挂起进程相同,并且映像大小=挂起进程的映像大小,那就使用WriteProcessMemory函数去把第二个EXE的映像进内存空间的挂起进程中,从基地址开始。
否则,使用ZwUnmapViewOfSection去第一个EXE文件的映像(由ntdll.dll导出),并用VirtualAllocEx在挂起进程的内存中为第二个EXE文件分配足够的内存空间。一定要提供第二个EXE文件的基地址给VirtualAllocEx API,确保Windows在特定的区域给我们提供内存。下一步,复制第二个EXE的映像到挂起进程的内存空间中从分配地址开始(使用WriteProcessMemory)
修补第二个EXE的基地址到挂起进程的PEB[EBX+8]处。
设定线程thread的EAX到第二个EXE的入口点处。
使用SetThreadContext API修改挂起进程的线程内容Thread context。
使用ResumeThread API去重新执行挂起进程。
一般的,当你在Ollydbg中加载一个打包的执行文件时,通常会出现警告“the code section is compressed”(代码区域已被压缩)或者“the entrypoint is outside the code section”(入口点不在代码区域内),不管怎样,Olly是在给你暗示说执行文件是打包的。不过被加密过的执行文件(使用上面所列的步骤加密的)在Olly中加载时不会出现任何的警告。
解压缩包(Unpacking)
使用PEID扫描
看上去很无辜 :P
让我们加载到Olly..看有没有警告
一切看上去都很正常,看起来很像是个正常的VB执行文件,Olly中没有出现任何的警告。
我们的目标是在上述所用方法中,。接下来,给CreateProcessA和CreateProcessW(两者ascii和unicode版本)如果它中断,它是否在挂起模式SUSPENDED MODE(同时你也可以把断点放在ReadProcessMemory和WriteProcessMemory APIs去更准确地检查下)
我把断点放在 CreateProcessW和CreateProcessA,并在Olly上运行。正如你所看到的,它在CreateProcessW处中断..同时你也看到堆stack中的参数
您可能关注的文档
- 4.结案查核结果.doc
- 4.线性空间.ppt
- 404社会学系.doc-华中科技大学研究生招生信息网.doc
- 414空城计.ppt
- 4.手足口病个案调查表.doc
- 4PortADSL2+RouterSpecification-D-Link.doc
- 4、儿童孤独症的诊断.ppt
- 4、翻越远方的大山-西横街小学.doc
- 4月5日出发.doc
- 4银行自有资本与风险性资产之计算方法说明及表格.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)