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. hive创建外部表

    Create [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] ...

  2. jQuery实现仿京东商城图片放大镜

    效果图: 不废话直接上代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  3. c语言中反转字符串的函数strrev(), reverse()

    1.使用string.h中的strrev函数 #include<stdio.h> #include<string.h> int main() { char s[]=" ...

  4. 全排列 next_permutation() 函数的用法

    在头文件<algorithm>里面有如下代码: int a[]; do { } while(next_permutation(a,a+n)); 可产生1~n的全排列有如下代码: #incl ...

  5. 创建、编译、执行 java程序

    java源文件(.java)——Java字节码文件(.class)——在java虚拟机上执行 其他语言很多是编译后执行,所以无法跨平台

  6. lintcode-149-买卖股票的最佳时机

    149-买卖股票的最佳时机 假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格.如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润. 样例 给出一个数组样例 [3 ...

  7. LintCode-50.数组剔除元素后的乘积

    数组剔除元素后的乘积 给定一个整数数组A. 定义B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], 计算B的时候请不要使用除法. 样例 给出A=[1 ...

  8. 【Docker 命令】- ps命令

    docker ps : 列出容器 语法 docker ps [OPTIONS] OPTIONS说明: -a:显示所有的容器,包括未运行的. -f:根据条件过滤显示的内容. --format :指定返回 ...

  9. WPF中DataGrid的应用-绑定,增改删,分页,样式

    参考以下网址: http://www.cnblogs.com/fwbnet/archive/2012/05/08/2490974.html

  10. bzoj3676-回文串

    给出一个字符串,一个子串的出现值为字串出现次数乘以长度,求所有回文串中最大的出现值. 分析 回文自动机模版题,建出自动机后直接统计即可. 回文自动机 类似于后缀自动机,不过一条边\((u,v,c)\) ...