㈠ 安卓软件怎么脱壳有没有大神
【脱壳所用工具及解释】
Xp框架及Fdex2:
这两款软件就不过多解释了,大家应该都懂得!
开发者助手(此教程可用也可不用):
获取软件布局及控件资源的!和 “上帝模式”功能有异曲同工之妙!
当然 “开发者助手” 也可以用来检查软件加壳 若 不使用“开发者助手”,可直接在要修改的软件包的Dex中进行查看软件壳的特征!
同声翻译超级版4.8版:
这次就拿它当 “小白鼠” 进行实验教程,这样说你们懂吧!
【两种简单方法查壳教程】
方法一、通过“开发者助手”软件查看常见的壳
1、打开“开发者助手”并赋予相应权限 及悬浮窗!
2、打开要进行 查壳的软件后 点击“开发者助手”悬浮窗 功能!
方法二:直接在要修改的软件包的Dex中进行查看软件壳的特征
1、找到软件包,点击 查看
2、找到 classes.dex 并使用 “dex编辑器” 打开 然后再点击 “类列表”并打开
㈡ 手机软件黑洞是什么
一、种植木马
现在网络上流行的木马基本上都采用的是C/S 结构(客户端/服务端)。你要使用木马控制对方的电脑,首先需要在对方的的电脑中种植并运行服务端程序,然后运行本地电脑中的客户端程序对对方电脑进行连接进而控制对方电脑。
二、使用木马
成功的给别人植入木马服务端后,就需要耐心等待服务端上线。由于黑洞2004采用了反连接技术,所以服务端上线后会自动和客户端进行连接,这时,我们就可以操控客户端对服务端进行远程控制。在黑洞2004下面的列表中,随便选择一台已经上线的电脑,然后通过上面的命令按钮就可以对这台电脑进行控制。下面就简单的介绍一下这些命令的意义。
文件管理:服务端上线以后,你可以通过“文件管理”命令对服务端电脑中的文件进行下载、新建、重命名、删除等操作。可以通过鼠标直接把文件或文件夹拖放到目标文件夹,并且支持断点传输。简单吧?
进程管理:查看、刷新、关闭对方的进程,如果发现有杀毒软件或者防火墙,就可以关闭相应的进程,达到保护服务器端程序的目的。
窗口管理:管理服务端电脑的程序窗口,你可以使对方窗口中的程序最大化、最小化、正常关闭等操作,这样就比进程管理更灵活。你可以搞很多恶作剧,比如让对方的某个窗口不停的最大化和最小化。
视频监控和语音监听:如果远程服务端电脑安装有USB摄像头,那么可以通过它来获取图像,并可直接保存为Media Play可以直接播放的Mpeg文件;需要对方有麦克风的话,还可以听到他们的谈话,恐怖吧?
除了上面介绍的这些功能以外,还包括键盘记录、重启关机、远程卸载、抓屏查看密码等功能,操作都非常简单,明白了吧?做骇客其实很容易。
3 隐藏
随着杀毒软件病毒库的升级,木马会很快被杀毒软件查杀,所以为了使木马服务端辟开杀毒软件的查杀,长时间的隐藏在别人的电脑中,在木马为黑客提供几种可行的办法。
1.木马的自身保护
就像前面提到的,黑洞2004在生成服务端的时候,用户可以更换图标,并使用软件UPX对服务端自动进行压缩隐藏。
2.捆绑服务端
用户通过使用文件捆绑器把木马服务端和正常的文件捆绑在一起,达到欺骗对方的目的。文件捆绑器有广外文件捆绑器2002、万能文件捆绑器、exeBinder、Exe Bundle等。
3.制做自己的服务端
上面提到的这些方法虽然能一时瞒过杀毒软件,但最终还是不能逃脱杀毒软件的查杀,所以若能对现有的木马进行伪装,让杀毒软件无法辨别,则是个治本的方法。可以通过使用压缩EXE和DLL文件的压缩软件对服务端进行加壳保护。例如1中的UPX就是这样一款压缩软件,但默认该软件是按照自身的设置对服务端压缩的,因此得出的结果都相同,很难长时间躲过杀毒软件;而自己对服务端进行压缩,就可以选择不同的选项,压缩出与众不同的服务端来,使杀毒软件很难判断。下面我就以冰河为例,为大家简单的讲解一下脱壳(解压)、加壳(压缩)的过程。
如果我们用杀毒软件对冰河进行查杀,一定会发现2个病毒,一个是冰河的客户端,另一个是服务端。使用软件“PEiD”查看软件的服务端是否已经被作者加壳,可以看到服务端已经使用UPX进行了压缩。
现在,我们就需要对软件进行脱壳,也就是一种解压的过程。这里我使用了“UPXUnpack”,选择需要的文件后,点击“解压缩”就开始执行脱壳。
脱壳完成后,我们需要为服务端加一个新壳,加壳的软件很多,比如:ASPack、ASProtect、UPXShell、Petite等。这里以“ASPack”为例,点击“打开”按钮,选择刚刚脱壳的服务端程序,选择完成后ASPack会自动为服务端进行加壳。再次用杀毒软件对这个服务端进行查杀,发现其已经不能识别判断了。如果你的杀毒软件依旧可以查杀,你还可以使用多个软件对服务端进行多次加壳。笔者在使用Petite和ASPack对服务端进行2次加壳后,试用了多种杀毒软件都没有扫描出来。现在网络中流行的很多XX版冰河,就是网友通过对服务端进行修改并重新加壳后制做出来的。
为了避免不熟悉木马的用户误运行服务端,现在流行的木马都没有提供单独的服务端程序,而是通过用户自己设置来生成服务端,黑洞2004也是这样。首先运行黑洞2004,点击“功能/生成服务端”命令,弹出“服务端配置”界面。由于黑洞2004采用了反弹技术(请参加小知识),首先单击旁边的“查看”按钮,在弹出的窗口中设置新的域名,输入你事先申请空间的域名和密码,单击“域名注册”,在下面的窗口中会反映出注册的情况。域名注册成功以后,返回“服务端配置”界面,填入刚刚申请的域名,以及“上线显示名称”、“注册表启动名称”等项目。为了迷惑他人,可以点“更改服务端图标”按钮为服务端选择一个图标。所有的设置都完成后,点击“生成EXE型服务端”就生成了一个服务端。在生成服务端的同时,软件会自动使用UPX为服务端进行压缩,对服务端起到隐藏保护的作用。
服务端生成以后,下一步要做的是将服务端植入别人的电脑?常见的方法有,通过系统或者软件的漏洞入侵别人的电脑把木马的服务端植入其的电脑;或者通过Email夹带,把服务端作为附件寄给对方;以及把服务端进行伪装后放到自己的共享文件夹,通过P2P软件(比如PP点点通、百宝等),让网友在毫无防范中下载并运行服务端程序。
由于本文主要面对普通的网络爱好者,所以就使用较为简单的Email夹带,为大家进行讲解。我们使用大家经常会看到的Flash动画为例,建立一个文件夹命名为“好看的动画”,在该文件夹里边再建立文件夹“动画.files”,将木马服务端软件放到该文件夹中假设名称为“abc.exe”,再在该文件夹内建立flash文件,在flash文件的第1帧输入文字“您的播放插件不全,单击下边的按钮,再单击打开按钮安装插件”,新建一个按钮组件,将其拖到舞台中,打开动作面板,在里边输入“on (press) {getURL("动画.files/abc.exe");}”,表示当单击该按钮时执行abc这个文件。在文件夹“好看的动画”中新建一个网页文件命名为“动画.htm”,将刚才制作的动画放到该网页中。看出门道了吗?平常你下载的网站通常就是一个.html文件和一个结尾为.files的文件夹,我们这么构造的原因也是用来迷惑打开者,毕竟没有几个人会去翻.files文件夹。现在我们就可以撰写一封新邮件了,将文件夹“好看的动画”压缩成一个文件,放到邮件的附件中,再编写一个诱人的主题。只要对方深信不疑的运行它,并重新启动系统,服务端就种植成功了。
三、防范
防范重于治疗,在我们的电脑还没有中木马前,我们需要做很多必要的工作,比如:安装杀毒软件和网络防火墙;及时更新病毒库以及系统的安全补丁;定时备份硬盘上的文件;不要运行来路不明的软件和打开来路不明的邮件。
最后笔者要特别提醒大家,木马除了拥有强大的远程控制功能外,还包括极强的破坏性。我们学习它,只是为了了解它的技术与方法,而不是用于盗窃密码等破坏行为,希望大家好自为之。
小知识:
反弹技术,该技术解决了传统的远程控制软件不能访问装有防火墙和控制局域网内部的远程计算机的难题。反弹端口型软件的原理是,客户端首先登录到FTP服务器,编辑在木马软件中预先设置的主页空间上面的一个文件,并打开端口监听,等待服务端的连接,服务端定期用HTTP协议读取这个文件的内容,当发现是客户端让自己开始连接时,就主动连接,如此就可完成连接工作。
因此在互联网上可以访问到局域网里通过 NAT (透明代理)代理上网的电脑,并且可以穿过防火墙。与传统的远程控制软件相反,反弹端口型软件的服务端会主动连接客户端,客户端的监听端口一般开为80(即用于网页浏览的端口),这样,即使用户在命令提示符下使用“netstat -a”命令检查自己的端口,发现的也是类似“TCP UserIP:3015 ControllerIP:http ESTABLISHED”的情况,稍微疏忽一点你就会以为是自己在浏览网页,而防火墙也会同样这么认为的。于是,与一般的软件相反,反弹端口型软件的服务端主动连接客户端,这样就可以轻易的突破防火墙的限制。
㈢ 软件如何脱壳,用什么软件脱壳
首先你要检查一下加的什么壳,要是你检测时候发现是VC++写的,那就说明没加壳,自然就不需要脱壳。用什么加的壳,先PEid查看一下,然后再去找专门的脱壳工具,一旦检测出壳的种类,就可以脱壳了。
㈣ 软件如何脱壳
步骤1 检测壳
壳的概念:
所谓“壳”就是专门压缩的工具。
这里的压缩并不是我们平时使用的RAR、ZIP这些工具的压缩,壳的压缩指的是针对exe、com、和dll等程序文件进行压缩,在程序中加入一段如同保护层的代码,使原程序文件代码失去本来面目,从而保护程序不被非法修改和反编译,这段如同保护层的代码,与自然界动植物的壳在功能上有很多相似的地方,所以我们就形象地称之为程序的壳。
壳的作用:
1.保护程序不被非法修改和反编译。
2.对程序专门进行压缩,以减小文件大小,方便传播和储存。
壳和压缩软件的压缩的区别是
压缩软件只能够压缩程序
而经过壳压缩后的exe、com和dll等程序文件可以跟正常的程序一样运行
下面来介绍一个检测壳的软件
PEID v0.92
这个软件可以检测出 450种壳
新版中增加病毒扫描功能,是目前各类查壳工具中,性能最强的。
另外还可识别出EXE文件是用什么语言编写的VC++、Delphi、VB或Delphi等。
支持文件夹批量扫描
我们用PEID对easymail.exe进行扫描
找到壳的类型了
UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
说明是UPX的壳
下面进行
步骤2 脱壳
对一个加了壳的程序,去除其中无关的干扰信息和保护限制,把他的壳脱去,解除伪装,还原软件本来的面目。这个过程就叫做脱壳。
脱壳成功的标志
脱壳后的文件正常运行,功能没有损耗。
还有一般脱壳后的文件长度都会大于原文件的长度。
即使同一个文件,采用不同的脱壳软件进行脱壳,由于脱壳软件的机理不通,脱出来的文件大小也不尽相同。
关于脱壳有手动脱壳和自动脱壳
自动脱壳就是用专门的脱壳机脱 很简单 按几下就 OK了
手动脱壳相对自动脱壳 需要的技术含量微高 这里不多说了
UPX是一种很老而且强大的壳 不过它的脱壳机随处就能找到
UPX本身程序就可以通过
UPX 文件名 -d
来解压缩 不过这些需要的 命令符中输入
优点方便快捷 缺点DOS界面
为了让大家省去麻烦的操作 就产生了一种叫 UPX SHELL的外壳软件
UPX SHELL v3.09
UPX 外壳程序!
目的让UPX的脱壳加壳傻瓜化
注:如果程序没有加壳 那么我们就可以省去第二步的脱壳了,直接对软件进行分析了。
脱完后 我们进行
步骤3
运行程序
尝试注册
获取注册相关信息
通过尝试注册 我们发现一个关键的字符串
“序列号输入错误”
步骤4
反汇编
反汇编一般用到的软件 都是 W32Dasm
W32dasm对于新手 易于上手 操作简单
W32Dasm有很多版本 这里我推荐使用 W32Dasm 无极版
我们现在反汇编WebEasyMail的程序文件easymail.exe
然后看看能不能找到刚才的字符串
步骤5
通过eXeScope这个软件来查看未能在w32dasm中正确显示的字符串信息
eXeScope v6.50
更改字体,更改菜单,更改对话框的排列,重写可执行文件的资源,包括(EXE,DLL,OCX)等。是方便强大的汉化工具,可以直接修改用 VC++ 及 DELPHI 编制的程序的资源,包括菜单、对话框、字符串表等
新版可以直接查看 加壳文件的资源
我们打开eXeScope
找到如下字串符
122,"序列号输入错误 "
123,"恭喜您成为W ebEasyMail正式用户中的一员! "
124,注册成功
125,失败
重点是122
步骤6
再次返回 w32dasm
* Possible Reference to String Resource ID=00122: "?鲹e?"
但是双击后
提示说找不到这个字串符
不是没有 是因为 "?鲹e?"是乱码 w32dasm对于中文显示不是太好
毕竟不是国产软件
先把今天会用到的汇编基本指令跟大家解释一下
mov a,b ;把b的值赋给a,使a=b
call :调用子程序 ,子程序以ret结为
ret :返回主程序
je或jz :若相等则跳转
jne或jnz :若不相等则跳转
push xx:xx 压栈
pop xx:xx 出栈
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。
我们搜索
Possible Reference to String Resource ID=00122
因为对E文支持很好
我们来到了
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00406F17(C) //跳转来自 406F17
|
* Possible Reference to String Resource ID=00125: "1%"
|
:004070DD 6A7D push 0000007D
:004070DF 8D4C2410 lea ecx, dword ptr [esp+10]
:004070E3 E8F75A1200 call 0052CBDF
* Possible Reference to String Resource ID=00122: "?鲹e?"
|
:004070E8 6A7A push 0000007A
:004070EA 8D4C2408 lea ecx, dword ptr [esp+08]
:004070EE E8EC5A1200 call 0052CBDF
我们来到
:00406F01 8B876C080000 mov eax, dword ptr [edi+0000086C]这里是对
:00406F07 8B4C2408 mov ecx, dword ptr [esp+08]
:00406F0B 50 push eax//这两个eax和ecx入栈就比较让我们怀疑了
:00406F0C 51 push ecx//产生注册码
:00406F0D E8AE381100 call 0051A7C0//这CALL里对注册位应该会有设置
:00406F12 83C40C add esp, 0000000C
:00406F15 85C0 test eax, eax// 检测注册位
:00406F17 0F85C0010000 jne 004070DD //不存在注册位 就会跳到4070DD就会出现那个错误的字串符了
我们记住406F01这个地址
接着进行下一步
步骤7
这一步我们进行的是调试
用到的软件是ollydbg
好了我们找到了 注册码0012AF04 00FD4A10 ASCII ""
但是这个并不是我们的主要目的
我们还要做出属于自己的注册机
相信这个是很多人梦寐以求的事情
步骤8
制作注册机
注册机我们需要的是一个KEYMAKE的软件
因为2.0是演示版而且停止更新了
所以我们用1.73版
做一个内存注册机 需要下面几个资料
中断地址:406F0C
中断次数:1
第一字节:51
指令长度:1
好了 一个完美的注册机 就产生了
还不赶快发给你的朋友 炫耀一下
保证让他迷糊死 佩服得你要死
其实最后还有几个步骤
就是撰写破文
不过大家都是新手 这个步骤 就去了吧
不知不觉说了这么多废话 希望能对大家有些作用
㈤ 安卓手机什么刷机软件好用
安卓刷机软件哪个好
随着智能手机的普及,很多人都喜欢自己刷机,网上有很多刷机软件,但又不知道究竟安卓刷机软件哪个好。下面就来推荐几款好用的刷机软件,傻瓜式一键刷机软件,方便易用,以后再也不用烦恼安卓刷机软件哪个好的问题了。
安卓刷机软件哪个好推荐软件一:ROOT精灵手机版
ROOT精灵是由刷机精灵开发团队精心打造的一款超级手机端ROOT工具,支持本地离线快速ROOT和在线云端高效匹配ROOT方案,目前已支持500多个品牌,14648款机型。
安卓刷机软件哪个好推荐软件二:刷机精灵手机版
刷机精灵手机版是由刷机精灵团队开发的一款手机端刷机软件,首发针对15款热门机型特别优化,刷机速度业内第一。人工筛选优质Rom确保刷到的都是中国好Rom。集成最强Root能力,刷机0门槛。手机数据安全秒备份,刷机再无后顾之忧。现在就扔掉你的数据线,感受没有束缚的极速刷机体验吧。
安卓刷机软件哪个好推荐软件三:刷机专家(卓大师)
刷机专家(卓大师)是精灵版刷机专家的升级版本。是一款继承了精灵版所有优秀功能的完美刷机工具。刷机专家(卓大师)拥有的智能一键Root、预装软件卸载、官方解锁等强大功能,并提供海量免费ROM资源及刷机教程;基于安全可靠的云端解决方案,为广大安卓用户提供简单、高效、安全的手机深度优化管理。
安卓刷机软件哪个好推荐软件四:绿豆刷机
绿豆刷机神器 for Phone(简称“绿豆”)是安卓首款自动刷机神器,支持多款主流安卓手机,无需电脑和数据线,可自动一键刷机、一键备份/还原系统、一键获取ROOT权限、一键安装必备软件、一键下载软件游戏。并免费提供多款安卓手机的官方原生ROM和第三方ROM供玩家刷机使用。
有了以上推荐的四款刷机软件,再也不用纠结安卓刷机软件哪个好的问题了,以后刷机就能轻松一键搞定。
㈥ android killer v1.3.1怎么脱壳
搭建Android开发环境的关键一步是配置java环境变量。当然,如果你想学习Java编程,那么在搭建Java开发平台时,也需要配置Java环境变量。
工具/原料
JDK(Java Development Kit)
安装JDK
在安装之前,先说明一下JDK与JRE:
JDK:JDK是Java Development Kit。简单地说JDK是面向开发人员使用的SDK(Software Development Kit),它提供了Java的开发环境和运行环境。SDK是Software Development Kit一般指软件开发包,可以包括函数库、编译程序等。
JRE:JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。
即如果你只想运行Java程序,那么安装JRE就够了;如若想开发Java应用程序,那么需要安装JDK,在安装JDK时会自动安装JRE,因为JDK是用Java语言写的,需要JRE来运行。
JDK安装
JDK安装很简单,根据安装向导提示,选择安装目录(也可更改安装目录),逐步进行安装,具体操作如下图所示:
安装好JDK后,可以查看安装信息:共安装了两处,一是选择的JDK安装目录;二是系统盘C:\Program Files\Java\jre7下的JRE。具体情况如下图所示:
配置Java环境变量
在桌面,右击“计算机”,在弹出的菜单中选择“属性”—>“高级系统设置”—>“环境变量”—>“系统变量”—>“新建”:
1)新建变量JAVA_HOME
变量名:JAVA_HOME
变量值:E:\MyJava\Java\jdk1.7.0_51 (即JDK的安装目录)
2)新建变量CLASSPATH(如果已经存在,则直接写入变量值)
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
说明:其中“%JAVA_HOME%”即是引用变量“JAVA_HOME”的值,而dt.jar与tool.jar正是该目录E:\MyJava\Java\jdk1.7.0_51\lib下的内容。
3)在JAVA_HOME和CLASSPATH建立后,选择“Path”变量,单击编辑,或双击该变量,在变量值栏最前端添加:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
说明:其中“%JAVA_HOME%”即是引用变量“JAVA_HOME”的值,而bin与jre\bin即为相应目录下的文件夹。
具体操作如下图所示:
5
Java环境变量配置好,就可以打开Eclipse,安装ADT,添加SDK,然后就可以开发Android应用程序了!!
http://jingyan..com/article/76a7e409bb1633fc3b6e15b9.html
㈦ 安卓手机端怎么脱壳
安卓软件是用java编写的,java语言不可能真正的编译成机器码,apk文件其实是一个压缩包,里面包含有程序的源码和资源,你可以去谷哥安卓开发工具里找到解包器(是Linux平台的工具),解开后就可以用java的反编译程序修改了!
㈧ 谁能详细解说下脱壳步骤和软件
【目标软件】WINME下的记事本
【加壳方式】Armadillo3.60 CopyMem-ll Debug-Blocker
【调试环境】:WinXP、Ollydbg、PEiD、LordPE、ImportREC 1.6F
1.前言
为了练习脱壳,前一段时间从网上下了一个Armadillo3.60,然后给记事本加壳,当然本人初学破解,参考了很多大虾们的文章,然后自己模仿脱壳,可是当我修改了Magic Jump后,用401000段“内存断点”大法想到达那个盼望已久的OEP的时候,意外出现了:程序终止,退出!是我做法错误,然后我又实验了N遍,依然如此,为什么?随后又在论坛不停的搜索着,想找一些有关的知识,终于找到了(抱歉,忘记了作者是谁),而且解决了这个问题,为了使象我一样初学者不要重蹈覆辙,我决定详细的写一写,也许你认为很简单,那么请略过。
2.脱壳过程(分以下几步进行)
设置Ollydbg忽略所有的异常选项,用IsDebug 1.4插件去掉Ollydbg的调试器标志。
(1)查找OEP
用OD中载入程序,下bp WaitForDebugEvent,F9运行,中断如下:
77E93A07 k> 55 push ebp <====中断在此处,清除断点
77E93A08 8BEC mov ebp,esp
77E93A0A 83EC 68 sub esp,68
77E93A0D 56 push esi
77E93A0E FF75 0C push dword ptr ss:[ebp C]
查看堆栈窗口:
0012DAC0 00423D67 /CALL 到 WaitForDebugEvent 来自 NOTEPAD.00423D61
0012DAC4 0012EB84 |pDebugEvent = 0012EB84 <====注意这里
0012DAC8 000003E8 \Timeout = 1000. ms
在0012EB84所在的行上点击右键选“转存中跟随”。
然后再下bp WriteProcessMemory,F9运行
77E41A90 k> 55 push ebp <====中断在此处
77E41A91 8BEC mov ebp,esp
77E41A93 51 push ecx
77E41A94 51 push ecx
77E41A95 8B45 0C mov eax,dword ptr ss:[ebp C]
看数据转存窗口:
0012EB84 01 00 00 00 40 07 00 00 ...@ ..
0012EB8C 5C 01 00 00 01 00 00 80 \ .. ..
0012EB94 00 00 00 00 00 00 00 00 ........
0012EB9C CC 10 40 00 02 00 00 00 ?@. ...
0012EBA4 00 00 00 00 CC 10 40 00 ....?@.
0012EBAC CC 10 40 00 00 00 00 00 ?@.....
红色字体的4010CC就是OEP,这样我们接着来第2步
(2)mp文件
现在我们重新用OD中载入程序,下硬件断点,he WaitForDebugEvent,F9运行,中断如下:
77E93A07 k> 55 push ebp <====中断在此处,删除断点
77E93A08 8BEC mov ebp,esp
77E93A0A 83EC 68 sub esp,68
77E93A0D 56 push esi
77E93A0E FF75 0C push dword ptr ss:[ebp C]
Alt F9返回,搜索常数FFFFFFF8,来到(004243D6处):
0042438A > \83BD D0F5FFFF>cmp dword ptr ss:[ebp-A30],0<====参考文章里提到的关键代码
00424391 . 0F8C A9020000 jl NOTEPAD.00424640<====跳转到00424640处,因此在00424640处下断点
00424397 . 8B8D D0F5FFFF mov ecx,dword ptr ss:[ebp-A30]
0042439D . 3B0D E4454500 cmp ecx,dword ptr ds:[4545E4]
004243A3 . 0F8D 97020000 jge NOTEPAD.00424640
004243A9 . 8B95 44F6FFFF mov edx,dword ptr ss:[ebp-9BC]
004243AF . 81E2 FF000000 and edx,0FF
004243B5 . 85D2 test edx,edx
004243B7 . 0F84 AD000000 je NOTEPAD.0042446A
004243BD . 6A 00 push 0
004243BF . 8BB5 D0F5FFFF mov esi,dword ptr ss:[ebp-A30]
004243C5 . C1E6 04 shl esi,4
004243C8 . 8B85 D0F5FFFF mov eax,dword ptr ss:[ebp-A30]
004243CE . 25 07000080 and eax,80000007
004243D3 . 79 05 jns short NOTEPAD.004243DA
004243D5 . 48 dec eax
004243D6 . 83C8 F8 or eax,FFFFFFF8<=====搜索来到这里,向上看
004243D9 . 40 inc eax
004243DA > 33C9 xor ecx,ecx
004243DC . 8A88 802A4500 mov cl,byte ptr ds:[eax 452A80]
004243E2 . 8B95 D0F5FFFF mov edx,dword ptr ss:[ebp-A30]
004243E8 . 81E2 07000080 and edx,80000007
004243EE . 79 05 jns short NOTEPAD.004243F5
004243F0 . 4A dec edx
004243F1 . 83CA F8 or edx,FFFFFFF8
004243F4 . 42 inc edx
004243F5 > 33C0 xor eax,eax
004243F7 . 8A82 812A4500 mov al,byte ptr ds:[edx 452A81]
004243FD . 8B3C8D 60E244>mov edi,dword ptr ds:[ecx*4 44E260]
00424404 . 333C85 60E244>xor edi,dword ptr ds:[eax*4 44E260]
0042440B . 8B8D D0F5FFFF mov ecx,dword ptr ss:[ebp-A30]
00424411 . 81E1 07000080 and ecx,80000007
00424417 . 79 05 jns short NOTEPAD.0042441E
00424419 . 49 dec ecx
0042441A . 83C9 F8 or ecx,FFFFFFF8
0042441D . 41 inc ecx
0042441E > 33D2 xor edx,edx
00424420 . 8A91 822A4500 mov dl,byte ptr ds:[ecx 452A82]
00424426 . 333C95 60E244>xor edi,dword ptr ds:[edx*4 44E260]
0042442D . 8B85 D0F5FFFF mov eax,dword ptr ss:[ebp-A30]
00424433 . 99 cdq
00424434 . B9 1C000000 mov ecx,1C
00424439 . F7F9 idiv ecx
0042443B . 8BCA mov ecx,edx
0042443D . D3EF shr edi,cl
0042443F . 83E7 0F and edi,0F
00424442 . 03F7 add esi,edi
00424444 . 8B15 D4454500 mov edx,dword ptr ds:[4545D4]
0042444A . 8D04B2 lea eax,dword ptr ds:[edx esi*4]
0042444D . 50 push eax
0042444E . 8B8D D0F5FFFF mov ecx,dword ptr ss:[ebp-A30]
00424454 . 51 push ecx
00424455 . E8 FF1F0000 call NOTEPAD.00426459
0042445A . 83C4 0C add esp,0C
0042445D . 25 FF000000 and eax,0FF<====从这里开始修改
00424462 . 85C0 test eax,eax
00424464 . 0F84 D6010000 je NOTEPAD.00424640
在0042438A处下 硬件执行 断点,F9运行到0042438A处,得到ebp-A30=12EB70,这样上述的修改地方修改为:
0042445D FF05 70EB1200 inc dword ptr ds:[12EB70]
00424463 90 nop
00424464 ^ E9 21FFFFFF jmp NOTEPAD.0042438A
把12EB70处置0,去掉所有断点,并在00424640处下断,F9运行,断住。好了,所有代码都强制解压完成。
运行LordPE,有2个关于NOTEPAD的进程,选择第2个,即可完全mp出来了。
(3)修复IAT表
因为Armadillo的壳使得ImportREC的"IAT AutoSearch"失效,所以必须确定IAT的RAV以及大小,为此我们用OD载入刚刚DUMP出来的文件,来确定IAT的RAV以及大小,载入之前先修改入口点为10CC,然后载入:
004010CC d> 55 push ebp
004010CD 8BEC mov ebp,esp
004010CF 83EC 44 sub esp,44
004010D2 56 push esi
004010D3 FF15 F4734000 call dword ptr ds:[4073F4]<====注意这里
004010D9 8BF0 mov esi,eax
我们可以随便找一个CALL入手确定IAT的RAV以及大小(不妨找看到的第一个CALL)。光标定位到数据转存窗口中,然后 Ctrl G,4073F4,可以看到:
004072E4 BE 7D 00 00 00 00 00 00 缄......
004072EC D7 23 DA 77 46 BA 3C 00 ?赵F?.
004072F4 F0 59 DA 77 CC 5E DA 77 餣赵蘜赵
..........(省略若干)
004073DC 7D 15 F5 77 90 9B 3C 00 } 鲓悰<.
004073E4 03 38 E5 77 67 31 E5 77 8鍂g1鍂
004073EC 3C 51 E5 77 97 2D E5 77 <Q鍂?鍂
004073F4 C7 C3 3C 00 45 9A E5 77 敲<.E氩w<====到达这里,由此处向上和向下看
004073FC 91 B2 3C 00 8D B8 3C 00 懖<.嵏<.
00407404 50 88 3C 00 CE 8A 47 77 P?.螉Gw
..........(省略若干)
00407504 EC 72 D1 77 11 9A D1 77 靣褀 氀w
0040750C 06 81 D1 77 D3 3D D1 77 布w?褀
00407514 37 89 3C 00 B3 22 32 76 7?.?2v
0040751C 39 DC 33 76 3B C2 32 76 9?v;?v
00407524 10 1D 34 76 D6 8B 32 76 4v謰2v
0040752C B7 44 33 76 70 1B 32 76 稤3vp 2v
00407534 8B 88 3C 00 00 00 00 00 媹<.....
这样IAT的大小是终点-始点=00407530-004072EC=244,RVA=72EC。为什么是这样呢,我们看到很多77XXXXXX之类的,而到了00407534处是8B 88 3C 00,为了确定其是否在IAT内,我们可以在OD的CPU窗口内定位光标到401000处,然后Ctrl B,填入 34 75 40,结果搜索不到,而30 75 40能够搜索到,是JMP [407530],因此确定IAT的终点点是407530,用同样的方法可以确定起点点是4072EC。
好了,IAT的RAV以及大小确定了,现在就要修复IAT了,用OD再一次载入未脱壳的程序,bp DebugActiveProcess,F9断下。看堆栈窗口:
0012DAC4 00423BDB /CALL 到 DebugActiveProcess 来自 NOTEPAD.00423BD5
0012DAC8 00000324 \ProcessId = 324<=====子进程句柄
0012DACC 0012FF2C
打开另一个OD附加324这个子进程。然后ALT+F9返回程序:
00433999 N> - EB FE jmp short NOTEPAD.<MoleEntryPoint><====中断在此处,还原代码
0043399B EC in al,dx
0043399C |. 6A FF push -1
0043399E |. 68 503C4500 push NOTEPAD.00453C50
还原00433999处代码代码,EB FE改为55 8B,接下来就要按照FLY等大虾们的方法了。在接下来的步骤中前一部分可以参考Fly的《壹次脱壳法——Armadillo 双进程标准壳 快速脱壳》,我们从Magic Jump,避开IAT加密开始,取消以前断点,下断:BP GetMoleHandleA 5,
77E59F98 /0F84 23060000 je kernel32.77E5A5C1<====中断在此处,注意看堆栈
77E59F9E |FF7424 04 push dword ptr ss:[esp 4]
77E59FA2 |E8 55080000 call kernel32.77E5A7FC
77E59FA7 |85C0 test eax,eax
在这里中断若干次,注意堆栈窗口的变化,当出现:
......
0012BF20 00AAC807 返回到 00AAC807 来自 kernel32.GetMoleHandleA
0012BF24 00ABD6C8 ASCII "kernel32.dll"
0012BF28 00ABE67C ASCII "VirtualAlloc"
0012BF20 00AAC824 返回到 00AAC824 来自 kernel32.GetMoleHandleA
0012BF24 00ABD6C8 ASCII "kernel32.dll"
0012BF28 00ABE670 ASCII "VirtualFree"
0012BC98 00A9799B 返回到 00A9799B 来自 kernel32.GetMoleHandleA
0012BC9C 0012BDD4 ASCII "kernel32.dll"
然后Alt F9返回,
00A97995 FF15 C480AB00 call dword ptr ds:[AB80C4] ; kernel32.GetMoleHandleA
00A9799B 8B0D E011AC00 mov ecx,dword ptr ds:[AC11E0]<====返回到这里
00A979A1 89040E mov dword ptr ds:[esi ecx],eax
00A979A4 A1 E011AC00 mov eax,dword ptr ds:[AC11E0]
00A979A9 393C06 cmp dword ptr ds:[esi eax],edi
00A979AC 75 16 jnz short 00A979C4
00A979AE 8D85 B4FEFFFF lea eax,dword ptr ss:[ebp-14C]
00A979B4 50 push eax
00A979B5 FF15 CC80AB00 call dword ptr ds:[AB80CC] ; kernel32.LoadLibraryA
00A979BB 8B0D E011AC00 mov ecx,dword ptr ds:[AC11E0]
00A979C1 89040E mov dword ptr ds:[esi ecx],eax
00A979C4 A1 E011AC00 mov eax,dword ptr ds:[AC11E0]
00A979C9 393C06 cmp dword ptr ds:[esi eax],edi
00A979CC 0F84 AD000000 je 00A97A7F<====Magic Jump,修改为JMP
00A979D2 33C9 xor ecx,ecx
00A979D4 8B03 mov eax,dword ptr ds:[ebx]
修改了上面的Magic Jump后,清除所有断点,Alt M ,在401000上下 内存访问断点,F9运行,这次中断到了OEP,然后运行ImportREC,选择324这个进程,OEP填:10CC,RVA:72EC,SIZE:244,然后“Get Imports”,再按“Show Invalid”地址,剪掉修复抓取文件,程序能够正常运行,至此脱壳完毕 !第一次用OD脱壳,感觉就是爽,和Softice比起来,感觉OD脱壳很方便.
㈨ 怎样破解加壳程序
根据我多年的破解经验,我跟你说说吧。我玩一些游戏,例如单机的什么三国有些都要改主页才能改。我也试过脱壳,一般加上的都是ACP2.0的壳,这个你用peid0.95可以试下,脱也能脱,但是不完全,脱壳后用od反汇编照样出现乱码,要完全破解需要很长时间,而且工程很巨大。我还是建议你不要破解了,还是去下载游侠网这类大网站提供的游戏,哪个不会出现这类情况的。
㈩ 软件破解有没有通用万能的脱壳的好工具asprotect壳有什么工具可以脱掉
(一).壳的概念
作者编好软件后,编译成exe可执行文件。 1.有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名等,即为了保护软件不被破解,通常都是采用加壳来进行保护。 2.需要把程序搞的小一点,从而方便使用。于是,需要用到一些软件,它们能将exe可执行文件压缩, 3.在黑客界给木马等软件加壳脱壳以躲避杀毒软件。
实现上述功能,这些软件称为加壳软件。
(二).加壳软件最常见的加壳软件ASPACK ,UPX,PEcompact 不常用的加壳软件WWPACK32;PE-PACK ;PETITE ;NEOLITE
(三).侦测壳和软件所用编写语言的软件,因为脱壳之前要查他的壳的类型。 1.侦测壳的软件fileinfo.exe 简称fi.exe(侦测壳的能力极强) 2.侦测壳和软件所用编写语言的软件language.exe(两个功能合为一体,很棒) 推荐language2000中文版(专门检测加壳类型) 3.软件常用编写语言Delphi,VisualBasic(VB)---最难破,VisualC(VC)
(四)脱壳软件。 软件加壳是作者写完软件后,为了保护自己的代码或维护软件产权等利益所常用到的手段。目前有很多加壳工具,当然有盾,自然就有矛,只要我们收集全常用脱壳工具,那就不怕他加壳了。软件脱壳有手动脱壳和自动脱壳之分,下面我们先介绍自动脱壳,因为手动脱壳需要运用汇编语言,要跟踪断点等,不适合初学者,但我们在后边将稍作介绍。
加壳一般属于软件加密,现在越来越多的软件经过压缩处理,给汉化带来许多不便,软件汉化爱好者也不得不学习掌握这种技能。现在脱壳一般分手动和自动两种,手动就是用TRW2000、TR、SOFTICE等调试工具对付,对脱壳者有一定水平要求,涉及到很多汇编语言和软件调试方面的知识。而自动就是用专门的脱壳工具来脱,最常用某种压缩软件都有他人写的反压缩工具对应,有些压缩工具自身能解压,如UPX;有些不提供这功能,如:ASPACK,就需要UNASPACK对付,好处是简单,缺点是版本更新了就没用了。另外脱壳就是用专门的脱壳工具来对付,最流行的是PROCDUMP v1.62 ,可对付目前各种压缩软件的压缩档。在这里介绍的是一些通用的方法和工具,希望对大家有帮助。我们知道文件的加密方式,就可以使用不同的工具、不同的方法进行脱壳。下面是我们常常会碰到的加壳方式及简单的脱壳措施,供大家参考: 脱壳的基本原则就是单步跟踪,只能往前,不能往后。脱壳的一般流程是:查壳->寻找OEP->Dump->修复 找OEP的一般思路如下: 先看壳是加密壳还是压缩壳,压缩壳相对来说容易些,一般是没有异常,找到对应的popad后就能到入口,跳到入口的方式一般为。 我们知道文件被一些压缩加壳软件加密,下一步我们就要分析加密软件的名称、版本。因为不同软件甚至不同版本加的壳,脱壳处理的方法都不相同。
常用脱壳工具: 1、文件分析工具(侦测壳的类型):Fi,GetTyp,peid,pe-scan, 2、OEP入口查找工具:SoftICE,TRW,ollydbg,loader,peid 3、mp工具:IceDump,TRW,PEditor,ProcDump32,LordPE 4、PE文件编辑工具:PEditor,ProcDump32,LordPE 5、重建Import Table工具:ImportREC,ReVirgin 6、ASProtect脱壳专用工具:Caspr(ASPr V1.1-V1.2有效),Rad(只对ASPr V1.1有效),loader,peid
(1)Aspack: 用的最多,但只要用UNASPACK或PEDUMP32脱壳就行了 (2)ASProtect+aspack: 次之,国外的软件多用它加壳,脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识,但最新版现在暂时没有办法。 (3)Upx: 可以用UPX本身来脱壳,但要注意版本是否一致,用-D 参数 (4)Armadill: 可以用SOFTICE+ICEDUMP脱壳,比较烦 (5)Dbpe: 国内比较好的加密软件,新版本暂时不能脱,但可以破解 (6)NeoLite: 可以用自己来脱壳 (7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE来脱壳 (8)Pecompat: 用SOFTICE配合PEDUMP32来脱壳,但不要专业知识 (9)Petite: 有一部分的老版本可以用PEDUMP32直接脱壳,新版本脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识 (10)WWpack32: 和PECOMPACT一样其实有一部分的老版本可以用PEDUMP32直接脱壳,不过有时候资源无法修改,也就无法汉化,所以最好还是用SOFTICE配合 PEDUMP32脱壳 我们通常都会使用Procmp32这个通用脱壳软件,它是一个强大的脱壳软件,他可以解开绝大部分的加密外壳,还有脚本功能可以使用脚本轻松解开特定外壳的加密文件。
另外很多时候我们要用到exe可执行文件编辑软件ultraedit。我们可以下载它的汉化注册版本,它的注册机可从网上搜到。ultraedit打开一个中文软件,若加壳,许多汉字不能被认出 ultraedit打开一个中文软件,若未加壳或已经脱壳,许多汉字能被认出 ultraedit可用来检验壳是否脱掉,以后它的用处还很多,请熟练掌握例如,可用它的替换功能替换作者的姓名为你的姓名注意字节必须相等,两个汉字替两个,三个替三个,不足处在ultraedit编辑器左边用00补