手脱 UltraProtect 1.x -> RISCO Software Inc
来源:互联网 发布:利拉德职业生涯数据 编辑:程序博客网 时间:2024/05/01 16:44
手脱 UltraProtect 1.x -> RISCO Software Inc.
用PEID 查壳
用OD 载入。。。
分析代码。。。。 不选非法访问内存!!!
可以用ESP定律来取得它的入口地址。。
当然首先应该看一下它是否被抽取了入口代码,将它们隐藏起来了。。
载入后后,可以对代码进行分析,用最后一次异常的方法来到那个 ret 然后打开内存镜像,在代码处内存访问断点,来到程序OEP,发现程序的OEP 被抽取了。。
那么我就来将抽取的OEP 找出来吧。。。
可以运用ESP 定律。。。因为 UltraProtect 1.x -> RISCO Software Inc.
用 fi 看是 1.4x 的,是一个高版本。。。所以不能像拖地版本那样,运行后来到
最后一次异常的 ret 后,在此处 用跟踪的方法 设置命令 push ebp 去搜索 程序
的入口地址。。当然,如果是 BC++ , 汇编的,这就根本不行了,,它们的入口比较特殊。。。
用ESP 定律,暂停后,用F9 继续走,知道拷到 push ebp.. 此时,你就要对程序入口的代码比较熟悉了。。。
通过比较,我们可以发现:
mov eax, dword ptr [4DE3C0]
shl eax, 2
mov dword ptr [4DE3C4], eax
这是 BC++ 的头。。。让我们将它进行二进制复制下来吧。。。
A1 C0 E3 4D 00 C1 E0 02 A3 C4 E3 4D 00
应为 BC++ 的头
机器码为
PUSH EDI ************** 57
PUSH ECX ************** 51
XOR EAX,EAX************ 33c0
这三个是固定的,它的汇编代码也是不变的。。。所以只要确定它们就可以:
MOV EDI,BC++.XXXXXXXX(当然这应该是具体的地址!!哈哈)
MOV ECX,BC++.YYYYYYYY
机器码:
****** BF XXXXXXXX
****** B9 YYYYYYYY
那个具体的地址怎么确定呢??
通过对汇编的分析,我们只要找到 cmp ecx,edi 就可以了。。应为通过数据窗口会出现:
edi=00501404 (epromm51.00501404)
ecx=01509890 (epromm51.01509890)
我们就能将地址捕获。。。。哈哈。。 那么我们怎么去捕获他们呢??
具体的,我们必须来到程序的OEP 从那寻找我们的答案。。。。
现在我们运用一种可以快速到达 OEP 的方法;
首先,重新载入程序,忽略所有异常(这招好酷哦!),打开内存镜像,在idata
处,下内存写入断点,shift+F9, 暂停后,再次打开堆栈。删除内存断点,
在 .text 处下内存访问断点 shift+F9运行(连续两次)。
就能来到程序 OEP 。。如果没有看到:
00401000 19 db 19
00401001 D6 db D6
00401002 28672701 dd epromm51.01276728
00401006 4B db 4B ; CHAR 'K'
00401007 56 db 56 ; CHAR 'V'
00401008 25 db 25 ; CHAR '%'
00401009 30 db 30 ; CHAR '0'
0040100A 5A db 5A ; CHAR 'Z'
0040100B 4D db 4D ; CHAR 'M'
0040100C 6F db 6F ; CHAR 'o'
0040100D 57 db 57 ; CHAR 'W'
0040100E 7A db 7A ; CHAR 'z'
0040100F E0 db E0
00401010 E0 db E0
00401011 35 db 35 ; CHAR '5'
00401012 7C db 7C ; CHAR '|'
00401013 49 db 49 ; CHAR 'I'
00401014 02 db 02
00401015 6E db 6E ; CHAR 'n'
00401016 40 db 40 ; CHAR [email='@']'@'[/email]
00401017 0B db 0B
00401018 CE db CE
00401019 A1 db A1
0040101A . 16 push ss
0040101B . 3BCF cmp ecx, edi //重点在这呀!当程序运行到它
一切就搞定了。。
0040101D . 76 05 jbe short 00401024
这个,那你就对代码进行分析一下,你就会发现了。。。哈哈,好慢呀!!
数据框出现:
edi=00501404 (epromm51.00501404)
ecx=01509890 (epromm51.01509890)
现在一切工作的差不多了,将它们的二进制代码弄出来粘上去就完成的讲抽取的
OEP 给弄回来了,只要在重建一下 EIP 就行了。。。
这还有一个要注意的地方就是在 组建二进制数据时,注意低位与高位数据的安排顺序,很重要,不然就会出错。。同一命令从左向右,当是多字节例如 BF 00501404
就应该将为 BF 04145000。 其他类似。。
A1 C0 E3 4D 00 C1 E0 02 A3 C4 E3 4D 00 57 51 33 C0 BF 04 14 50 00 B9 90
98 50 01
以下是BC++ 程序代码的头:
00401000 > $ A1 A8534B00 MOV EAX,DWORD PTR DS:[4B53A8]
00401005 . C1E0 02 SHL EAX,2
00401008 . A3 AC534B00 MOV DWORD PTR DS:[4B53AC],EAX
0040100D . 57 PUSH EDI
0040100E . 51 PUSH ECX
0040100F . 33C0 XOR EAX,EAX
00401011 . BF 88DA4C00 MOV EDI,BC++.004CDA88
00401016 . B9 C0358D00 MOV ECX,BC++.008D35C0
0040101B . 3BCF CMP ECX,EDI
0040101D . 76 05 JBE SHORT BC++.00401024
- 手脱 UltraProtect 1.x -> RISCO Software Inc
- ACProtect 1.40 - 1.41 - RISCO Software Inc. 脱壳
- 手脱ACProtect 1.4x -> RISCO soft (尽量从新手角度分析)
- VMS Software, Inc.
- Tibco Software Inc TB0-108 Exam
- Pass4Sure Tibco Software Inc Interactive Testing Engine and BrainDumps
- Succ(x),Pred(X),inc(x,i),dec(x,i)
- 简单脱壳教程笔记(7)---手脱PECompact2.X壳
- [电脑游戏]模拟经营游戏软件公司Software Inc软件公司汉化破解版下载
- cocos2d-x 手游源码站
- cocos2d-x ARPG手游研发教程
- cocos2d-x手游入门导航
- cocos2d-x手游性能优化总结
- cocos2d-x手游性能优化总结
- cocos2d-x手游性能优化总结
- 关于安装VMware软件出现1021错误但文件HKEY LOCAL MACHINE\SOFTWARE\VMware Inc已删除仍报错的解决办法
- Cocos2d-x 3.X手游开发实例详解
- ..\common\inc;.\inc很重要
- 方便调用27种flash图片切换特效
- Overlapped I/O模型深入分析
- 防甲流3字经: 少出门,戴口罩,勤洗手,多吃桔。
- android read xml error: not well-formed (invalid token)
- 在centos5.3下安装GCC所必须的5个依赖包php json安装
- 手脱 UltraProtect 1.x -> RISCO Software Inc
- ESP定律和内存断点
- 目前搜索引擎提供的主要检索服务
- JBOSS Seam 部署时,web不断重启问题的解决
- 手脱 Armadillo 3.78 - 4.xx -> Silicon Realms Toolworks
- 脱ACProtected的壳的过程
- 关于javascript小数的四舍五入
- 5种常见语言特征区段
- 构造函数