nSPack 手工脱壳过程

由于本人第一次进行手工去壳,记录一下过程~
这篇文章以XCTF中的reverse进阶题crackme为例子
题目链接:
链接:https://pan.baidu.com/s/1qYHTb0l6-25RdyvAPinbYA
提取码:z8zf
或者:https://adworld.xctf.org.cn/task/answer?type=reverse&number=4&grade=1&id=4966

本题需要的工具的链接:
三个工具都在其中~
链接:https://pan.baidu.com/s/1NWjomUuBk88xnH1DM1hUYQ
提取码:qpse

利用ESP定律脱壳,关于ESP定律
还要找到OEP,所谓的OEP,意即程序的入口点,可以用OD载入,不分析代码。

首先已知是nSPack壳,直接用OD打开,发现pushfd和pushad两句关键句:

直接按F8执行到pushad,ESP变化,直接ESP右键,给ESP设置一个断点

F9直接执行到popfd,可以看见下面有一条JMP指令
而且是跳得比较远的,根据北斗的特点来说
下面这一条语句很有可能是跳转到OEP的:

直接F8单步执行JMP,跳转到:

看上去应该是OEP了,,,,,
记住这个OEP地址,后面会需要:00401336
接下来使用另一个工具PETools
利用PETools获取转存:

得到一个Dumped.exe
双击运行不能正常运行,与原来运行不一致
这是就需要另一个工具 ImportREC
利用它来修复IAT:

  • 第一步选择你的程序,
  • 第二步输入刚刚记下来的OEP地址
  • 第三步自动搜索
  • 第四步获取输入表
  • 第五步修复转存文件

(下图是执行到第三步的图)

得到一个Dumped_.exe文件:

继续查壳:

脱壳成功~~

PS:
这个过程说不上有多复杂,但是有很多知识点还是不知道的
第一次上手这个脱壳,有点生疏,查阅了许多资料
还有一点,再进行脱壳时,OD貌似不能关闭
在这个过程中本人关闭了一次,导致找不到执行的crakeme.exe文件
要学的东西还是很多啊~
关于本题的做法可以参考一下我的博客(本题做法),嘻嘻嘻

nSPack 手工脱壳过程相关推荐

  1. ESP定律手工脱壳步骤

    ESP定律手工脱壳步骤 第一步:查壳 第二步:用OD载入. 第三步:按F8单步向下走,注意,当右边的ESP(堆栈指针寄存器),和EIP( 指令指针寄存器)同时变红时,就停下. 第四步:记下ESP地址, ...

  2. [转] 菜鸟手脱VMP,附上脱壳过程和自己写的脚本,可跨平台

    转载:http://www.52pojie.cn/thread-467703-1-1.html 工作需要要脱一个VMP壳,我是一个从来没接触过脱壳的人.瞬间那种心情遇到的人应该都知道!没办法硬着头皮找 ...

  3. et199PHP,[原创]ET199带狗脱壳过程

    2015-7-6 11:34 molebox解包应该完整了,我根据其他能运行的程序解包的,可能还是在于脱壳过程,我q:1930988 错误日志中应该是访问系统dll Direct3D: Version ...

  4. 使用ESP定律_手工脱壳

    ESP定律脱壳一般的加壳软件在执行时,首先要初始化,保存环境(保存各个寄存器的值),一般利用PUSHAD(相当于把所有寄存器都压栈),当加壳程序的外壳执行完毕以后,再来恢复各个寄存器的内容,通过跨区段 ...

  5. 《加密与解密》ASProtect 2.1x SKE 脱壳过程中遇到的问题与解决方法及脱壳小结

    在学习<加密与解密>脱壳部分时,做了一次关于ASProtect的脱壳实验,但按照书上的步骤会报保护错误(Protect error).为了明白原因,我 继续往下深入.除了分析结果,以下还记 ...

  6. 手工脱壳之 FSG压缩壳【IAT反修复】

    一.工具及壳介绍 使用工具:Ollydbg,PEID,ImportREC,LoadPE FSG壳 2.0: 二.脱壳 1.追踪 修复IAT表代码 入口处,没有pushad特征,无法使用ESP定律. 查 ...

  7. 手工脱壳之AsPack压缩脱壳-随机基址

    一.工具及壳介绍 二.脱壳 1.ESP定律脱壳 2.单步跟踪脱壳 3.基址重定位的修复 一.工具及壳介绍 使用工具:Ollydbg.PEID.ImportREC.LoadPE.010 Editor 查 ...

  8. 2019UNCTF-竞技赛 部分WP

    2019UNCTF-竞技赛 部分WP emmmm,比赛结束了,,,, 无奈本人太菜,只能做几个题,,,, flag部分白嫖,部分靠混,,,, web checkin 直接白嫖~~,nodejs注入,而 ...

  9. PE格式:手工实现各种脱壳后的修复

    手工修复导入表结构 实现手工修复导入表结构 1.首先需要找到加壳后程序的导入表以及导入了那些函数,使用PETools工具解析导入表结构,如下. 2.发现目录FOA地址为0x00000800的位置,长度 ...

最新文章

  1. VASP计算HSE06带隙INCAR
  2. mysql 存储过程 数组参数_问个小问题,关于存储过程传递数组参数
  3. 【深度学习】弱/半监督学习解决医学数据集规模小、数据标注难问题
  4. C# 仿金山毒霸启动和关闭淡入淡出效果
  5. 运维常见问题及解决方法汇总(持续更新...)
  6. js中prototype用法(转)
  7. 论文解读:ACL2021 NER | 基于模板的BART命名实体识别
  8. Python科学计算扩展库numpy中的广播运算
  9. android蓝牙设置特征属性,Android BLE蓝牙详细解读(二)
  10. ORB_SLAM3在ubuntu18.04安装和初步测试+轨迹评估
  11. struts2拦截器interceptor的三种配置方法
  12. 《Redis开发与运维》学习第八章
  13. linux下录制视频流,Ubuntu Linux 下的PSP视频输出以及录制
  14. 在Win7下去掉快捷方式箭头的简便手动操作
  15. 网狐精华版后台修改记录
  16. 【FICO】标准成本、计划成本、实际成本、目标成本
  17. 2021-09-13 多组EQ切换
  18. Linux驱动修炼之道-内存映射 mmap()/phys_to_virt()
  19. android 执行bin文件是什么意思,将可执行文件复制到android中的system / bin
  20. pyqt QLineEdit 详细用法

热门文章

  1. MIT发布2018年10大突破性技术,3项与嵌入式工程师相关!
  2. 光标自动定位到输入框
  3. directx 9.0c sdk api介绍
  4. buuoj Pwn writeup 106-110
  5. 02-SA8155P ADB数据传输
  6. 闲话网名之“J0ker”
  7. synology nfs_如何为您的Synology NAS创建本地备份
  8. QT安装段错误segmentation fault
  9. 现要求输入一个整数n,请输出斐波那契数列的第n项
  10. 关于音视频的一些知识(demux、filter等)