找回密码
 立即注册
搜索
查看: 2013|回复: 13

求DNA加密相关背景。。。

[复制链接]
头像被屏蔽
发表于 2008-9-7 13:04 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
 楼主| 发表于 2008-9-7 13:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2008-9-7 15:21 | 显示全部楼层
猜测是设计模式里的适配器模式,oo技术里封装的一种

winapi
MessageBox(...);

dna api
DNAMessageBox()
{
....各种检测光盘的手段
MessageBox(...);
}

大概可能也许是这个样子吧
回复

使用道具 举报

发表于 2008-9-7 15:25 | 显示全部楼层
原帖由 精钢魔像 于 2008-9-7 15:21 发表
猜测是设计模式里的适配器模式,oo技术里封装的一种

winapi
MessageBox(...);

dna api
DNAMessageBox()
{
....各种检测光盘的手段
MessageBox(...);
}

大概可能也许是这个样子吧 ...


DNA跟游戏引擎代码相关

游戏过程中不断发出检验请求

能进游戏你不一定能通关
回复

使用道具 举报

发表于 2008-9-7 15:37 | 显示全部楼层
这次孢子没用dna加密吧
回复

使用道具 举报

     
发表于 2008-9-7 15:52 | 显示全部楼层
原帖由 正版万岁 于 2008-9-7 15:25 发表


DNA跟游戏引擎代码相关

游戏过程中不断发出检验请求

能进游戏你不一定能通关


没错,那代码就是这个意思

理论上,多态和运行时类型判断可以让开发人员都不知道自己调用的哪个api是加了光盘保护的,甚至是哪种保护

强大的oo,只有想不到,没有做不到
回复

使用道具 举报

     
发表于 2008-9-7 21:24 | 显示全部楼层
跟STARFUCK相比哪个淫荡?
回复

使用道具 举报

发表于 2008-9-8 16:32 | 显示全部楼层
这个
回复

使用道具 举报

发表于 2008-9-8 16:36 | 显示全部楼层
这东西必须选用及其健壮的加密算法才行
不然除错的时候“多态和运行时类型判断可以让开发人员都不知道自己调用的哪个api是导致错误的,甚至是哪种保护导致错误的”
回复

使用道具 举报

     
发表于 2008-9-8 16:38 | 显示全部楼层
那DQ5ds的防拷系统是不是和这个类似?
回复

使用道具 举报

发表于 2008-9-8 16:49 | 显示全部楼层
不一样,dq5只是通过检测特定地址的arm代码来对比溢出检测
回复

使用道具 举报

发表于 2008-9-8 16:50 | 显示全部楼层
Z卡上~ROM是直接通过DS内置BIOS内的初始化代码载入到内存中的~而在烧录卡上~ROM的载入则始终是靠烧录卡的模拟完成~尽管现在技术已经模拟的很牛×了~但是注定还是出现了一个人们平时压根不会注意到的纰漏~那就是Secure Area~

The Secure Area is located in ROM at 4000h..7FFFh, it can contain normal program code and data, however, it can be used only for ARM9 boot code, it cannot be used for ARM7 boot code, icon/title, filesystem, or other data.

以上这段是在GBATEK中对Secure Area的解释~大致意思是说~这是一段被定义在ROM偏移量4000h..7FFFh处的区域~用作存放ARM9的启动代码~
这里要特别注意这段话的最后一句~这段区域绝对不能为ARM7启动代码~图标标题~文件~或者其他任何数据~……意思是说~放在ROM这个地方的数据是仅仅能被DS的BIOS在开机载入时访问的~其他任何时候都无法访问该区域~
这点在通常情况都会被人们给忽视掉~因为从来没有游戏或者程序将数据写入该区域并在主程序中试图访问该区域~……因此~也从来没有烧录卡为该区域写验证模拟~
那么如果说真的有游戏无聊到在程序中试图访问该段地址会得到什么样的结果呢?~用NO$GBA测试后~结果是无论读取的是8000h前的任何地址的数据~最终返回的必然是以8000h为开头的200字节(ROM访问以200字节为单位)~……

相信说到这里~看懂了的人已经能猜到这次娴熟的SE所玩弄的手腕了吧~

DQ5的烧录检测程序~依次访问0000h,0200h,0400h,8000h,8200h,8400h这6个地址~然后对输出的200字节取特征码~……根据前面的理论~如果使用的是Z版卡的话~这里将出现的结果是0000h,0200h,0400h,8000h得到的结果全部一致~而8200h,8400h则顺利读取到其他数值~
但是由于前面也说到~没有任何烧录有设计过该段区域的溢出检测~事实上就连IDEAS都没有该检测~所以在烧录卡上运行的结果便会是这6个值全部不同~(因为烧录卡允许游戏读取ROM的Secure Area~)……

因此~只要这里依次查看这6个输出值~就能很清楚的检测出玩家是在使用烧录还是用Z卡了~……
回复

使用道具 举报

发表于 2008-9-8 16:50 | 显示全部楼层
-_- 地球5比这个差太多了
回复

使用道具 举报

头像被屏蔽
     
发表于 2008-9-8 17:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-9-21 14:12 , Processed in 0.139041 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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