飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 15462|回复: 30

[转贴] 打造杀不死的 OllyDbg

[复制链接]

该用户从未签到

发表于 2006-11-26 14:52:09 | 显示全部楼层 |阅读模式
打造杀不死的 OllyDbg
OllyDbg是地球人都知道的32位汇编级调试器,破解的必备工具。相信各位对它都不会陌生,软件的功能就不再介绍了。由于它名声太响,所以很多软件都反Ollydbg调试,到现在更是很多猛壳也纷纷开始反Ollydbg的调试了,比如Acprotect、EPE(在看雪上老王说过一句话:至今为止这个壳还没有被脱掉的记录)等。面对这样的软件和壳,我们的Ollydbg一运行就被Kill掉了,怎么办?难道就这样被吓到?看看文章的标题——打造杀不死的 OllyDbg,你知道我要做什么了吧?!
虽然FLY大侠已经做了一个反Acprotect的Olldbg,但我用它总是很难调试Acprotect程序,一载入就异常,然后退出。有一天看到Jeffzhang的怀旧Ollydbg发布,调试Acprotect不错,但是还是被Kill了……怒!于是反Killod诞生:基于1.10汉化版制作,Ollydbg汉化版绝对不能加壳,不然程序无法运行,Antikillod实际上是用Call Ollydbg载入插件工作。
这里我们拿Antikillod壳开刀,需要准备工具Ollydbg1.1汉化版、UltraEdit10.20中文版、CmdBar.dl插件。
第一步:修改Ollydbg
1.改掉Ollydbg窗口的Caption和Classname
思路是在软件启动时改变创建窗口函数的参数。首先下断在“CreateWindowExA”,F9之后停下,根据CreateWindowExA回到函数调用的入口地址,继续向上走,在00435E37下断。再重新加载程序,F9运行,程序中断在00435E37。看下面的代码,很快就找到OD窗口的Caption(00435E5F)和Classname(00435E60),在其右边就可以看见“OLLYDBG”字符。部分代码如下:
00435E37. 6A 00 push 0 : /lParam = NULL
00435E39. 51 push ecx : |hInst => 00400000
00435E3A. 6A 00 push 0 : |hMenu = NULL
00435E3C. 6A 00 push 0 : |hParent = NULL
00435E3E. 8B45 E8 mov eax,dword ptr ss:[ebp-18] : |
00435E41. 50 push eax : |Height
00435E42. 8B55 EC mov edx,dword ptr ss:[ebp-14] : |
00435E45. 52 push edx : |Width
00435E46. 8D96 08180000 lea edx,dword ptr ds:[esi+1808] : |
00435E4C. 8B4D F0 mov ecx,dword ptr ss:[ebp-10] : |
00435E4F. 51 push ecx : |Y
00435E50. 8D8E 32180000 lea ecx,dword ptr ds:[esi+1832] : |
00435E56. 8B45 F4 mov eax,dword ptr ss:[ebp-C] : |
00435E59. 50 push eax : |X
00435E5A. 68 0000CF02 push 2CF0000 : |Style = WS_OVERLAPPED|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_CLIPCHILDREN|WS_SYSMENU|WS_THICKFRAME|WS_CAPTION
00435E5F. 52 push edx : |WindowName
00435E60. 51 push ecx : |Class=
00435E61. 6A 10 push 10 : |ExtStyle = WS_EX_ACCEPTFILES
00435E63. E8 34950700 call <jmp.&USER32.CreateWindowExA> : \CreateWindowExA
我们转到内存中可以看见下面的数据。这里出现了两次“OLLYDBG”,它们分别就是OLLYDBG窗口的Caption和Classname值,用UE去相应的地方改一改就行了。
先用UltraEdit修改OD原程序中所有Ollydbg字符串,替换字符我填的是ByCrack,注意字节数必须相等,不然程序被你自己Kill。填入字符随意,反正不能是Ollydbg就行。
删除OLLYDBG.ini,下次运行我们修改过好的ByCrack.exe就会自动的在当前目录创建ByCrack.ini文件了。改变修改后文件名为ByCrack,留下OLLYDBG原程序,运行ByCrack载入Acprotect程序,仍然被杀,Acprotect除了几个系统进程不感兴趣,发现其它载入调试它的东西一律杀,改为Cmd.exe这个名字就不会被杀(建议把改变修改后文件名为ByCrack.exe 拷贝一份,重命名为Cmd.exe这样的系统程序名称。注意,这里是重命名)。此时的Cad.exe基本可以通杀了。
不过改了名就不能载入插件了,如果OLLYDBG没有插件,对于我们来说那是多么可怕的事……大家不要灰心,继续往下看。


第二步:加入插件
先设置好件目录。
现在把CmdBar.dll插件放在所指向的Plugin目录,当我们运行自己修改过的OLLYDBG(我的是ByCrack)时会提示“插件错误”,
“确定”,关闭ByCrack.exe,用UltraEdit打开CmdBar.dll,查找替换OLLYDBG为ByCrack,然后保存。这样就可以使用插件了:
现在用我们的Cmd.exe就可以调试Acprotect、EPE这样的猛壳了!作业完成!由于水平有限,错误之处敬请指出。

[ 本帖最后由 tigerisme 于 2007-1-21 17:16 编辑 ]
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-7-31 05:51
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2006-12-10 14:33:58 | 显示全部楼层
    修改牛刀难度大了点,楼主是否放个已修改好的给我们用用:handshake
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-10-29 10:38
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-1-2 14:35:02 | 显示全部楼层
    我也同意楼上的意见,直接放一个免杀的算了.
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-4-25 22:00
  • 签到天数: 933 天

    [LV.10]以坛为家III

    发表于 2007-1-16 01:00:52 | 显示全部楼层
    "Ollydbg汉化版绝对不能加壳,不然程序无法运行"这句话不敢苟同,我加了Themida,完全没有问题;P
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-12-17 23:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-1-16 15:23:09 | 显示全部楼层

    这把牛刀修改为个人版就不会被人家取窗口杀死了

    偶的OD就是个人版的,不过不是楼主这样改的,直接用ultral32改!
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2022-2-26 18:16
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2007-1-21 12:02:46 | 显示全部楼层
    放各免杀的用用别
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-1-23 23:35:10 | 显示全部楼层
    支持一下谢谢谢谢
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-3-1 20:02:06 | 显示全部楼层
    好东西,我都会来看看的   :lol:
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-3-4 14:51:19 | 显示全部楼层
    呵呵  不错 谢谢分享
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-3-16 23:16:33 | 显示全部楼层
    放各免杀的用用别/:09
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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