1.载入PEID

ACProtect v1.35 -> risco software Inc. & Anticrack Soft

2.载入OD,需要注意的是,异常选项除了[内存访问异常]外其他全部勾选上,然后shift+F9运行至最后一次异常,是1次之后。第二次程序就跑飞了

 >                pushad                            ; //入口
7C jl short QQ个性签.
7D jge short QQ个性签.
0B jno short QQ个性签.
C2 66C1 retn 0xC166
0043600A D29E FC4566D3 rcr byte ptr ds:[esi-0x2C99BA04],>
D27403 sal byte ptr ds:[ebx+eax+0x75],cl
add dword ptr ds:[edi+0x66],esi
 

3.落脚点,落脚后右键点堆栈窗口SE句柄—数据窗口跟随—数据窗口第一行下内存访问断点然后shift+F9

00447B1F    CD            int 0x1                           ; //落脚点
00447B21 inc eax
00447B22 inc eax
00447B23 0BC0 or eax,eax
00447B25 jnz short QQ个性签.00447B2C
00447B27 nop
00447B28 nop 0012FF44 00447B03 SE处理程序 //堆栈窗口 00447B03 0C245C8B //数据窗口第一行

4.落脚点,在落脚点下F2断点,然后shift+F9

00447B03    8B5C24 0C       mov ebx,dword ptr ss:[esp+0xC]    ; //落脚点
00447B07 B8000000 >add dword ptr ds:[ebx+0xB8],0x2
00447B0E 33C0 xor eax,eax
00447B10 C3 retn
00447B11 ::FF36 push dword ptr fs:[]
00447B17 :: mov dword ptr fs:[],esp
 

5.落脚点,继续在这里下F2断点,然后shift+F9运行

00447B53 8B048E mov eax,dword ptr ds:[esi+ecx*] ; //落脚点

00447B56    8B5C8E        mov ebx,dword ptr ds:[esi+ecx*+>
00447B5A 2BC3 sub eax,ebx
00447B5C C1C0 rol eax,0x7
00447B5F 33C2 xor eax,edx
00447B61 81C2 4B3DF129 add edx,0x29F13D4B

6.落脚点,先清除刚刚下的2个F2断点和1个内存访问断点,然后在最近的retn处F4

00447B67    89048E          mov dword ptr ds:[esi+ecx*],eax    ; //落脚点
00447B6A dec ecx
00447B6B ^ EB E1 jmp short QQ个性签.00447B4E
00447B6D popad
00447B6E popad
00447B6F C3 retn ; //F4
00447B70 add byte ptr ds:[eax],al
 

7.在无StolenCode的帖子中已经说过,正常情况下接下来是在内存窗口的401000处下段然后shift+F9运行就可以到OEP了,但是我们这个壳你这样操作后会发现OEP处的代码好像不对劲,因为被抽取过了,我们要做的是点[调试]按钮—设置条件,或者使用快捷键ctrl+T,在弹出来的界面勾选最下面一个然后输入被偷取的代码,我使用的ximo教程里的壳,被偷取的代码为”push ebp”,输入完后点确定,然后使用快捷键ctrl+F11跟踪步入(或者点[调试]–跟踪步入)

8.找到了我们被偷取的代码,在这个壳中被偷取了三行代码,选中这三行,二进制复制

004254C8                  popad
004254C9 push ebp ; //被偷取1
004254CA 8BEC mov ebp,esp ; //被偷取2
004254CC 83EC sub esp,0x44 ; //被偷取3
004254CF pushad
004254D0 pushad 8B EC EC //二进制复制出来的,一共6个字节

9.然后到内存窗口,在401000处下断F2,然后shift+F9运行来到假的OEP,向上找6个字节(看代码第二列,两位为一个字节),然后右键–二进制—使用nop填充,填充完毕后再数6个字节,然后使用二进制粘贴

004010D2                  push esi
004010D3 FF15 E4634000 call dword ptr ds:[0x4063E4] ; //假的OEP
004010D9 8BF0 mov esi,eax
004010DB 8A00 mov al,byte ptr ds:[eax]
004010DD 3C cmp al,0x22
004010DF 1B jnz short notepad9.004010FC
004010E1 push esi
 

10.此时OEP已经补充完整了,接着右键点’push ebp’哪一行—点[此处新建EIP]然后就可以脱壳了,脱壳注意[重建输出表]这一项不勾选,脱壳后使用ImportREC修复,我在脱壳的过程中出现过修复失败的情况,这种情况我一般都是用ImportREC上修复的插件或者别的版本的ImportREC来修复,可以都试试。

004010CC                  push ebp
004010CD 8BEC mov ebp,esp
004010CF 83EC sub esp,0x44
004010D2 push esi
004010D3 FF15 E4634000 call dword ptr ds:[0x4063E4] ; notepad9.0040D1BA
004010D9 8BF0 mov esi,eax ; kernel32.BaseThreadInitThunk
004010DB 8A00 mov al,byte ptr ds:[eax]
004010DD 3C cmp al,0x22
004010DF 1B jnz short notepad9.004010FC
004010E1 push esi

11.运行查壳

运行OK,查壳:Microsoft Visual C++ v6.0 SPx

手脱ACProtect v1.35(有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.4X(有Stolen Code)

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

  5. 手脱ACProtect V2.0(无Stolen Code)

    1.载入PEID ACProtect V2.0 -> risco 2.载入OD > 00A04000 push ACP_Feed.0040A000 ; //入口点 0B104000 pus ...

  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,不勾选内存访问异常,其他异常全部勾选 > 01C06D00 push SoWorker.006DC001 ; //入口点 ...

  8. 手脱ASProtect v1.23 RC1(有Stolen Code)

    1.载入PEID ASProtect v1.23 RC1 常见ASprotect版本壳: ASProtect 1.23 RC4 按shift+f9键26次后来到典型异常 ASProtect 1.31 ...

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

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

随机推荐

  1. Linux环境下Java应用性能分析定位-CPU使用篇

    1     CPU热点分析定位背景 CPU资源还是很昂贵的,为了深刻感受到这种昂贵,间下图当前CPU的资源售价: 所以对于程序猿们来说,需要让程序合理高效的使用CPU资源.利用有限的CPU资源来解决完 ...

  2. Paper Reading - Im2Text: Describing Images Using 1 Million Captioned Photographs ( NIPS 2011 )

    Link of the Paper: http://papers.nips.cc/paper/4470-im2text-describing-images-using-1-million-captio ...

  3. We are writing to let you know we have removed your selling privileges

     Hello, We are writing to let you know we have removed your selling privileges, canceled your listin ...

  4. Linux下文件的打包、解压缩指令——tar,gzip,bzip2

    本文是对 鸟叔的Linux私房菜(基础学习篇) 第三版 的学习笔记,原文可参考原书中文网站 鸟叔的Linux私房菜.更多详细信息可直接参考对应Linux命令的 man 帮助( 如 man tar). ...

  5. Python常用模块之hashlib

    Python里面的hashlib模块提供了很多加密的算法,这里介绍一下hashlib的简单使用事例,用hashlib的md5算法加密数据 import hashlib hash = hashlib.m ...

  6. ES6的新特性(2)——let 与 const 增强变量声明

    let 与 const 增强变量声明 ES6 新增了let命令,用来声明局部变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,而且有暂时性死区的约束. 先看个var的常见 ...

  7. Full Binary Tree(二叉树找规律)

    Description In computer science, a binary tree is a tree data structure in which each node has at mo ...

  8. SQL连接的方法

    1.创建连接字符串 string con = "Data Source=127.0.0.1;Initial Catalog=dingdan;Integrated Security=True& ...

  9. 20162328蔡文琛 Java课程总结

    20162328 2016-2017-2<程序设计与数据结构>课程总结 一.每周作业.结对编程博客的链接汇总 预备作业01 20162328:表达对专业的期许.浅谈师生关系.对未来学习任务 ...

  10. 软工网络15团队作业4-DAY5

    每日例会 昨天的工作. 张陈东芳:界面排版优化 吴敏烽:界面排版优化 周汉麟:继续根据商品编号来获取商品资料方法调试 林振斌:继续输出最近浏览记录的方法调试 李智:界面排版优化 全体人员:界面优化,初 ...