首页
社区
课程
招聘
[讨论]星际2的防调试手段。
发表于: 2010-3-4 05:28 27121

[讨论]星际2的防调试手段。

2010-3-4 05:28
27121
收藏
免费 7
支持
分享
最新回复 (52)
雪    币: 203
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
非学生,半组织,有兴趣,也有别的啥的
2010-3-4 23:21
0
雪    币: 203
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
是啊。老外,我记得那时候iphone破解app store和破解彩信补丁的时候,也是和老外竞赛啊。
老外真是吃多了没事做,买了个ida最新版,直接动态远程调试,我们只能眼巴巴的看着静态分析
2010-3-4 23:23
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
28
你总体思路是没错的,不过你总想着把保护完全干掉然后再流畅在线分析,这一点是不好的,你要学会分析的时候抛弃他们,把自己不爽或者影响自己的东西尽量干掉,那样就快了。另外你还要给机器加上AI么?能上个AI,哪怕仅支持一个种族和几个怪物也比较爽。
2010-3-4 23:46
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
29
已经习惯于用syser调戏暴雪产品的路过~
2010-3-5 04:02
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
AI不是早有了嘛

你想爽一下可以上网去下
2010-3-5 08:00
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
31
DETACHED_PROCESS这个标志干嘛的, 以前没见过。
2010-3-5 09:04
0
雪    币: 205
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
AI这里不谈,人家谈论的是这种神奇的保护方式,若哪位大侠知道,快来研究下,如果以后大家都用这种方式加密,那你们的OD是不是都没用啦?
2010-3-5 09:32
0
雪    币: 68
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
只有膜拜的份。。。。。
2010-3-5 09:54
0
雪    币: 205
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
DETACHED_PROCESS       
For console processes, the new process does not have access to the console of the parent process. The new process can call the AllocConsole function at a later time to create a new console. This flag cannot be used with the CREATE_NEW_CONSOLE flag.

是说有了这个标识以后,就可以在新进程中用AllocConsole API创建一个新的控制台,否则新进程的控制台继承的是父进程的控制台。
2010-3-5 10:20
0
雪    币: 205
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
刚才写了个程序
A CreateProcess 生成cmd.exe用如下方式
CreateProcess(NULL,"cmd.exe",NULL,NULL,FALSE,DETACHED_PROCESS|CREATE_SUSPENDED,NULL,NULL,&si,&pi))
为什么OD 不能附加到B进程上?
2010-3-5 10:45
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
36
suspended以后resume了没?
2010-3-5 21:13
0
雪    币: 203
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
35楼:
不能附加B是对的,因为他CREATE_SUSPENDED并且DETACHED_PROCESS了。
关键是。为啥不能附加A呢。。。。A已经是启动的了。B并且是CREATE_SUSPENDED的了所以不可能对A进行修改。
那么A是如何在运行中,吧自己给DETACHED_PROCESS呢?不让程序附加A????
以及,如果我在这个线程里,直接ExitThread(0); 是何种API?或者什么代码,可以检测这个线程是否存在?那么我下断nop掉也可以,求高人啊……
2010-3-6 01:38
0
雪    币: 203
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
感谢29楼。syser和softice一样是ring0的吧。。。
2010-3-6 01:41
0
雪    币: 9
活跃值: (142)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
39
00401DA2  |.  FF15 3C3>call    dword ptr [<&KERNEL32.CreateProc>; \关键CALL
2010-3-6 01:47
0
雪    币: 9
活跃值: (142)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
40
00401D7E  |.  52       push    edx                              ; /pProcessInfo
00401D7F  |.  8D45 A8  lea     eax, dword ptr [ebp-58]          ; |
00401D82  |.  50       push    eax                              ; |pStartupInfo
00401D83  |.  8D8D 98F>lea     ecx, dword ptr [ebp-468]         ; |
00401D89  |.  51       push    ecx                              ; |CurrentDir
00401D8A  |.  6A 00    push    0                                ; |pEnvironment = NULL
00401D8C  |.  6A 00    push    0                                ; |CreationFlags = 0
00401D8E  |.  6A 00    push    0                                ; |InheritHandles = FALSE
00401D90  |.  6A 00    push    0                                ; |pThreadSecurity = NULL
00401D92  |.  6A 00    push    0                                ; |pProcessSecurity = NULL
00401D94  |.  8D95 98D>lea     edx, dword ptr [ebp-2468]        ; |
00401D9A  |.  52       push    edx                              ; |CommandLine
00401D9B  |.  8D85 A0F>lea     eax, dword ptr [ebp-260]         ; |
00401DA1  |.  50       push    eax                              ; |ModuleFileName
00401DA2  |.  FF15 3C3>call    dword ptr [<&KERNEL32.CreateProc>; \关键CALL
2010-3-6 01:49
0
雪    币: 203
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
回36楼,星际2里的B程序,就是一个很普通不能再普通的控制台程序了,什么都没干,启动完了就关闭了。所以A启动了他并且DETACHED_PROCESS他纯属没事干。是虚晃一枪
如果resume了,或者直接不启动他Hook CreateProcessW 那么A就会检测B是否还在,不在就吧自己给关闭了。
所以直接ExitThread(0);倒可以通过保护,让OD附加。郁闷就郁闷在,一联网,又自动关闭了。所以这断点不好下啊。
2010-3-6 01:52
0
雪    币: 292
活跃值: (110)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
42
不知道LifeODBG v1.4这个双进程调试工具有没有帮助。
上传的附件:
2010-3-6 01:56
0
雪    币: 203
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
回40楼的:
没用,吧这个call给nop了,的确可以附加了。但是附加完了以后,一旦联网,程序又自动关了,他有判断被创建的线程是否存在
2010-3-6 02:04
0
雪    币: 203
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
回42楼:会出现无法定位Lifeodbg.dll
2010-3-6 02:07
0
雪    币: 18
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
去看看魔兽世界相关文章 很可能有有用资料
2010-3-6 02:24
0
雪    币: 18
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
我直接修改SC2主程序的内存 有时候SC2会自动终止
但BUG来了 SC2副程序未能自动终止

用此方法修改SC2副程序 看看有没有意想不到的效果? 非常可能
2010-3-6 04:36
0
雪    币: 203
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
不会,他并未对副程序进行保护,那个程序是个notepad都没问题,可以跑起来
2010-3-6 13:50
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
英文站里有个破解星际2的wiki,貌似有些技术信息(Technical Information)各位英文好的可以看看,不知道是否有帮助? http://darkblizz.org/wiki/doku.php
2010-3-6 23:48
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
昨天花了1个小时写了一个星际2的修改器。。。回头一搜,游侠网上都没有,哈哈
2010-3-8 11:26
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
感觉是暴雪惯用的手段,13年前无聊玩暗黑1的时候想用gametools改钱,发现怎么改了都没用,后来ice调试了下才发现,原来也是一处监督另外一处,改了能找到的地方是没用的,另外一处的监视的判断也要改掉,虽然当时的手段比较低级,但是大概思路是一样的。
2010-3-13 03:52
0
游客
登录 | 注册 方可回帖
返回
//