EXE Pack ——脱壳
0x00
查看程序信息:
程序运行状态:
0X01调试器调试
一路F7,可以来到壳程序解密数据的代码,通过反汇编窗口可以实时的跟踪被修改的数据情况:
之后F7 进行单步调试,可以看到很多API函数的调用,在这里需要注意的是,CreateProcessA函数的调用,会新建一个与现有进程名字一样的新进程:
这个进程其实是一个守护进程的作用,在创建进程之后,就会退出当前进程,所以我们要做的操作就是绕过壳代码的创建进程这一操作,直接在上边的JE指令进行改跳转操作,或者直接将je指令修改为JMP指令:
在这一步跳过之后,继续单步调试:
之后会跳转到sysenter指令处,同时可以发现此处有SEH异常处理程序:
下一步。跳转到异常处理函数下断点,然后F9直接运行起来,程序断在异常处理函数上:
之后继续单步调试,就可以发现经典的ESP定律标志:pushad,到这里直接ESP定律就可以直接到OEP:
到达OEP
后边就可以直接脱壳Dump了
最后还需要注意的一点就是,在这里Dump之后,用工具进行修复转储文件的时候,如果用IRC进行修复的时候,修复之后运行程序,会发生错误,程序报错,在偏移00000000的地方错误,后来跟进去看了一下,是因为在执行完一个函数之后,在返回的时候,EIP的值被设为00000000,这个时候触发了异常,但是怎么解决,暂时还没想到好的方法。建议换一个修复工具(我使用的是Scylla_x86),换了修复工具重新进行修复之后,程序可以运行(也不太清楚什么原因,遇到这种情况的话,就换一种工具尝试一下吧)
0X02
总结:在这个程序的脱壳过程中,需要注意两点
1:守护进程的绕过
2:对异常函数的处理
3:对于sysenter指令的理解(该指令是从用户态到内核态的快速调用),在这个程序里边使用,作用应该是触发一个异常,然后让SEH异常处理链去处理
4:在修复转出的文件的时候,多试一下别的程序,多一种尝试,生活更美好
EXE Pack ——脱壳相关推荐
- !EP(EXE Pack)1.4.exe
首先查壳,显示是!EP(EXE Pack)1.4.exe 根据查阅国外文献资料,试运行,发现该壳重新运行创建了自己,有一定的反调试.就像下面的情况,F9执行程序,调试器直接中断,程序还能正常运行. 于 ...
- 脱壳 !EP(EXE PACK)1.2
0x1 查壳 将程序拖入!Exeinfo PE显示如下. 程序拖入OD 看到第一行有pushad指令,利用ESP定律,执行一步F8.ESP定律是典型的堆栈平衡,因为只要保存了所有寄存器的值都是要开始解 ...
- CTF-UPX脱壳加壳讲解;(详细版)
在做CTF-RE题的时候,下载的题目附件会发现缺少函数方法的现象,说明这个文件就被加壳处理了; 这个是加壳状态下的; 脱壳后~~~~~~~ 如何发现是加壳的呢? 除了开头所描述的方法,还有第二种 用E ...
- 【原创】脱UPX加壳的notepad.exe
[文章标题]: 脱UPX加壳的notepad.exe [文章作者]: 微微虫[S.T.C][DCT] [作者邮箱]: ]nuxgod@163.com [作者主页]: http://wwcgodsoft ...
- 新老压缩/加密壳大全洪雨收集推荐
upx.aspack.fsg.Aspack Scrambler.ExeStealth.ID Application Protector.V2Packer.WWPack32.XComp0.98.bamb ...
- NuGet安装和使用
1. NuGet是什么? NuGet is a Visual Studio 2010 extension that makes it easy to add, remove, and update l ...
- 「娃娃分享」-常见自校检分析实例.
自校检是许多软件的保护手段之一,对软件加个简单的壳再增加自校检在一定程序上可以抵挡住一大部分新手,不过,对许多人来说,这个保护已经很弱了..下面讲几种常见的解决自校检方法,写的粗略,希望大家补充. 1 ...
- 基于微软开发平台构建和使用私有NuGet托管库
本篇blog包含使用TFS2017,VS2017等平台和工具搭建和使用NuGet库等基本过程,为团体提供更加自动化和高效的研发活动支持. 作为以产品线或者以专属业务为扩展的项目类型的软件研发团体,都会 ...
- RK3328量产刻录完整镜像
RK3328量产刻录完整镜像 目录 RK3328量产刻录完整镜像 前言 1. 先把默认的Android系统烧写成Ubuntu18.04系统 2.开机初始配置 3.部署生产环境 4.制作根文件系统镜像 ...
最新文章
- reportNG定制化之失败截图及日志
- 阿里巴巴Java开发手册———个人追加的见解和补充(一)
- 计算机视觉编程——图像内容分类
- RabbitMQ消息队列(二):”Hello, World“
- dmg文件转换iso ultraiso_mac去除dmg打开密码的方法
- 【详解】CPU执行算术运算或逻辑运算时,常将源操作数和结果暂存在()中
- 技术人员职业生涯的红色警报
- 8支团队正在努力构建下一代Ethereum
- Git-github 的基本应用
- 0基础学python做什么工作好-写给0基础小白:Python能干什么?就业前景好不好?怎么开始学?...
- 有道云笔记数学公式大全
- 一文介绍解银行卡验证api接口详情
- python中快速验证输入的是否为回文
- 极简图床 + 阿里云OSS 做图片外链
- 一个小透明作者到出版书籍,我的心路历程分享给各位作者
- 开发好APP了如何上架apple store市场
- C语言:指针的偏移步长、结构体成员的偏移量、嵌套结构体成员的偏移量、结构体的内存对齐
- Cisco Packet Tracer 超网(CIDR)设置实验
- 鸿蒙系统和安卓的区别在哪里,有什么不同
- POI实现 Excel插入图片
热门文章
- 关于GA、SNAPSHOT等版本号的意义
- 注意这些技巧,成为软文营销专家
- 华硕hd7850_参测产品之华硕Dragon HD7850 2G_华硕 龙骑士DRAGON HD7850-DC2O-2GD5 _显卡评测-中关村在线...
- 基于深度学习的肺部CT影像识别——采用U-net、3D CNN、cGAN实现肺结节的检测(一)
- Mybatis完整版(二)
- java乱码问题解决总结
- 电动汽车关键技术——“三电”系统
- CAD建筑制图教程之全屏编辑
- 如何用机器人监听老板微信?
- 手游盒子开发之iOS签名区别