吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 13644|回复: 23

[其他图文] DXF 模块扫描和动态CRC方法

  [复制链接]
SaKuLa 发表于 2016-9-25 21:03 | 显示全部楼层 |阅读模式

本帖最后由 SaKuLa 于 2016-9-27 06:02 编辑



准备工具 CE OD 驱动
00.png


DNF模块和主应用加上VM段人物一些数据 其实没有这么大
DNF启动游戏完成之后会申请一段很大的内存镜像来存放关键模块的机器码之后不断的对比实时模块地址和申请的镜像地址机器码是否相等。
我们需要找出他的模块扫描

进入游戏开启CE访问任意模块+1000   列如tersafe.dll+1000


1.png
  两个地址 TenSLX.dll+6DB55 - 66 3B 31              - cmp si,[ecx] (0B3DDB55地址) 这个只是判断PE而已貌似没什么用
DNFBase.dll+1300AD7 - 8B 7D 08              - mov edi,[ebp+08]  (10c60ad7地址)  这是我们需要的地址  CE的不好看 我们用OD看看


QQ截图20160925203559.png


核心汇编
10C60AD1    8B4D FC         mov ecx,dword ptr ss:[ebp-0x4]     //[ebp-4]要对比内存大小
10C60AD4    8B75 F4         mov esi,dword ptr ss:[ebp-0xC]     //镜像地址
10C60AD7    8B7D 08         mov edi,dword ptr ss:[ebp+0x8]  //实时模块地址
10C60ADA    F3:A6           repe cmps byte ptr es:[edi],byte ptr ds:[esi]  开始以byte 方式对比两个地址的机器码
.....下面的没看
从上面看 我们只需要把
10C60AD7    8B7D 08         mov edi,dword ptr ss:[ebp+0x8]这句的汇编改成 mov edi,[ebp-c]

让他镜像对比镜像那么它就无法检测出你修改了模块那个地方  

下面开始说动态CRC
用od对00401000 下访问断点
直接断下了
111.png
这个就是动态扫静态地址 它会不断的变化地址估计难倒了好多人不能nop 不能ret 不是每次启动游戏只会变化一次那么我们要怎么搞死他呢?
我们先找到CRC的源头  往堆栈看

源头.png    往下移动
tersafe.dl.png 就是这个地址了



.....png
关键地址 是在tersafe.dll内的一个地址 无需计较
0ABFDF4A    FFD1            call ecx   
0ABFDF4C    C745 FC FEFFFFF>mov dword ptr ss:[ebp-0x4],-0x2  【返回到这个地方】


我们已知返回点 那么CALL ecx 就是关键点了   ECX就是CRC头子  这个就是CRC启动的源头了由于能力有限并不能PJ出CRC是
怎样生成的 那么我只能列出一个死办法 让CRC变成固定的
头子.png    ecx=09C80295  那么我们来看内存段
大小.png

Memory map, 条目 131地址=09C80000 大小=00080000 (524288.)   当然每次断下call ecx ecx地址也会改变
我们把地址09C80000大小0x80000  内的汇编全部拷贝到一个我们自己申请的镜像中

让源头CALL ecx   转向我们自己的镜像
那么CRC就变成了一个死的地址 不会改变内存 。
之后我们再一步一步的分析CRC是这么检测DNF的了 。好了教程就到这里
说到底个人能力有限不能把如何干掉CRC的源码写出来 ,我说了这么多还是希望大家能写出来源码
crc内 无非就是 两句movzx  和一句mov 在访问DNF内存
你让CRC变成固定地址 之后自己访问内存就能找出来了、

如过第一种拷贝方法行不通那么我就再举个列子:
已知特征 8B 16 33 D6 83 C6 04 33 FA 48 0F 85
你不可能利用像ce那种东西搜索特征方式来获取地址 ,你扫到他的时候他就已经变了你要的是实时地址并且操作。
插入代码 :
模块那句call ecx  hook到一个名last的地址 反正随便你们我只是举列子
last:
pushad
pushfd
xor cx,cx                                               //ecx=09C80295 在地址=09C80000 大小=00080000 内
sub esp,0xC                                          //初始化大小c的空间
mov byte ptr ss:[esp],0x0000008B
mov byte ptr ss:[esp+0x1],0x00000016
mov byte ptr ss:[esp+0x2],0x00000033
mov byte ptr ss:[esp+0x3],0x000000D6
mov byte ptr ss:[esp+0x4],0x00000083
mov byte ptr ss:[esp+0x5],0x000000C6
mov byte ptr ss:[esp+0x6],0x00000004
mov byte ptr ss:[esp+0x7],0x00000033
mov byte ptr ss:[esp+0x8],0x000000FA
mov byte ptr ss:[esp+0x9],0x00000048
mov byte ptr ss:[esp+0xA],0x0000000F
mov byte ptr ss:[esp+0xB],0x00000085   置入特征完成
mov ebx,dword ptr ss:[esp]      //自己体会以下的意思                 

mov eax,dword ptr ds:[ecx]      
label2:
cmp ebx,eax   
je label3
label1:
add ecx,0x1
mov eax,dword ptr ds:[ecx]
jmp label2
label3:
mov eax,dword ptr ds:[ecx+0x4]
cmp dword ptr ss:[esp+0x4],eax
jnz label1
mov eax,dword ptr ds:[ecx+0x8]
cmp dword ptr ss:[esp+0x8],eax
jnz label1
add esp,0xC
nop
nop
nop
nop
nop
popfd
popad
call ecx
mov dword ptr ss:[ebp-0x1],-0x2
jmp 0ABFDF53



111111111111.png




当代码执行到add esp,c 时候ecx就是crc的mov edx,[esi] 那句的地址 那么你取得地址

就可以从5个nop中插入自己的一个hook 对ecx地址进行操作了 最终返回到popfd 那句就行了当然楼主我读书少不会高级语言实现不了。 还有两句movzx类型的这个我就不举列子了。





   






                                    

评分

参与人数 24威望 +1 HB +60 THX +18 收起 理由
lies + 1
sjtkxy + 1 + 1
花盗睡鼠 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
24567 + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
一路走来不容易 + 1
消逝的过去 + 1
xgbnapsua + 1
叶落花开 + 2
jaunic + 1
mengzhisuoliu + 1
yhw5231 + 1 + 1 厉害,楼主加油
fangssss + 1 + 1 [快捷评语] - 2018,狗年发发发,狗年旺旺旺!
setosan + 5 + 1 [快捷评语] - 2017,让我们17学破解!
Crook + 5 + 1 写的真好
hyeh612 + 1 + 1 分享精神,是最值得尊敬的!
858185616 + 1 吃水不忘打井人,给个评分懂感恩!
如痴如梦如癫 + 2 + 1 吃水不忘打井人,给个评分懂感恩!
jojaajj + 4 + 1 分享精神,是最值得尊敬的!
飞行太保 + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
lingjin3 + 1 分享精神,是最值得尊敬的!
放开那头母牛 + 3 分享精神,是最值得尊敬的!
Shark恒 + 1 + 30 + 1 评分=感恩!简单却充满爱!感谢您的作品!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| SaKuLa 发表于 2016-9-25 21:18 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
冇嚸ヤ坏忾ぺ 发表于 2016-9-25 21:48 | 显示全部楼层

谢谢分享...........
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
【By】岁月无痕 发表于 2016-9-25 22:04 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
放开那头母牛 发表于 2016-9-25 22:58 | 显示全部楼层

技术帖。。。。顶一个
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
依然の默默 发表于 2016-9-26 00:21 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
山海 发表于 2016-9-26 01:25 来自手机端 | 显示全部楼层

楼主和我前面的都是大牛(#Д)
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Phantom_K12 发表于 2016-9-26 02:26 | 显示全部楼层

大吊 厉害了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lingjin3 发表于 2016-9-26 10:13 | 显示全部楼层

厉害啊,学习一下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
boom 发表于 2016-9-29 09:39 来自手机端 | 显示全部楼层

学习了 谢谢楼主分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表