首页
社区
课程
招聘
[讨论]关于Hackgbeta.exe
发表于: 2008-1-29 16:10 6369

[讨论]关于Hackgbeta.exe

2008-1-29 16:10
6369
问一下,那个Hackgbeta.exe第一关你们都是怎么过的呀?
我是先修改了Hackgbeta.exe的文件创建函数并且跳过了文件写入函数,然后又修改了krnln.fnr,跳过MessageBox

怎么都觉得这样做不够彻底
还有什么好办法么?

虽然这样去掉了信息框,可是一旦你弄一个没改过的Hackgbeta.exe运行一次,你就又得重新修改krnln.fnr

我觉得是不是这样
它原程序每次运行的时候都会创建krnln.fnr,并且是覆盖,我现在改掉了它的属性,变成了打开,但是它后面还有一个写入函数

这个写入函数怎么对付?
我现在就是直接把它跳过去了

这样不够彻底啊
只要运行一次没改过的程序,它就会重新生成一个krnln.fnr覆盖掉改过的

除非是这样,要是能找到krnln.fnr模块需要改的地方的机器码在exe里面的位置,然后只改exe,这样每次它运行的时候都会用修改过的krnln.fnr替换原有的krnln.fnr

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
2
2008-1-29 17:02
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
3
messageboxa 设断,往上追踪源头:

004A7977    E8 D1200000      call    004A9A4D          ; NAG CALL
004A797C    83C4 28          add     esp, 28
004A797F    68 04000080      push    80000004
004A7984    6A 00            push    0
004A7986    68 E9C14000      push    0040C1E9          ; ASCII "P.S..."

ASCII "P.S..."   记得NAG后面的窗口了吗?不知道你过没过?游戏嘛!自己玩得开心就行了。

找到了关键就好办了,将CALL NOP掉:
004A7977    90               nop                       ; NAG CALL
004A7978    90               nop
004A7979    90               nop
004A797A    90               nop
004A797B    90               nop
004A797C    83C4 28          add     esp, 28
004A797F    68 04000080      push    80000004
004A7984    6A 00            push    0
004A7986    68 E9C14000      push    0040C1E9          ; ASCII "P.S..."
OD中右键复制到可执行文件。
2008-1-29 17:33
0
雪    币: 209
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
算法还没弄懂,爆破现在可以了^o^
2008-1-29 23:33
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我说NBA2005兄,你的那个MessageBox怎么是在主程序里?
我的是在krnln.fnr模块里啊
2008-1-30 21:12
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
6
那个库文件相当于dll
主程序有对他的调用,找到主程序中地方nop掉他,改库文件会很麻烦
2008-1-30 21:21
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我跟踪了好久,我发现它是先创建一些空的模块,然后从解压出来的内存区域读取数据分别写入到那些空的模块里,然后再加载这些模块,这样的话你用OD改只能定位到加载的模块里面,而找不到在EXE里面的位置,而每次程序运行都会用新的模块替换旧的,这样你改模块也没有意义
我就是先破坏掉了EXE替换的部分,使它不能用新的模块替换,然后又改的模块

我QQ:47565564
2008-1-30 21:24
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
8
你的思路像这个:
http://bbs1.pediy.com/showthread.php?t=57919

举个例子,我们要nop一个程序中对 MessageboxA的调用,并不需要去改 user32.dll
只要改程序中 Call MessageBoxA 为 nop 就可以了
2008-1-30 21:35
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
知道了,谢谢!
2008-1-30 22:18
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢petnt指点,过了三关了,不过都是跳过去的
哎,明天要回家了,不然可以研究一下算法
2008-1-31 00:26
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
11
不客气。注意休息,回家研究也不晚。。。哈哈
2008-1-31 00:38
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
12
我的也是在krnln.fnr模块里啊

77E133B3 >  55              push    ebp
77E133B4    8BEC            mov     ebp, esp
77E133B6    51              push    ecx
77E133B7    833D 583BE477 0>cmp     dword ptr [77E43B58], 0
77E133BE    74 29           je      short 77E133E9
77E133C0    64:A1 18000000  mov     eax, dword ptr fs:[18]
77E133C6    8B40 24         mov     eax, dword ptr [eax+24]
77E133C9    8945 FC         mov     dword ptr [ebp-4], eax
77E133CC    B8 00000000     mov     eax, 0
77E133D1    B9 2835E477     mov     ecx, 77E43528

EAX 00002010
ECX 0040C1CB 001Hackg.0040C1CB
EDX 0040C1C4 001Hackg.0040C1C4
EBX 100E357C krnln.100E357C
ESP 0012F8B4
EBP 0012F97C
ESI 00001000
EDI 80000004

CTRL+F9:,出现P.S提示后,断下:
10062176    5F              pop     edi                              ; 018B0240
10062177    83F8 03         cmp     eax, 3
1006217A    5E              pop     esi
1006217B    75 0F           jnz     short 1006218C
1006217D    8B4C24 68       mov     ecx, dword ptr [esp+68]
10062181    B8 02000000     mov     eax, 2
10062186    8901            mov     dword ptr [ecx], eax
10062188    83C4 64         add     esp, 64
1006218B    C3              retn

CTRL+F9反复,直到:
004A797C    83C4 28         add     esp, 28
004A797F    68 04000080     push    80000004
004A7984    6A 00           push    0
004A7986    68 E9C14000     push    0040C1E9                         ; ASCII "P.S..."
004A798B    68 01030080     push    80000301
004A7990    6A 00           push    0
004A7992    68 00000000     push    0

返回程序领空是基本的技能,即如何返回程序主干。
NAG  CALL 呢?你应该知道答案了。

ENJOY CRACK ME !
2008-1-31 10:29
0
游客
登录 | 注册 方可回帖
返回
//