zoukankan      html  css  js  c++  java
  • 手脱ACProtect V2.0(无Stolen Code)

    1.载入PEID

    ACProtect V2.0 -> risco
    

    2.载入OD

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

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

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

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

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

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

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

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

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

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

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

    00402150    55              push ebp                                       ; //OEP
    00402151    8BEC            mov ebp,esp
    00402153    83C4 F0         add esp,-10
    00402156    53              push ebx
    00402157    B8 10214000     mov eax,ACP_Feed.00402110
    0040215C    E8 4FFCFFFF     call ACP_Feed.00401DB0
    00402161    68 C4214000     push ACP_Feed.004021C4                         ; ASCII "ACProtect Feedback Form"
    00402166    6A 00           push 0
    00402168    6A 00           push 0
     

    9.运行查壳

    运行OK,查壳:Borland Delphi v3.0
    
  • 相关阅读:
    tcp/心跳包
    TCP协议中的三次握手和四次挥手(图解)
    http 中get和post
    xmpp总结
    IOS中http请求使用cookie
    sdwebimage总结
    iOS断言
    Object-C自定义对象NSLog输入信息
    NSTimer你真的会用了吗
    ios中block中的探究
  • 原文地址:https://www.cnblogs.com/JianXu/p/5158369.html
Copyright © 2011-2022 走看看