1.载入PEID

ACProtect V2.0 -> risco

2.载入OD

 >   00A04000     push ACP_Feed.0040A000                         ; //入口点
0B104000 push ACP_Feed.0040100B
0040100A C3 retn
0040100B C3 retn
0040100C 858A 1D04802F test dword ptr ds:[edx+2F80041D],ecx
- ja short ACP_Feed.00400F96
EE out dx,al
 

3.命令行输入:”bp GetCurrentProcessId”,然后shift+F9运行,落脚点在这个位置

7C8099B0 >  :A1   mov eax,dword ptr fs:[]                      ; //落脚点
7C8099B6 8B40 mov eax,dword ptr ds:[eax+]
7C8099B9 C3 retn
7C8099BA nop
7C8099BB nop
 

4.先取消刚刚下的断点(Bp就是下断的意思),然后打开LoadPE,查看OD载入的这个程序的进程号也就是PId。我这里是”00000254”,可能不同的机器或者系统打开后显示的不同。

5.然后把步骤三中的代码进行修改,修改落脚点代码,把”mov eax,”后面的那个值改为步骤四中的Pid的值,然后把把原先落脚点下一行的mov代码整个给nop掉。修改完成后的代码变为下图这样:

7C8099B0 >  B8      mov eax,                                    ; //落脚点
7C8099B5 nop
7C8099B6 nop
7C8099B7 nop
7C8099B8 nop
7C8099B9 C3 retn
7C8099BA nop
7C8099BB nop
 

6.步骤五执行完之后下第二个断点”BP GetModuleHandleA”,然后shift+F9,落脚点应该是这个位置

7C80B731 >  8BFF            mov edi,edi                                    ; //落脚点
7C80B733 push ebp
7C80B734 8BEC mov ebp,esp
7C80B736 837D cmp dword ptr ss:[ebp+],
7C80B73A je short kernel32.7C80B754
7C80B73C FF75 push dword ptr ss:[ebp+]
 

7.取消断点,打开内存界面,在401000的位置下断点然后shift+F9运行,此时会弹出ACProtect的提示框,点一下确定就可以

Memory map, 项目
地址=
大小= (.)
属主=ACP_Feed
区段=CODE
包含=SFX,代码
类型=映像
访问=R
初始访问=RWE
 

8.点完确定后就直接来到OEP了,然后使用LoadPE+ImportREC脱壳即可

                  push ebp                                       ; //OEP
8BEC mov ebp,esp
83C4 F0 add esp,-
push ebx
B8 mov eax,ACP_Feed.
0040215C E8 4FFCFFFF call ACP_Feed.00401DB0
C4214000 push ACP_Feed.004021C4 ; ASCII "ACProtect Feedback Form"
6A push
6A push
 

9.运行查壳

运行OK,查壳:Borland Delphi v3.0

手脱ACProtect V2.0(无Stolen Code)的更多相关文章

  1. 手脱ACProtect v1.35(无Stolen Code)之二

    首先,想说明的是这个壳在我的PC上是可以用上一个帖子中的方法来到假的OEP的:http://www.52pojie.cn/forum.php?mod=viewthread&tid=433462 ...

  2. 手脱ACProtect v1.35(无Stolen Code)

    1.载入PEID ACProtect v1.35 -> risco software Inc. & Anticrack Soft 2.载入OD,需要注意的是,异常选项除了[内存访问异常] ...

  3. 手脱ACProtect V1.4X(有Stolen Code)之补区段

    首先需要说的是,这个壳是ximo大神视频教程里的 0041F000 > pushad ; //程序入口点 0041F001 E8 call NgaMy.0041F007 0041F006 E8 ...

  4. 手脱ACProtect v1.35(有Stolen Code)

    1.载入PEID ACProtect v1.35 -> risco software Inc. & Anticrack Soft 2.载入OD,需要注意的是,异常选项除了[内存访问异常] ...

  5. 手脱ACProtect V1.4X(有Stolen Code)

    1.载入PEID ACProtect V1.4X -> risco 首先需要说明的是,这个壳被偷取的代码非常多,如果去找的话会比较麻烦,所以我们换一种另类的方法,不脱壳也可以使用资源修改器对程序 ...

  6. 手脱ASProtect v1.2(无Stolen Code)

    1.载入PEID ASProtect v1.2 2.载入OD > 01C04200 push 跑跑赛道.0042C001 ; //入口处 C3 retn AA stos byte ptr es: ...

  7. 手脱ASProtect v1.23 RC1(无Stolen Code)

    1.载入PEID ASProtect v1.23 RC1 2.载入OD,不勾选内存访问异常,其他异常全部勾选 > 01C04200 push 跑跑排行.0042C001 ; //入口处 E8 c ...

  8. 手脱ASPack v2.12变形壳2

    1.PEID载入 ASPack v2.12 2.载入OD,跟之前帖子的入口特征相同,都是一个pushad,但是请不要怀疑这是同一个壳,绝对不是,pushad下一行ESP定律下硬件断点,然后shift+ ...

  9. 手脱PEtite v2.1

    1.载入PEID PEtite v2.1 2.载入OD,先F8跟一下 0042C10F > B8 00C04200 mov eax,跑跑排行.0042C000 ; //程序入口点 0042C11 ...

随机推荐

  1. openstack架构

    终于正式进入 OpenStack 部分了. 今天开始,CloudMan 将带着大家一步一步揭开 OpenStack 的神秘面纱. OpenStack 已经走过了 6 个年头. 每半年会发布一个版本,版 ...

  2. Netcore logging config

  3. 压力测试工具-webbench

    简述 偶然情况下看到一款性能测试工具webbench,看着挺不错的记录一下安装过程,在以后项目上线过程中可以压一压一些页面的并发情况,对项目性能有个大致的了解. 原理 webbench首先fork出多 ...

  4. Thinkphp实现excel导出数据

    前端: 点击导出触发click事件,传值export指令和args关键字(args是指我们是否有查询取哪些数据)到控制器 $(document).on("click", " ...

  5. 20145214实验一 Java开发环境的熟悉

    20145214实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立20145214实验目录,进入该目录后创建exp1目录. 把代码保存到exp1目 ...

  6. JavaScript初探系列之面向对象

    面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义J ...

  7. k邻近算法理解及代码实现

    github:代码实现 本文算法均使用python3实现 1 KNN   KNN(k-nearest neighbor, k近邻法),故名思议,是根据最近的 $ k $ 个邻居来判断未知点属于哪个类别 ...

  8. TCP系列20—重传—10、早期重传(ER)

    一.介绍 在前面介绍thin stream时候我们介绍过有两种场景下可能不会产生足够的dup ACK来触发快速重传,一种是游戏类响应交互式tcp传输,另外一种是传输受到拥塞控制的限制,只能发送少量TC ...

  9. intellij idea 如何将一个普通项目转换为maven项目

    1.工程文件下新建文件pom.xml,并填写好内容. 2.在pom.xml 文件上右键 Add as Maven Project.

  10. 关于new delete的说明

    1. 删除空指针不会有问题,因为C++的标准规定在delete时首先会判断指针是否为空,为空就不再处理,所以也就不会有问题. 2. delete一个非空指针之后,并不会将该指针自动置为空.此时如果重复 ...