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. sql随机数

    ) as P_jsnews_id ) as P_jsnews_id) * from P_jsnews order by newid()

  2. 基础数据类型-tuple

    Python中,元组tuple与list类似,不同之处在于tuple的元素不能修改,tuple使用(),list使用[], (1)元组的创建使用(),需要注意的是创建包含一个元素的元组: tuple_ ...

  3. JS原型与面向对象总结

    ECMAScript有两种开发模式:1.函数式(过程化),2.面向对象(OOP).面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但 是,ECMAScrip ...

  4. C++基础和STL,Effective C++笔记

    这个作者总结的c++基础,特别好. 可以看看. http://blog.csdn.net/tham_/article/details/51169792

  5. 【Docker】- 基本命令

    1.docker ps -a    显示所有容器 2.doker ps -l 显示最近一次启动的容器 3.docker ps   显示正在运行的容器 4.docker start [容器ID]  启动 ...

  6. thinkPHP框架单一入口文件解析

    一.index.php  (可参考ThinkPHP学习手册http://document.thinkphp.cn/manual_3_2.html#entrance_file) index.php单入口 ...

  7. ADO.NET中DataSet、DataTable、DataRow的数据复制方法

    DataSet 对象是支持 ADO.NET的断开式.分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据 ...

  8. Delphi:ADOConnection连接SQLServer自动断网问题解决

    =============================== 解决方法一:异常时关闭连接,WinXP,win7 32位大部分情况都是起作用的,不过在有些windows操作系统下(如家庭版)不起作用, ...

  9. 【Python】Python中的引用和赋值

    本文转自:http://my.oschina.net/leejun2005/blog/145911 在 python 中赋值语句总是建立对象的引用值,而不是复制对象.因此,python 变量更像是指针 ...

  10. java 中 Stringbuff append源代码浅析

    public synchronized StringBuffer append(String str) {        super.append(str);        return this;  ...