24小时热门版块排行榜    

查看: 389  |  回复: 0
当前主题已经存档。

sdlj8051

金虫 (著名写手)

[交流] [转贴]藏好自己的 OllyDbg

OllyDbg 的检测方法多如繁星,即使悉数了解并掌握破解技巧也需要耗费一定的时间。
因此可以制作一个 DLL(比如写一个插件) 借助 API Hook 来完成自动隐藏工作。

这篇教程中我不打算介绍如何进行 Hook API,Google 会比我讲的详细

我们的 DLL 面临着这些问题:

1) 躲避字符串解析漏洞

某天你拿到一个程序载入运行,OllyDbg 连续三次非法后伤逝……
基本可以估计这个程序钻了这个漏洞。OllyDbg 使用了格式化字符输出调试信息,
如果调试信息里带有格式控制字符譬如“%s%s%s”,在字符输出之前就会死于非命。

利用代码:
                        @pushsz "%s%s%s%s%s"
                        call    OutputDebugStringA

要避免也很简单,只要钩住这个函数过滤掉对它的调用即可。想做的锦上添花可重定向输出到一个watch窗口中。

2) GetProcessHeap 后门

自从某人从 ASProtect 早期版本得到启发,发现 M$ 的此内存初值后门,这个漏洞也(将会)有不少人用。

利用代码:
                        call    GetProcessHeap
                        mov     eax, [eax+0Ch]
                        test    eax, 40h
                        je      no_debugger

我很抱歉,关于原因的事情你得问微软去了,谁叫你用 Windows 呢 ;-)
解决它要彻底些,不能用 Hook ,因为不一定非通过这个函数读取 Heap,PEB 也可以。

看看 GetProcessHeap:
7C80AA49 >  64:A1 18000000  mov     eax, fs:[18]
7C80AA4F    8B40 30         mov     eax, [eax+30]
7C80AA52    8B40 18         mov     eax, [eax+18]
7C80AA55    C3              retn

剩下的不用多费唇舌了吧。

3) 卑鄙的 native API

看雪精华里 blowfish 详细介绍过 ZwSetInformationThread 等 API,最好统统 Hook。

4) MeltICE

如果你用监视器,就像 RegMon 等,需要照顾一下这里。

如果发现 CreateFileA/W 中的文件名开头是 “\\.\ ”决不能手软,截留返回0。
这些通常是要进行 MeltICE 探测的。不过有些注册程序要读取硬盘序列号也会打开类似上面的文件名,
所以还是建议你准备一份常用 MeltICE 名表,对比拦截,比较稳妥。

5) IsDebuggerPresent

这个函数你一定用过。

7C812E03 >  64:A1 18000000  mov     eax, fs:[18]
7C812E09    8B40 30         mov     eax, [eax+30]
7C812E0C    0FB640 02       movzx   eax, byte ptr [eax+2]
7C812E10    C3              retn

修改掉标志就行了。

6) 进程检测

查阅一下 Process32Next 的帮助,如果发现它正探测你的调试器,把这个结构指向 Explorer 的或者直接跳到下一个。

现在可以不用把调试器改成丑陋的 eXpLoReR.eXe

7) 模块检测

看来 DBGHELP.DLL 不太受欢迎,有些程序调用 Module32Next检测到别人加载此模块就会大发雷霆……

8) UnhandledExceptionHandler

明明没有 SEH 处理程序缺能在没有调试器的时候运行,怎么也过不去怎么办?
看看 simonzh2000 《SetUnhandledExceptionFilter 的讨论》。
如果你上面处理了 native API 事实上这里不会再有问题。

9) BlockInput

最近在某个壳里看到这个函数:

                        push    TRUE/FALSE
                        call    BlockInput

就可以控制你的鼠标键盘是否能动了,按 Ctrl+Alt+Del 可以解,
不过谁也不想一按 F9 什么都不动了(做个绘图覆盖在调试器上面制造假死)
脑袋缺筋的可能会重启……

类似的还有 EnableWindow,不能让它肆意操作你的调试窗口。


10) 待你补充

我一时想不出更多阴招了。

[ Last edited by sdlj8051 on 2006-10-6 at 11:34 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sdlj8051 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0856化工专硕求调剂 +11 董boxing 2026-03-01 11/550 2026-03-01 19:04 by 18137688336
[考研] 298求调剂 +6 axyz3 2026-02-28 6/300 2026-03-01 19:00 by 18137688336
[考研] 272求调剂 +6 材紫有化 2026-02-28 6/300 2026-03-01 18:58 by 18137688336
[考研] 0856材料求调剂 +11 hyf hyf hyf 2026-02-28 12/600 2026-03-01 18:57 by 18137688336
[考研] 295求调剂 +7 19171856320 2026-02-28 7/350 2026-03-01 18:54 by 18137688336
[考研] 高分子化学与物理调剂 +6 好好好1233 2026-02-28 11/550 2026-03-01 17:47 by 好好好1233
[考研] 328求调剂 +3 aaadim 2026-03-01 5/250 2026-03-01 17:29 by njzyff
[考研] 化工专硕348,一志愿985求调剂 +5 弗格个 2026-02-28 8/400 2026-03-01 17:25 by sunny81
[考研] 0856材料求调剂 +4 麻辣鱿鱼 2026-02-28 4/200 2026-03-01 16:51 by caszguilin
[考研] 0856调剂 +4 刘梦微 2026-02-28 4/200 2026-03-01 15:35 by 吸一口猫气
[考研] 307求调剂 +5 wyyyqx 2026-03-01 5/250 2026-03-01 15:21 by Fff-1
[考研] 298求调剂 +9 人间唯你是清欢 2026-02-28 12/600 2026-03-01 14:23 by Ducount.Y
[考研] 306分材料调剂 +3 chuanzhu川烛 2026-03-01 4/200 2026-03-01 12:32 by houyaoxu
[考研] 材料调剂 +4 爱擦汗的可乐冰 2026-02-28 4/200 2026-03-01 00:38 by 猫猫球alter
[考研] 307求调剂 +4 73372112 2026-02-28 6/300 2026-03-01 00:04 by ll247
[考研] 304求调剂 +3 52hz~~ 2026-02-28 5/250 2026-03-01 00:00 by 52hz~~
[考研] 292求调剂 +3 yhk_819 2026-02-28 3/150 2026-02-28 21:57 by gaoxiaoniuma
[考研] 264求调剂 +3 巴拉巴拉根556 2026-02-28 3/150 2026-02-28 21:31 by gaoxiaoniuma
[考研] 085600材料工程一志愿中科大总分312求调剂 +8 吃宵夜1 2026-02-28 10/500 2026-02-28 20:27 by L135790
[考研] 276求调剂 +3 路lyh123 2026-02-28 4/200 2026-02-28 19:45 by 路lyh123
信息提示
请填处理意见