手脱ASProtect v1.23 RC1(无Stolen Code)
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)的更多相关文章
- 手脱ASProtect v1.23 RC1(有Stolen Code)之以壳解壳
1.载入PEID ASProtect v1.23 RC1 2.载入OD,不勾选内存访问异常,其他异常全部勾选 > 01C06D00 push SoWorker.006DC001 ; //入口点 ...
- 手脱ASProtect v1.23 RC1(有Stolen Code)
1.载入PEID ASProtect v1.23 RC1 常见ASprotect版本壳: ASProtect 1.23 RC4 按shift+f9键26次后来到典型异常 ASProtect 1.31 ...
- 手脱ASProtect v1.2(无Stolen Code)
1.载入PEID ASProtect v1.2 2.载入OD > 01C04200 push 跑跑赛道.0042C001 ; //入口处 C3 retn AA stos byte ptr es: ...
- 手脱ACProtect V1.4X(有Stolen Code)之补区段
首先需要说的是,这个壳是ximo大神视频教程里的 0041F000 > pushad ; //程序入口点 0041F001 E8 call NgaMy.0041F007 0041F006 E8 ...
- 手脱ACProtect v1.35(无Stolen Code)之二
首先,想说明的是这个壳在我的PC上是可以用上一个帖子中的方法来到假的OEP的:http://www.52pojie.cn/forum.php?mod=viewthread&tid=433462 ...
- 手脱ACProtect v1.35(无Stolen Code)
1.载入PEID ACProtect v1.35 -> risco software Inc. & Anticrack Soft 2.载入OD,需要注意的是,异常选项除了[内存访问异常] ...
- 手脱ACProtect v1.35(有Stolen Code)
1.载入PEID ACProtect v1.35 -> risco software Inc. & Anticrack Soft 2.载入OD,需要注意的是,异常选项除了[内存访问异常] ...
- 手脱ACProtect V1.4X(有Stolen Code)
1.载入PEID ACProtect V1.4X -> risco 首先需要说明的是,这个壳被偷取的代码非常多,如果去找的话会比较麻烦,所以我们换一种另类的方法,不脱壳也可以使用资源修改器对程序 ...
- 手脱ACProtect V2.0(无Stolen Code)
1.载入PEID ACProtect V2.0 -> risco 2.载入OD > 00A04000 push ACP_Feed.0040A000 ; //入口点 0B104000 pus ...
随机推荐
- 数独:dfs+剪枝+位运算+排除冗余+优化搜索顺序(未完)
和蓝桥杯以前一个题一样,但是数据加强了,博主水平有限,没做出来,先在这里记录一下,这里正解,下面是博主的超时做法.最近准备考研,不能深入学习了. 题目描述 数独是一种传统益智游戏,你需要把一个9 × ...
- Python3 Tkinter-OptionMenu
1.创建 from tkinter import * root=Tk() v=StringVar() v.set('xs') om=OptionMenu(root,v,'Python','PHP',' ...
- .Net并行编程 - 并行任务基础知识
在微软的.NET Framework中,任务是通过System.Threading.Tasks命令空间中的Task类来实现的.它的静态属性Task.Factory是TaskFactory类的一个实例, ...
- Java静态方法,静态变量,初始化顺序
1. 静态方法: 成员变量分为实例变量和静态变量.其中实例变量属于某一个具体的实例,必须在类实例化后才真正存在,不同的对象拥有不同的实例变量.而静态变量被该类所有的对象公有(相当于全局变量),不需要实 ...
- POJ 2455 Secret Milking Machine(最大流+二分)
Description Farmer John is constructing a new milking machine and wishes to keep it secret as long a ...
- C++第一次课堂作业 circle
Github上的代码提交
- C#的垃圾回收
C#中垃圾回收 GC.Collect();强制进行内存回收.
- go的IO函数,整理下最基本的IO处理函数,工欲善其事必先利其器
bufio.NewScanner()函数是一行一行地读,但是对/proc/函数,这里不是个好方法,最好是把所有的数据一次读完,然后再去读,有没有这样读的接口呢?把所有数据都读入到内存中然后再通过通过搜 ...
- html超出不自动换行
1.使用overflow: hidden把超出的内容进行隐藏: 2.然后使用white-space: nowrap设置内容不换行: 3.最后使用text-overflow: ellipsis设置超出内 ...
- [剑指Offer] 58.对称的二叉树
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. [思路]递归,关键是isSame函数中的最后一句 /* struct Tree ...