ava fn弩炮-FNC怎么改 详细说明及...

***A战地之王2.0-战地之王官方网站-腾讯游戏
全新上线的新模式-坦克战场! 组建最强的坦克军团与敌人一决高下!更融合了步兵系统,可以步兵参战!
全新模式【坦克战场】
坦克战场模式中,可以使用自己喜欢的坦克歼灭来所有敌军坦克。首先摧毁所有敌军坦克的阵营获胜。
坦克战场模式中,有3种性能各异的坦克供玩家选择。
【SK105轻型坦克】
机动性与主炮装弹速度较快,主炮回转速度也最快。但炮弹的伤害最小,装甲的防御力也最低。
技能:【Ctrl键】加速 【空格键】瞄准稳定
穿甲弹数量:2
【T-90主战坦克】
在3种坦克中,各项属性最为均衡。 比起SK105坦克,装甲的防御力更高。
技能:【Ctrl键】加速 【空格键】烟雾弹
穿甲弹数量:1
炮弹的攻击力最高,防御力也最高。 但坦克的机动性,装弹速度,主炮的回转速度较慢。
技能:【Ctrl键】装甲强化 【空格键】烟雾弹
穿甲弹数量:1
坦克战场礼盒
进行坦克战场模式获得胜利或完成成就可以获得【坦克币】. 坦克币可以用来在【特殊装备】商城中抽取特殊装备.
沙豹装甲铁锹(永久)
装甲TPG1(永久)
沙漠猎豹坦克(自动效果道具)
雪林猎豹坦克(自动效果道具)
雪豹装甲铁锹(永久)
02 商城改版
商城全面改版,更是添加了GP(游戏币)销售的09系列防具、大量主武器、基础投掷武器。
GP版 09系列防具
Iyan 09龙鳞头盔
Iyan SA09武士护服
Iyan SG09防寒手套
Iyan 09龙鳞护膝
Iyan 09龙鳞战靴
SD09强化防暴伪装服
侦察兵武器
步***兵武器
黑铁SA58 PARA
狙击兵武器
基础投掷武器
M18灰色烟雾弹Ⅲ代
MK3A2手榴弹
红色/灰色烟雾弹
M116A1.Ⅲ闪光弹
永久收集包-末日机甲版
18800***A点/每次 1把终极武器+8把极品组成道具 无重复 收集还可获得极品收集奖励
终极武器-海神FN-FNC
FN-FNC为蓝本设计的特殊特色版终极武器。设计灵感来自于北欧神话的海神Aegir,以波涛汹涌的深渊为领土,残忍而令人敬畏。将古典与现代相结合,***身加入了鱼鳍的设计,并融合了巴洛克风格,在奋勇杀敌的同时更能赏心悦目(由华北网通玩家“白茶”设计)。【特殊属性:经验值加成、换弹速度提升,子弹数增加,特殊的***械效果,死亡后不掉落】
军备套包【雄师军团包】
30QB军备套包全新更新了8把极品武器
东方统帅10Gauge
东方统帅M4A1
东方统帅R93
圣诞M1 Garand
新角色皮肤
圣诞女郎·安娜,圣诞女郎·莉莉
& 反外挂系统-猎鹰系统
& 特殊装备商城改版
& 调整了游戏字体,添加了大厅及角色背景的【飘雪】效果
& ***械改造系统改版,改造件可删除,改造件GP化
& 添加了手雷轨迹系统
& 添加了【战斗状况板】系统
& 添加了【报警系统】查看: 27278|回复: 16
教大家如何修改外挂
在线时间43 小时
T币3518 元
T币帖子金砖
水面的小草(4级), 积分 36, 距离下一级还需 264 积分
水面的小草(4级), 积分 36, 距离下一级还需 264 积分
教大家怎么修改外挂的第一步脱壳 只要你会就会修改外挂很多了
步骤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的脱壳加壳傻瓜化
注:如果程序没有加壳 那么我们就可以省去第二步的脱壳了,直接对软件进行分析了。
脱完后 我们进行
获取注册相关信息
通过尝试注册 我们发现一个关键的字符串
“序列号输入错误”
反汇编一般用到的软件 都是 W32Dasm
W32dasm对于新手 易于上手 操作简单
W32Dasm有很多版本 这里我推荐使用 W32Dasm 无极版
我们现在反汇编WebEasyMail的程序文件easymail.exe
然后看看能不能找到刚才的字符串
通过eXeScope这个软件来查看未能在w32dasm中正确显示的字符串信息
eXeScope v6.50
更改字体,更改菜单,更改对话框的排列,重写可执行文件的资源,包括(EXE,DLL,OCX)等。是方便强大的汉化工具,可以直接修改用 VC++ 及 DELPHI 编制的程序的资源,包括菜单、对话框、字符串表等
新版可以直接查看 加壳文件的资源
我们解锁eXeScope
找到如下字串符
122,&序列号输入错误 &
123,&恭喜您成为WebEasyMail正式用户中的一员! &
124,注册成功
再次返回 w32dasm
* Possible Reference to String Resource ID=00122: &?鲹e?&
但是双击后
提示说找不到这个字串符
不是没有 是因为 &?鲹e?&是乱码 w32dasm对于中文显示不是太好
毕竟不是国产软件
先把今天会用到的汇编基本指令跟大家解释一下
mov a,把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]
: E8F75A1200 call 0052CBDF
* Possible Reference to String Resource ID=00122: &?鲹e?&
: 6A7A push 0000007A
:004070EA 8D4C2408 lea ecx, dword ptr [esp+08]
:004070EE E8EC5A1200 call 0052CBDF
:B876C080000 mov eax, dword ptr [edi+0000086C]这里是对
:B4C2408 mov ecx, dword ptr [esp+08]
: push eax//这两个eax和ecx入栈就比较让我们怀疑了
: push ecx//产生注册码
:00406F0D E8AE381100 call //这CALL里对注册位应该会有设置
:C40C add esp, 0000000C
:C0 test eax, eax// 检测注册位
:F85C0010000 jne 004070DD //不存在注册位 就会跳到4070DD就会出现那个错误的字串符了
我们记住406F01这个地址
接着进行下一步
这一步我们进行的是调试
用到的软件是ollydbg
好了我们找到了 注册码FD4A10 ASCII &c1c9fbf78e6&
但是这个并不是我们的主要目的
我们还要做出属于自己的注册机
相信这个是很多人梦寐以求的事情
制作注册机
注册机我们需要的是一个KEYMAKE的软件
因为2.0是演示版而且停止更新了
所以我们用1.73版
做一个内存注册机 需要下面几个资料
中断地址:406F0C
中断次数:1
第一字节:51
指令长度:1
好了 一个完美的注册机 就产生了
还不赶快发给你的朋友 炫耀一下
保证让他迷糊死 佩服得你要死
其实最后还有几个步骤
就是撰写破文
不过大家都是新手 这个步骤 就去了吧
(提示:这西我也是抄来的,我也想学啊,谢谢你们阅读)
一、以壳克壳
外挂克星对OllyDBD的检测比较繁琐,这部分我就不详细说明了,可以让其注入到记事本中或者用SoftICE来调试。最简单的解决方法是,用Themida对原版OllyDBG.exe加壳,这样就可以避开那些反调试了,算是Themida也为UnPacKer做点好事吧。强调一下,Themida有可能会造成系统崩溃,另外试用版有20分钟的限制,正好强制休息一下啦。
加壳后的JiangHu.exe输入表只有一个函数,JiangHu.dll的MyFun,先调用JiangHu.dll对BS_StopApiM.DB解密,得到BS_StopApiM.dll,然后把BS_StopApiM.dll注入到Explorer.exe进程中,大部分反跟踪检测都在此注入代码中进行。检测黑名单、检测OllyDBG第一个区段数据、检测特征码等等,看来作者对OllyDBD研究了不少,不过对SoftICE+IceExt却不作抵抗,可惜。
JiangHu.exe通过Loader运行,可以BP CreateProcessA获得参数,直接调试也行。
& &&&&&/CALL 到 CreateProcessA 来自 Launcher.0040297E
& &&&&&|ModuleFileName = &JiangHu.exe&
& &&&&&|CommandLine = &JiangHu.exe &
0012F83C& &&&&&|pProcessSecurity = NULL
& &&&&&|pThreadSecurity = NULL
& &&&&&|InheritHandles = FALSE
& &&&&&|CreationFlags = 0
0012F84C& &&&&&|pEnvironment = NULL
& &&&&&|CurrentDir = NULL
& &&&&&|pStartupInfo =
& &&&&&pProcessInfo =
―――――――――――――――――――――――――――――――――
二、HeapAlloc后门检测
& && && && &
在OllyDBG等三环Debugger调试状态下,LocalAlloc、HeapAlloc申请内存的初始填充值非0,某些壳可以通过这个来检测调试器了。
LPVOID HeapAlloc(
&&HANDLE hHeap,& &// handle to private heap block
&&DWORD dwFlags,&&// heap allocation control
&&SIZE_T dwBytes&&// number of bytes to allocate
HEAP_NO_SERIALIZE equ h& && &
HEAP_GROWABLE equ h& && &
HEAP_GENERATE_EXCEPTIONS equ h& && &
HEAP_ZERO_MEMORY equ h& && &
HEAP_REALLOC_IN_PLACE_ONLY equ h& && &
HEAP_TAIL_CHECKING_ENABLED equ h& && &
HEAP_FREE_CHECKING_ENABLED equ h& && &
HEAP_DISABLE_COALESCE_ON_FREE equ h& && &
HEAP_CREATE_ALIGN_16 equ h& && &
HEAP_CREATE_ENABLE_TRACING equ h& && &
HEAP_MAXIMUM_TAG equ 0FFFh& && && && &&&
HEAP_PSEUDO_TAG_FLAG equ 8000h& && && && &&&
HEAP_TAG_SHIFT equ 18& && && && && &
dwFlags=,则申请的内存处以00填充
――――――――――――――――――――――――
设置OllyDBD暂停在系统断点,忽略所有异常选项。使用IsDebug插件。
7C921231& & C3& && && && &&&retn
//进入OllyDbg后暂停在这
HeapAlloc在XP上输出转向为ntdll的RtlAllocateHeap
下断:BP RtlAllocateHeap [ESP]&
其实这里我们可以先运行,让其异常,就能快速定位到检测处了。
Shift+F9中断约8次后看堆栈:
0012FEB4& & &&返回到 JiangH_1. 来自 ntdll.RtlAllocateHeap
0012FEB8& & 003C0000
0012FEBC& &
0012FEC0& &
0012FEC4& &
0012FEC8& & 1000AEA8&&JiangH_1.1000AEA8
修改堆栈中0012FEBC=
取消以前的断点,在处下断
& & 83E6 F0& && && &and esi,FFFFFFF0
& & 56& && && && &&&push esi
& & 6A 00& && && &&&push 0
100034BB& & FF35 9CC50010& &push dword ptr ds:[1000C59C]
& & FF15 6C900010& &call dword ptr ds:[1000906C] ; ntdll.RtlAllocateHeap
& & 5F& && && && &&&pop edi
//RtlAllocateHeap后中断这里
& & 5E& && && && &&&pop esi
& & C3& && && && &&&retn
Shift+F9,EAX=,可以看到[]处都已经填充00了。
取消所有断点,继续F7走,看看哪里检测
10001F37& & 8B56 0C& && && &mov edx,dword ptr ds:[esi+C]
10001F3A& & 8D4C24 08& && & lea ecx,dword ptr ss:[esp+8]
10001F3E& & 52& && && && &&&push edx
10001F3F& & E8 8C050000& &&&call
10001F44& & 8B4E 0C& && && &mov ecx,dword ptr ds:[esi+C]
10001F47& & 6A 00& && && &&&push 0
10001F49& & 6A 01& && && &&&push 1
10001F4B& & 51& && && && &&&push ecx
10001F4C& & FFD0& && && && &call eax& && && &&&;011004DB
10001F4E& & 8B56 0C& && && &mov edx,dword ptr ds:[esi+C]
10001F51& & 68 78A00010& &&&push & && && && && & ; ASCII &BS_New_Proc&
10001F56& & 52& && && && &&&push edx
10001F57& & 8D4C24 10& && & lea ecx,dword ptr ss:[esp+10]
10001F5B& & E8 & &&&call
进入10001F4C call eax&&,& &就能看见HeapAlloc后门检测了
011404DB& & 55& && && && &&&push ebp
011404DC& & 8BEC& && && && &mov ebp,esp
011404DE& & 53& && && && &&&push ebx
011404DF& & 8B5D 08& && && &mov ebx,dword ptr ss:[ebp+8]
& & 56& && && && &&&push esi
& & 8B75 0C& && && &mov esi,dword ptr ss:[ebp+C]
& & 57& && && && &&&push edi
& & 8B7D 10& && && &mov edi,dword ptr ss:[ebp+10]
011404EA& & 85F6& && && && &test esi,esi
011404EC& & 75 09& && && &&&jnz short
011404EE& & 833D E40F1501 0&cmp dword ptr ds:[
& & EB 26& && && &&&jmp short 0114051D
& & 83FE 01& && && &cmp esi,1
011404FA& & 74 05& && && &&&je short
011404FC& & 83FE 02& && && &cmp esi,2
011404FF& & 75 22& && && &&&jnz short
& & A1 D4261501& &&&mov eax,dword ptr ds:[11526D4]
//检测[11526D4]是否为
& & 85C0& && && && &test eax,eax
& & 74 09& && && &&&je short
0114050A& & 57& && && && &&&push edi
0114050B& & 56& && && && &&&push esi
0114050C& & 53& && && && &&&push ebx
0114050D& & FFD0& && && && &call eax
//不为,则运行至此处则异常崩溃
―――――――――――――――――――――――――――――――――
三、搞定输入表
外挂克星对输入表的处理不敢恭维,至少作者没有考虑效率,使用代码入壳和大量的重复冗余希冀脱壳者止步。
BP LoadLibraryA& && &F9中断
0158FC14& & 0113EC06&&/CALL 到 LoadLibraryA 来自 0113EC00
0158FC18& & 0158FC5C&&FileName = &KERNEL32.dll&
取消断点,返回0113EC06处分析
0113EB68& & 8B4424 30& && & mov eax,dword ptr ss:[esp+30]
0113EB6C& & C00&mov dword ptr ss:[esp+20],0
0113EB74& & 85C0& && && && &test eax,eax
0113EB76& & 0F8E & &jle 0113ED81
//输入表处理完毕则跳转,在0113ED81处下断&&★
0113EB7C& & EB 0B& && && &&&jmp short 0113EB89
0113EB7E& & 8B9C24
mov ebx,dword ptr ss:[esp+244]
0113EB85& & 8B7C24 34& && & mov edi,dword ptr ss:[esp+34]
0113EB89& & 8B85 0C010000& &mov eax,dword ptr ss:[ebp+10C]
0113EB8F& & 8B4C24 20& && & mov ecx,dword ptr ss:[esp+20]
0113EB93& & 50& && && && &&&push eax
0113EB94& & 8D45 0C& && && &lea eax,dword ptr ss:[ebp+C]
0113EB97& & 50& && && && &&&push eax
0113EB98& & 57& && && && &&&push edi
0113EB99& & 56& && && && &&&push esi
0113EB9A& & 53& && && && &&&push ebx
0113EB9B& & 51& && && && &&&push ecx
0113EB9C& & 8BCD& && && && &mov ecx,ebp
0113EB9E& & E8 BD020000& &&&call 0113EE60
0113EBA3& & 85C0& && && && &test eax,eax
0113EBA5& & 0F8C EE010000& &jl 0113ED99
0113EBAB& & 56& && && && &&&push esi
0113EBAC& & 8BCD& && && && &mov ecx,ebp
0113EBAE& & E8 6D020000& &&&call 0113EE20
0113EBB3& & 56& && && && &&&push esi
0113EBB4& & 8BCD& && && && &mov ecx,ebp
0113EBB6& & C& && & mov dword ptr ss:[esp+2C],eax
0113EBBA& & E8 & &&&call 0113EE30
0113EBBF& & 8BD8& && && && &mov ebx,eax
0113EBC1& & 83C3 64& && && &add ebx,64
0113EBC4& & 53& && && && &&&push ebx
0113EBC5& & 895C24 40& && & mov dword ptr ss:[esp+40],ebx
0113EBC9& & E8 CB120000& &&&call 0113FE99
0113EBCE& & 8BF8& && && && &mov edi,eax
0113EBD0& & 83C4 04& && && &add esp,4
0113EBD3& & 85FF& && && && &test edi,edi
0113EBD5& & 897C24 38& && & mov dword ptr ss:[esp+38],edi
0113EBD9& & 0F84 DA010000& &je 0113EDB9
0113EBDF& & 8D5424 40& && & lea edx,dword ptr ss:[esp+40]
0113EBE3& & 68 & &&&push 100
0113EBE8& & 52& && && && &&&push edx
0113EBE9& & 56& && && && &&&push esi
0113EBEA& & 6A 00& && && &&&push 0
0113EBEC& & 8BCD& && && && &mov ecx,ebp
0113EBEE& & E8 5D040000& &&&call
0113EBF3& & 85C0& && && && &test eax,eax
0113EBF5& & 0F8C F4010000& &jl 0113EDEF
0113EBFB& & 8D4424 40& && & lea eax,dword ptr ss:[esp+40]
0113EBFF& & 50& && && && &&&push eax
0113EC00& & FF15 & &call dword ptr ds:[1146194]& && & ; kernel32.LoadLibraryA
0113EC06& & 85C0& && && && &test eax,eax
――――――――――――――――――――――――
在段“设置内存写入断点”。F9运行,中断后取消断点
0113F18C& & C606 E9& && && &mov byte ptr ds:[esi],0E9
//中断在这里,我们要在这里Patch,否则壳会把输入表搞的乱七八糟
//修改为:jmp 114607D&&★& & 跳到Patch代码处
0113F18F& & 2BC6& && && && &sub eax,esi
& & 83C0 FB& && && &add eax,-5
& & 8946 01& && && &mov dword ptr ds:[esi+1],eax
& & 8B5424 14& && & mov edx,dword ptr ss:[esp+14]
0113F19B& & 8B4424 20& && & mov eax,dword ptr ss:[esp+20]
0113F19F& & 3D 2D8B0000& &&&cmp eax,8B2D
& & 893A& && && && &mov dword ptr ds:[edx],edi
& & 0F8F 9C000000& &jg
0113F1AC& & 0F84 & &je
& & 3D 158B0000& &&&cmp eax,8B15
& & 7F 68& && && &&&jg short
& & 74 38& && && &&&je short
0113F1BB& & 3D A1000000& &&&cmp eax,0A1
& & 74 1B& && && &&&je short 0113F1DD
& & 3D 0D8B0000& &&&cmp eax,8B0D
& & 0F85 D9000000& &jnz
0113F1CD& & 8B4C24 10& && & mov ecx,dword ptr ss:[esp+10]
& & 8D46 06& && && &lea eax,dword ptr ds:[esi+6]
& & C601 8B& && && &mov byte ptr ds:[ecx],8B
& & C641 01 0D& && &mov byte ptr ds:[ecx+1],0D
0113F1DB& & EB 24& && && &&&jmp short
0113F1DD& & 8B4C24 10& && & mov ecx,dword ptr ss:[esp+10]
& & 8D46 05& && && &lea eax,dword ptr ds:[esi+5]
& & C601 A1& && && &mov byte ptr ds:[ecx],0A1
& & 8B5424 14& && & mov edx,dword ptr ss:[esp+14]
0113F1EB& & 8951 01& && && &mov dword ptr ds:[ecx+1],edx
0113F1EE& & 83C1 05& && && &add ecx,5
& & EB 18& && && &&&jmp short 0113F20B
& & 8B4C24 10& && & mov ecx,dword ptr ss:[esp+10]
& & 8D46 06& && && &lea eax,dword ptr ds:[esi+6]
0113F1FA& & C601 8B& && && &mov byte ptr ds:[ecx],8B
0113F1FD& & C641 01 15& && &mov byte ptr ds:[ecx+1],15
& & 8B5424 14& && & mov edx,dword ptr ss:[esp+14]
& & 8951 02& && && &mov dword ptr ds:[ecx+2],edx
& & 83C1 06& && && &add ecx,6
0113F20B& & 2BC1& && && && &sub eax,ecx
0113F20D& & C601 E9& && && &mov byte ptr ds:[ecx],0E9
& & 83E8 05& && && &sub eax,5
& & 5F& && && && &&&pop edi
& & 8941 01& && && &mov dword ptr ds:[ecx+1],eax
& & 5E& && && && &&&pop esi
& & 33C0& && && && &xor eax,eax
0113F21A& & 5B& && && && &&&pop ebx
0113F21B& & 83C4 10& && && &add esp,10
0113F21E& & C2 0C00& && && &retn 0C
& & 3D 1D8B0000& &&&cmp eax,8B1D
& & 75 7E& && && &&&jnz short
& & 8B4C24 10& && & mov ecx,dword ptr ss:[esp+10]
0113F22C& & 8D46 06& && && &lea eax,dword ptr ds:[esi+6]
0113F22F& & C601 8B& && && &mov byte ptr ds:[ecx],8B
& & C641 01 1D& && &mov byte ptr ds:[ecx+1],1D
& & EB C9& && && &&&jmp short
& & 8B4C24 10& && & mov ecx,dword ptr ss:[esp+10]
0113F23C& & 8D46 06& && && &lea eax,dword ptr ds:[esi+6]
0113F23F& & C601 8B& && && &mov byte ptr ds:[ecx],8B
& & C641 01 2D& && &mov byte ptr ds:[ecx+1],2D
& & EB B9& && && &&&jmp short
& & 3D 15FF0000& &&&cmp eax,0FF15
0113F24D& & 7F 3D& && && &&&jg short 0113F28C
0113F24F& & 74 2C& && && &&&je short 0113F27D
& & 2D 358B0000& &&&sub eax,8B35
& & 74 15& && && &&&je short 0113F26D
& & 83E8 08& && && &sub eax,8
0113F25B& & 75 49& && && &&&jnz short
0113F25D& & 8B4C24 10& && & mov ecx,dword ptr ss:[esp+10]
& & 8D46 06& && && &lea eax,dword ptr ds:[esi+6]
& & C601 8B& && && &mov byte ptr ds:[ecx],8B
& & C641 01 3D& && &mov byte ptr ds:[ecx+1],3D
0113F26B& & EB 94& && && &&&jmp short
0113F26D& & 8B4C24 10& && & mov ecx,dword ptr ss:[esp+10]
& & 8D46 06& && && &lea eax,dword ptr ds:[esi+6]
& & C601 8B& && && &mov byte ptr ds:[ecx],8B
& & C641 01 35& && &mov byte ptr ds:[ecx+1],35
0113F27B& & EB 84& && && &&&jmp short
0113F27D& & 8B4C24 10& && & mov ecx,dword ptr ss:[esp+10]
& & 8D46 06& && && &lea eax,dword ptr ds:[esi+6]
& & C601 FF& && && &mov byte ptr ds:[ecx],0FF
& & E9 71FFFFFF& &&&jmp 0113F1FD
0113F28C& & 3D 25FF0000& &&&cmp eax,0FF25
& & 75 13& && && &&&jnz short
& & 8B4C24 10& && & mov ecx,dword ptr ss:[esp+10]
& & 8D46 06& && && &lea eax,dword ptr ds:[esi+6]
0113F29A& & C601 FF& && && &mov byte ptr ds:[ecx],0FF
0113F29D& & C641 01 25& && &mov byte ptr ds:[ecx+1],25
& & E9 5BFFFFFF& &&&jmp
& & 5F& && && && &&&pop edi
& & C743 08 1527000&mov dword ptr ds:[ebx+8],2715
0113F2AE& & 5E& && && && &&&pop esi
0113F2AF& & 83C8 FF& && && &or eax,FFFFFFFF
& & 5B& && && && &&&pop ebx
& & 83C4 10& && && &add esp,10
& & C2 0C00& && && &retn 0C
看上面的输入表处理流程,应该明白为何说和某壳很像了吧?
外挂克星相当于在比泰软件防盗版战士上增加了诸多反调试。
――――――――――――――――――――――――
Patch 处理,避开输入表加密
现在我们要找两个地方:
1、Patch代码存放地址。选择Patch代码存放的地址时候要小心,小心异常,我选择0114607D处
2、跳转表存放地址。这里的地址要保证是程序中不被占用的空白处,我选择放在004E9000处。
0114607D& & 53& && && && &&&push ebx
0114607E& & 3E:8B5C24 7C& & mov ebx,dword ptr ds:[esp+7C]
//[esp+7C]处保存的是处理DLL的基址 ★
& & 3B1D 00B44E00& &cmp ebx,dword ptr ds:[4EB400]
//提前在[4EB400]处写入当前第一次处理DLL的基址 ★
& & 74 0D& && && &&&je short
//这样比较前后2次处理的函数是否是同一个DLL的
0114608B& & 891D 00B44E00& &mov dword ptr ds:[4EB400],ebx
& & E00 0&add dword ptr ds:[4EB404],4
//提前在[4EB404]处写入准备放跳转地址的地址004E9000&&★
& & 3B3D 08B44E00& &cmp edi,dword ptr ds:[4EB408]
//第一个函数过后在[4EB408]处写入第一个函数的地址,判断函数是否重复
0114609E& & 74 0D& && && &&&je short 011460AD
& & 893D 08B44E00& &mov dword ptr ds:[4EB408],edi
& & E00 0&add dword ptr ds:[4EB404],4
011460AD& & 3E:8B5C24 24& & mov ebx,dword ptr ds:[esp+24]
//[esp+24]是壳放置的命令类型代码! ★
& & 81FB A1000000& &cmp ebx,0A1
//有一个单字节的,所以需要单独提出来
& & 74 11& && && &&&je short 011460CB
011460BA& & 86FB& && && && &xchg bl,bh
//前后位调换
011460BC& & 891E& && && && &mov dword ptr ds:[esi],ebx
//命令类型写入
011460BE& & 8B1D 04B44E00& &mov ebx,dword ptr ds:[4EB404]
& & 893B& && && && &mov dword ptr ds:[ebx],edi
//正确函数写入 ★
& & 895E 02& && && &mov dword ptr ds:[esi+2],ebx
//跳转地址写入 ★
& & EB 0D& && && &&&jmp short
011460CB& & 891E& && && && &mov dword ptr ds:[esi],ebx
011460CD& & 8B1D 04B44E00& &mov ebx,dword ptr ds:[4EB404]
& & 893B& && && && &mov dword ptr ds:[ebx],edi
& & 895E 01& && && &mov dword ptr ds:[esi+1],ebx
& & 5B& && && && &&&pop ebx
& & E9 B990FFFF& &&&jmp
//跳回去继续流程
从Ollydbg中“二进制复制”如下:
53 3E 8B 5C 24 7C 3B 1D 00 B4 4E 00 74 0D 89 1D 00 B4 4E 00 83 05 04 B4 4E 00 04 3B 3D 08 B4 4E
00 74 0D 89 3D 08 B4 4E 00 83 05 04 B4 4E 00 04 3E 8B 5C 24 24 81 FB A1 00 00 00 74 11 86 FB 89
1E 8B 1D 04 B4 4E 00 89 3B 89 5E 02 EB 0D 89 1E 8B 1D 04 B4 4E 00 89 3B 89 5E 01 5B E9 B9 90 FF
这样处理后,所有的函数不再重复累赘,可以用ImportRec顺利获取了。
外挂克星主程序的Patch处理一样,也可以取得壳对应表后写代码修复。
―――――――――――――――――――――――――――――――――
四、飞向光明之颠
Shift+F9,中断在0113ED81处,输入表处理结束。
选择EP处的几个字节,右键-&设置内存访问断点。F9运行,中断下来
004EA410&&00 15 A4 AE
//此处设置内存访问断点
& & 8B4C24 04& && & mov ecx,dword ptr ss:[esp+4]& &; JiangHu.
& & 8039 4D& && && &cmp byte ptr ds:[ecx],4D
& & 74 08& && && &&&je short
& & B8 FEFFFFFF& &&&mov eax,-2
0113F59E& & C2 0800& && && &retn 8
& & A& && &cmp byte ptr ds:[ecx+1],5A
& & 74 08& && && &&&je short 0113F5AF
& & B8 FEFFFFFF& &&&mov eax,-2
0113F5AC& & C2 0800& && && &retn 8
0113F5AF& & 8B41 3C& && && &mov eax,dword ptr ds:[ecx+3C]
& & 03C1& && && && &add eax,ecx& && && && && && &&&; JiangHu.
& & 8038 50& && && &cmp byte ptr ds:[eax],50
& & 74 08& && && &&&je short
& & B8 FEFFFFFF& &&&mov eax,-2
0113F5BE& & C2 0800& && && &retn 8
& & & && &cmp byte ptr ds:[eax+1],45
& & 74 08& && && &&&je short 0113F5CF
& & B8 FEFFFFFF& &&&mov eax,-2
0113F5CC& & C2 0800& && && &retn 8
//上面几处是检测PE标记信息
0113F5CF& & 8B40 28& && && &mov eax,dword ptr ds:[eax+28]
& & 03C1& && && && &add eax,ecx& && && && && && &&&; JiangHu.
& & 8038 FF& && && &cmp byte ptr ds:[eax],0FF
//中断在这里,检测EP第1个字节
& & 74 1C& && && &&&je short
& & 6A 00& && && &&&push 0
0113F5DB& & 68 A0021501& &&&push 11502A0& && && && && && & ; ASCII &Error&
& & 68 A0021501& &&&push 11502A0& && && && && && & ; ASCII &Error&
& & 6A 00& && && &&&push 0
& & FF15 A0621401& &call dword ptr ds:[11462A0]& & ; USER32.MessageBoxA
0113F5ED& & B8 FDFFFFFF& &&&mov eax,-3
& & C2 0800& && && &retn 8
& & & && &cmp byte ptr ds:[eax+1],15
//检测EP第2个字节
& & 74 1C& && && &&&je short
0113F5FB& & 6A 00& && && &&&push 0
0113F5FD& & 68 A0021501& &&&push 11502A0& && && && && && & ; ASCII &Error&
& & 68 A0021501& &&&push 11502A0& && && && && && & ; ASCII &Error&
& & 6A 00& && && &&&push 0
& & FF15 A0621401& &call dword ptr ds:[11462A0]& & ; USER32.MessageBoxA
0113F60F& & B8 FDFFFFFF& &&&mov eax,-3
& & C2 0800& && && &retn 8
& & 8B5424 08& && & mov edx,dword ptr ss:[esp+8]
0113F61B& & 83C0 06& && && &add eax,6
0113F61E& & 2BC8& && && && &sub ecx,eax
& & C600 E9& && && &mov byte ptr ds:[eax],0E9
& & 8D4C11 FB& && & lea ecx,dword ptr ds:[ecx+edx-5]
& & 8948 01& && && &mov dword ptr ds:[eax+1],ecx
//修改EP处代码
0113F62A& & 33C0& && && && &xor eax,eax
0113F62C& & C2 0800& && && &retn 8
我们可以在004EA416处设置断点,或者使用Second段内存断点大法去OEP
004EA416& & E9 432CFFFF& &&&jmp 004DD05E
//飞向光明之颠
004DD05E& & 55& && && && &&&push ebp
004DD05F& & 8BEC& && && && &mov ebp,esp
004DD061& & 6A FF& && && &&&push -1
004DD063& & 68 08964E00& &&&push 4E9608
004DD068& & 68 48D54D00& &&&push 4DD548
004DD06D& & 64:A1 &&mov eax,dword ptr fs:[0]
004DD073& & 50& && && && &&&push eax
004DD074& & 64:&mov dword ptr fs:[0],esp
004DD07B& & 83EC 58& && && &sub esp,58
004DD07E& & 53& && && && &&&push ebx
004DD07F& & 56& && && && &&&push esi
004DD080& & 57& && && && &&&push edi
004DD081& & 8965 E8& && && &mov dword ptr ss:[ebp-18],esp
004DD084& & FF15 FC904E00& &call dword ptr ds:[4E90FC]& & ; kernel32.GetVersion
可以用OllyDump插件来dump。如果此时用LordPE,会提示“Couldn't dump module”。这是外挂克星注入Explorer.exe的代码在作怪,Ctrl+Alt+Delete解锁任务管理程器,结束Explorer进程,再“新建任务”解锁Explorer.exe,此时外挂克星注入的代码已经不存在,可以运行LordPE和ImportRec来正常修复啦。
(33 KB, 下载次数: 0)
13:35 上传
(32 KB, 下载次数: 0)
13:37 上传
(36 KB, 下载次数: 0)
13:37 上传
在线时间9 小时
T币帖子金砖
幸福不是永恒的 但永恒的却一定
路旁的落叶(3级), 积分 0, 距离下一级还需 200 积分
路旁的落叶(3级), 积分 0, 距离下一级还需 200 积分
支持& &试试去& &&&&&
幸福不是永恒的 但永恒的却一定是平淡的
在线时间131 小时
T币1156 元
T币帖子金砖
我每睡过一个女人,在山上放块砖
提示: 作者被禁止或删除 内容自动屏蔽
在线时间124 小时
T币2247 元
T币帖子金砖
不哭&&不笑
地上的月影(6级), 积分 36, 距离下一级还需 964 积分
地上的月影(6级), 积分 36, 距离下一级还需 964 积分
支持& &试试去 &&&&
screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/attachment/Mon_104_3d2ad8c.jpg');}" onmousewheel="return imgzoom(this);" alt="" />
在线时间206 小时
T币帖子金砖
地上的月影(6级), 积分 158, 距离下一级还需 842 积分
地上的月影(6级), 积分 158, 距离下一级还需 842 积分
在线时间36 小时
T币1921 元
T币帖子金砖
提示: 作者被禁止或删除 内容自动屏蔽
咱走咱滴路,咱过咱滴桥,让他们说去吧!
在线时间234 小时
T币5727 元
T币帖子金砖
苍瀚的风云(9级), 积分 135, 距离下一级还需 2365 积分
苍瀚的风云(9级), 积分 135, 距离下一级还需 2365 积分
在线时间43 小时
T币1489 元
T币帖子金砖
QQTZ灌水大军韩少.
奔跑的春风(7级), 积分 1, 距离下一级还需 1499 积分
奔跑的春风(7级), 积分 1, 距离下一级还需 1499 积分
LZ& &你最后一句话丢的好啊!& && &你也是抄的& &&&我额~!&&
在线时间516 小时
T币1191 元
T币帖子金砖
???????????????
提示: 作者被禁止或删除 内容自动屏蔽
在线时间78 小时
T币帖子金砖
想尒想到脑袋短路 、而尒还是无
水面的小草(4级), 积分 13, 距离下一级还需 287 积分
水面的小草(4级), 积分 13, 距离下一级还需 287 积分
好长&&看不完
不是你不够好,而是自己的要求太多。
幸福之后的悲伤,思念背后的凄凉。

参考资料

 

随机推荐