作者:Fly2015

ORiEN这种壳之前没有接触,到底是压缩壳还是加密壳也不知道,只能试一试喽。需要脱壳的程序是吾爱破解脱壳练习第7期的题目。

首先对加壳程序进行查壳,这一步也是程序脱壳的必要的一步。

使用DIE工具对加壳程序进行查壳,发现被加壳程序原来是用Delphi语言编写的,这个信息对于找原程序的OEP是很有帮助的。


下面OD载入程序进行分析,被加壳程序入口点汇编代码:

对被加壳的程序进行脱壳的时候,先不慌着脱壳,最好先看下程序的汇编代码,F7/F8单步走几步看看,没准你会有新发现。

F8单步跟踪几步,发现了PUSHAD指令,继续F8单步到PUSHAD的下一条指令。那就使用ESP定律进行程序的脱壳,在ESP寄存器上下硬件写入断点HW Break。

F9运行程序,程序会在刚才下的HW硬件断点地址处断下来。注意观察EAX寄存器的值0045159C,通过对地址0045159C的反汇编发现了比较熟悉的Delphi反汇编入口点代码,很显然地址0045159C就是被加壳原程序的真实OEP的VA。其实,F7单步几步走到地址004A1AF4处,跟进JMP到地址004A1AF1处就会发现原程序的真实OEP。

跟进JMP到地址004A1AF1处,JMP EAX指令中的EAX = 0045159C保存的就是被加壳程序的真实的OEP的VA地址。

F7单步跟进到地址0045159C处,果然找到了Delphi的反汇编的入口点。

OK,被加壳程序的真实的OEP找到了,就可以对加壳程序进行内存的Dump和IAT表的修复。不过对于加壳程序找到OEP以后,建议使用Load PE和RECImport 工具或者Scylla来进行程序的内存Dump和IAT表的修复,比OD的OllyDump插件更灵活。先用Load PE对该程序进行 完全脱壳 的内存Dump,在RECImport 中填入被加壳程序的真实OEP的RVA地址0005159C,自动获取IAT表并剪切掉无效函数指针,修复抓取的内存Dump文件即可实现脱壳。

OK,运行一下脱壳完成的程序,证明自己脱壳成功。


ORiEN脱壳分析文档和脱壳以后的程序的下载地址:http://download.csdn.net/detail/qq1084283172/8898321

手动脱ORiEN壳实战的更多相关文章

  1. 手动脱RLPack壳实战

    作者:Fly2015 吾爱破解论坛培训第一课选修作业练习的第7题. 这个壳没听说过.可是脱起来比較简单.依据ESP定律就可以直达光明,Dump出原来的程序. 老规矩.首先对须要脱壳的程序进行查壳处理. ...

  2. 手动脱WinUpack 壳实战

    作者:Fly2015 吾爱破解培训第一课选修作业第6个练习演示样例程序.不得不反复那句话,没见过这样的壳,该壳是压缩壳的一种,相对于压缩壳,加密壳的难度要大一些.特别是IAT表的修复问题上. 首先分别 ...

  3. 手动脱NsPacK壳实战

    作者:Fly2015 这里脱壳的程序是吾爱破解培训的作业2,相较于作业1略微要强一点,可是仅仅要掌握了脱壳的ESP定律,脱这个Nspack壳并不难.只是还是蛮有意思的. 1.使用查壳软件对加壳的程序进 ...

  4. 手动脱UPX 壳实战

    作者:Fly2015 Windows平台的加壳软件还是比較多的,因此有非常多人对于PC软件的脱壳乐此不彼,本人菜鸟一枚,也学习一下PC的脱壳.要对软件进行脱壳.首先第一步就是 查壳.然后才是 脱壳. ...

  5. 手动脱FSG壳实战

    作者:Fly2015 对于FSG壳.之前没有接触过是第一次接触.这次拿来脱壳的程序仍然是吾爱破解论坛破解培训的作业3的程序.对于这个壳折腾了一会儿,后来还是被搞定了. 1.查壳 首先对该程序(吾爱破解 ...

  6. <逆向学习第三天>手动脱FSG壳,修复IAT。

    其实对于简单的壳来说,脱壳常用的方法也无非是那几种,但是每种有每种的好处,具体使用那种方法视情况而定,我今天学习的这个壳很简单,但是重点在于修复IAT. 一.查壳: FSG 2.0的壳. 二.脱壳: ...

  7. 手动脱UPX压缩壳

    示例程序演示 样例程序选择win7自带的notepad.exe,该程序原本是没有加壳的: 拷贝notepad.exe文件一个副本,重命名为notepad - upx.exe,我们对notepad - ...

  8. 手动脱Mole Box壳实战总结

    作者:Fly2015 这个程序是吾爱破解脱壳练习第8期的加壳程序,该程序的壳是MoleBox V2.6.5壳,这些都是广告,能够直接无视了.前面的博客手动脱Mole Box V2.6.5壳实战中已经给 ...

  9. 手动脱KBys Packer(0.28)壳实战

    作者:Fly2015 吾爱破解培训第一课选修作业第5个练习程序.在公司的时候用郁金香OD调试该加壳程序的时候出了点问题,可是回家用吾爱破解版的OD一调试,浑身精神爽,啥问题也没有. 首先使用查壳工具对 ...

随机推荐

  1. 剑指 Offer 58 - II. 左旋转字符串 + 简单题

    剑指 Offer 58 - II. 左旋转字符串 Offer_58_2 题目描述 java代码 package com.walegarrett.offer; /** * @Author WaleGar ...

  2. 鸿蒙的js开发模式19:鸿蒙手机下载python服务器端文件的实现

    目录:1.承接上篇鸿蒙客户端上传文件2.域名通过内网穿透工具3.python服务器端代码4.鸿蒙手机的界面和业务逻辑5.<鸿蒙的js开发模式>系列文章合集 1.承接上篇鸿蒙客户端上传文件, ...

  3. Ubuntu 18.04下Intel SGX应用程序程序开发——获得OCALL调用的返回值

    本文中,我们介绍在Enclave函数中调用不可信OCALL函数,并获得OCALL函数的返回值. 1. 复制SampleEnclave示例并建立自己的OcallRetSum项目 SampleEnclav ...

  4. Typora学习

    Markdown学习总结 标题的使用格式 # 一阶标题 或者 ctrl + 1 ## 二阶标题 或者 ctrl + 2 ### 三阶标题 或者 ctrl + 3 #### 四阶标题 或者 ctrl + ...

  5. BZOJ_2243 [SDOI2011]染色 【树链剖分+线段树】

    一 题目 [SDOI2011]染色 二 分析 感觉树链剖分的这些题真的蛮考验码力的,自己的码力还是不够啊!o(╯□╰)o 还是比较常规的树链剖分,但是一定记得这里的线段树在查询的时候一定要考虑链于链相 ...

  6. JS 字符数组和数字数组转换

    var newArr = ['1','2','3'].map(Number):// [1,2,3] var newArr =[1,2,3].map(String):// ['1','2','3']

  7. elf.h

    1 /* This file defines standard ELF types, structures, and macros. 2 Copyright (C) 1995-2019 Free So ...

  8. 在SSM框架中如何将图片上传到数据库中

    今天我们来看看SSM中如何将图片转换成二进制,最后传入到自己的数据库中,好了,废话不多说,我们开始今天的学习,我这里用的编辑器是IDEA 1.导入图片上传需要的jar依赖包 1 <depende ...

  9. vue实现拖拽排序

    基于vue实现列表拖拽排序的效果 在日常开发中,特别是管理端,经常会遇到要实现拖拽排序的效果:这里提供一种简单的实现方案. 此例子基于vuecli3 首先,我们先了解一下js原生拖动事件: 在拖动目标 ...

  10. 实现FTP+PAM+MySQL环境,批量配置虚拟用户

    实现FTP+PAM+MySQL环境,批量配置虚拟用户 搭建环境: CentOS6.5或CentOS6.7 [root@vhost3 ~]# uname -a Linux vhost3 2.6.32-5 ...