脱壳第二讲,手动脱壳PECompact 2.x
PS: 此博客涉及到PE格式.所以观看此博客你要熟悉PE格式
首先,逆向inc2l这个工具,汇编中可能会用的 inc头文件转换为lib的工具
但是他有壳,先查壳.
发现是这个壳
利用Esp定律,脱掉这个壳.
首先,inc2l.exe是32位的,所以要放到虚拟机中.
一丶OD打开分析
1.OD分析
发现,首先给eax赋值,然后压栈eax,那么eax肯定会访问,那么我们F8到push eax的下面,也就是4022EA的位置
2.查看栈数据
查看栈数据.
那么在栈位置12FFC0的位置,肯定会有访问,我们数据窗口 定位到ESP的位置,也就是0012FFC0
3.在数据窗口定位栈顶位置.
CTRL + G命令定位.
由于方便一起截图,事先已经定位过来了.
4.针对栈内容下硬件访问断点(4个字节)
选中栈中地址的值,也就是 push 的eax的值,下硬件访问断点
5.F9运行起来,直到跟到我们的模块分析
第一次F9
依次类推,下方肯定会跳转到我们的程序里面.
一直找到一个跳转到eax的位置
此时EAX的值是 004022E4
而JMP的位置是0040AC1E
由此可以判断出,入口点的位置是4022E4
为什么?
因为壳一般加密之后,如果跳转到入口点,那么它是一个远跳
此时看JMP的地址,和跳的位置就是一个远跳.
6.F7跟入JMP eax
此时如果F7跟进来了,那么就是下面的样子
真正的入口点
8.使用OD插件,Dump内存,脱壳.
此时我们可以使用OD插件的dump内存的插件,在入口点位置脱壳了.
弹出界面:
点击脱壳,选择位置,存储你脱壳后的文件.
此时OD不要关闭.
9.使用导入表修复工具,修复脱壳后的IAT表
(关于IAT表请熟悉PE格式后看)
此时OD调试的进程不要关闭,也就是带壳的inc2l程序,如果关闭了,那么重新进行上面几步,只需到定位到入口点即可.
现在脱壳完毕,IAT表肯定让壳给抹掉了,而OD的dump工具修复的IAT表也不全,所以使用一个IAT表格修复工具修复.
我用的工具是 ImportREC1.7 具体下载可以去下载看雪大礼包.
(当然我会上传,但是此工具比较老,会有Bug,一会修复完之后手工修复即可.)
9.1打开工具.并选择我们OD挂起的未脱壳的inc2l的程序.
9.2 OEP位置给我们的OPE的偏移
OEP位置给我们的OEP的偏移,或者让它自动查找.
然后点击Get Imports
9.3 点击 Fix Dump 给我们脱壳的程序修复
现在导入表已经有了,那么点击Fix Dump给我们刚才脱壳后的程序修复一下.
9.4运行我们的脱壳程序查看是否可以运行.
提示错误,Winhex打开,查看PE格式.
首先,我们发现我们的导入表,被我们的导入表修复工具加了一个新的节, 也就是mackt的节
那么我们此时我们首先定位 sizeofHead (DOS头+ NT头 + 节表的总大小)我们看下是多少.
有没有自动给我们增加.
并没有增加,大小还是200,那么是错的,因为加了一个分页
也就是mackt的位置的大小并没有加上,也不是说没有加上,而是正好在200的位置处,也就是文件中1F0的位置.
那么这个程序出BUG了,此时我们改为1000 或者你自己看下多大.
保存文件,重新打开我们的壳程序试一下还会崩溃吗.
为了方便,拷贝到住电脑上,然后命令行打开查看.
成功运行,因为这个程序点开会一闪而过,所以截图不了,所以命令行打开,出来这个界面就成功了.
课堂代码资料: 链接:http://pan.baidu.com/s/1kVL1f6Z 密码:2ltj
作者:IBinary
出处:http://www.cnblogs.com/iBinary/
版权所有,欢迎保留原文链接进行转载:)
脱壳第二讲,手动脱壳PECompact 2.x的更多相关文章
-
脱壳第一讲,手工脱壳ASPack2.12的壳.ESP定律
脱壳第一讲,手工脱壳ASPack2.12的壳.ESP定律 一丶什么是ESP定律 首先我们要明白什么是壳.壳的作用就是加密PE的. 而ESP定律就是壳在加密之前,肯定会保存所有寄存器环境,而出来的时候, ...
-
手动脱PeCompact 2.20壳实战
作者:Fly2015 PeCompact壳又是一个没有听说过的壳,需要脱壳的程序是吾爱破解培训的第一课的选修作业四.最近对脱壳有点上瘾了,当然也遭受了脱壳受挫的无奈,但是比较幸运还是把这个壳给搞了. ...
-
upx 手动脱壳
查壳 UPX 0.89.6 - 1.02 / 1.05 - 2.90 (Delphi) stub -> Markus & Laszlo upx这类压缩壳手动脱壳非常简单. 一.查找oep ...
-
32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数
32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数 (如果想看所有代码,请下载课堂资料,里面有所有代码,这里会讲解怎么生成一个窗口程序) 一丶32位汇编编写Windows窗口程序 首 ...
-
PE文件格式详解,第二讲,NT头文件格式,以及文件头格式
PE文件格式详解,第二讲,NT头文件格式,以及文件头格式 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) PS:本篇博客 ...
-
WebApp 安全风险与防护课堂(第二讲)开课了!
本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 在昨天的公开课中,由于参与的小伙伴们积极性和热情非常高,我们的讲师Carl ...
-
POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取
第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个 ...
-
Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
-
【军哥谈CI框架】之入门教程之第二讲:分析CI结构和CI是怎么工作的
[军哥谈CI框架]之入门教程之第二讲:分析CI结构和CI是怎么工作的 之入门教程之第二讲:分析CI结构和CI是如何工作的大家好!上一节,我们共同部署了一个CI网站,做到这一点非常简单,但是,亲们, ...
随机推荐
-
rsyslog及logrotate小结
[root@node1 logrotate.d]# ls dracut haproxy httpd mcelog nginx ppp psacct syslog yum yum install n ...
-
python:列表与元组
1.python包含六种内建的序列,列表和元组是其中的两种,列表可以修改,元组则不能 2.通用序列操作 2.1 索引:和C#的区别是索引可以为负数,最后一个元素索引为-1,索引超出范围会报错 例:&g ...
-
elasticsearch,python包pyes进行的处理
elasticsearch:高性能搜索引擎,官网:https://www.elastic.co/products/elasticsearch/ 对于它相信大家都不陌生,es的使用已经广泛存在 各大网站 ...
-
PHP中“简单工厂模式”实例讲解
原创文章,转载请注明出处:http://www.cnblogs.com/hongfei/archive/2012/07/07/2580776.html 简单工厂模式:①抽象基类:类中定义抽象一些方法, ...
-
android录像增加时间记录(源码里修改)
需要做一个功能,录像和播放时都显示录时的时间,参考文章链接找不到了,不好意思,这里记录一下,防止下次找不到了.另一篇关于源码录像的流程请参考 http://www.verydemo.com/demo_ ...
-
ExpandableListView二级列表
package com.example.dajj; import android.os.Bundle;import android.app.Activity;import android.view.M ...
-
JSON数据解析(转)
上篇随笔详细介绍了三种解析服务器端传过来的xml数据格式,而对于服务器端来说,返回给客户端的数据格式一般分为html.xml和json这三种格式,那么本篇随笔将讲解一下json这个知识点,包括如何通过 ...
-
Winform---文件夹操作
一.文件夹的操作 private void button1_Click(object sender, EventArgs e) { //文件夹操作 ////新建文件夹 //Directory.Crea ...
-
Js中的window.parent ,window.top,window.self详解
在应用有frameset或者iframe的页面时,parent是父窗口,top是最*父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法 ...
-
TestNG进行接口测试,脚本及可维护性框架
注: 以下内容引自http://blog.csdn.net/u010321474/article/details/49977969 TestNG进行接口测试,脚本及可维护性框架 原创 2015年11月 ...