1.载入PEID

ASProtect v1.23 RC1

2.载入OD,不勾选内存访问异常,其他异常全部勾选

 >   01C04200     push 跑跑排行.0042C001                       ; //入口处
E8 call 跑跑排行.0040100B
0040100A C3 retn
0040100B C3 retn
0040100C D6 salc
0040100D push esp
0040100E 4A dec edx
0040100F pushad
push ebp
 

3.使用最后一次异常法,来到最后一次异常处应该是第16次,第17次就跑飞了

009E2CD1                xor dword ptr ds:[eax],eax               ; //落脚点
009E2CD3 :8F05 >pop dword ptr fs:[]
009E2CDA pop eax
009E2CDB 833D 7C6D9E00 >cmp dword ptr ds:[9E6D7C],
009E2CE2 je short 009E2CF8
009E2CE4 6A 0C push 0C
009E2CE6 B9 7C6D9E00 mov ecx,9E6D7C
009E2CEB 8D45 F8 lea eax,dword ptr ss:[ebp-]
009E2CEE BA mov edx,
009E2CF3 E8 54E1FFFF call 009E0E4C
 

4.往下拉找到最近的一个retn处F2,shift+F9,F2,让程序运行到指定位置

009E2D08    FF75 F0         push dword ptr ss:[ebp-]
009E2D0B FF75 EC push dword ptr ss:[ebp-]
009E2D0E C3 retn ; //F2,shift+F9,F2
009E2D0F 5F pop edi
009E2D10 5E pop esi
009E2D11 5B pop ebx
 

5.程序到这里有两种方式可以到达OEP:

  • 第一种:

打开内存窗口,在00401000处下段然后shift+F9就可以到达OEP

0040A41E                  push ebp                                 ; //来到OEP
0040A41F 8BEC mov ebp,esp
0040A421 6A FF push -
0040A423 C8CB4000 push 跑跑排行.0040CBC8
0040A428 A4A54000 push 跑跑排行.0040A5A4
0040A42D :A1 mov eax,dword ptr fs:[]
0040A433 push eax
0040A434 : >mov dword ptr fs:[],esp
0040A43B 83EC sub esp,
 
  • 第二种:

找到堆栈窗口第四行(跑跑排行榜.0040000下面两行)的值,也就是”0012FFA4”,然后命令行下硬件断点”hr 0012FFA4”,然后shift+F9运行一次

堆栈窗口:

0012FF5C   009F2BF4  //第一行
0012FF60 跑跑排行.
0012FF64 3D375BA5
0012FF68 0012FFA4 //第四行
0012FF6C 009D0000
0012FF70 009B0000
 

这里是一个大跳转,也就是指向OEP的关键跳,F8单步一次

009F3457  - FFE0            jmp eax                                  ; //落脚点
009F3459 :8BC4 mov ax,sp
009F345C BD F2E44268 mov ebp,6842E4F2
009F3461 F7D5 not ebp
009F3463 81C5 8039C332 add ebp,32C33980
009F3469 80D2 adc dl,
009F346C BF A1CAF122 mov edi,22F1CAA1
009F3471 C1CF B3 ror edi,0B3 0040A41E push ebp ; //来到OEP
0040A41F 8BEC mov ebp,esp
0040A421 6A FF push -
0040A423 C8CB4000 push 跑跑排行.0040CBC8
0040A428 A4A54000 push 跑跑排行.0040A5A4
0040A42D :A1 mov eax,dword ptr fs:[]
0040A433 push eax
0040A434 : >mov dword ptr fs:[],esp
0040A43B 83EC sub esp,

6.然后依然是LoadPE+ImportREC脱壳,注意使用ImportREC修复的时候等级1+插件修复

7.运行查壳

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

手脱ASProtect v1.23 RC1(无Stolen Code)的更多相关文章

  1. 手脱ASProtect v1.23 RC1(有Stolen Code)之以壳解壳

    1.载入PEID ASProtect v1.23 RC1 2.载入OD,不勾选内存访问异常,其他异常全部勾选 > 01C06D00 push SoWorker.006DC001 ; //入口点 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. ionic 日期插件学习

    <ion-header> <ion-navbar> <ion-title> DateTime </ion-title> </ion-navbar& ...

  2. 【MFC】VS2017新建完MFC后,没有界面,只有代码

    问题描述:双击.rc文件后提示在另一个编辑器中打开 解决方法整合: 1----- 打开工程之前先把.rc文件改个名称,然后打开工程双击解决方案管理器的.rc文件, 会显示"载入失败" ...

  3. Jedis 与 MySQL的连接线程安全问题

    Jedis的连接是非线程安全的 下面是set命令的执行过程,简单分为两个过程,客户端向服务端发送数据,服务端向客户端返回数据,从下面的代码来看:从建立连接到执行命令是没有进行任何并发同步的控制 pub ...

  4. opencv打开视频文件出错

    使用C#调用mingw的so文件,在C++端使用opencv打开视频.这样的项目完成过了一个,第二次做的时候,发现opencv打开视频文件出错. 首先怀疑是opencv的opencv_ffmpeg24 ...

  5. es6从零学习(一)let 和 const 命令

    es6从零学习(一):let 和 const 命令 一:let 变量 1.块级作用域{}:let只在自己的块级作用域内有效. for(let i =0;i<3;i++) { console.lo ...

  6. Samba共享权限分配

    案例推荐:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html 本文不详细介绍全部参数,只介绍完成需求的一些参数. 需求: 1,账 ...

  7. Python中的__future__

    在Python中,你如果在某一个版本的Python想使用未来版本中的功能,可以使用如下语法实现: from __future__ import futurename 这条语句必须放在module文件的 ...

  8. “Hello world!”贡献分分配规则

    规则1:得到总分后取14分,剩下分数进行平分.(备注:例如得了50分,取出14分,剩下36分组内进行平分) 规则2:对于会议准时参加者每人加0.5分.(备注:按通知开会时间为准,准时到者实行加分.) ...

  9. java知乎爬虫

    好久没写博客了,前阵子项目忙着上线,现在有点空闲,就把最近写的一个爬虫和大家分享下,统计结果放在了自己买的阿里云服务器上(点此查看效果),效果如下: 程序是在工作之余写的,用了java 的webmgi ...

  10. C语言特殊符号

    -> ->在C语言中称为间接引用运算符,是二目运算符,优先级同成员运算符“.”.用法:p->a,其中p是指向一个结构体的指针,a是这个结构体类型的一个成员.表达式p->a引用了 ...