吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5296|回复: 4
收起左侧

[Debuggers] 【转帖】OllyDbg 2.01g October 04, 2012 - update

[复制链接]
sdzzb 发表于 2012-10-5 14:18
Many bugfixes and several improvements. Plugin interface is still under development.

I've got rid of a very nasty crash. Maybe half of such crashes happened within the GlobalAlloc(), the remaining were almost unpredictable. Of course, it was buffer overflow, what else?

Debugging engine is now more stable, especilally if one steps into the exception handlers. There is a new debugging option, "Set permanent breakpoints on system calls". When active, it requests OllyDbg to set breakpoints on KERNEL32.UnhandledExceptionFilter(), NTDLL.KiUserExceptionDispatcher(), NTDLL.ZwContinue() and  NTDLL.NtQueryInformationProcess(). For example, if CPU is in the exception handler and you set hardware breakpoint, it won't hit! NTDLL.ZwContinue() restores original contents of registers and modifications get lost. Therefore OllyDbg sets temporary INT3 break on ZwContinue() and applies changes to the copy of the context in memory. But sometimes it simply doesn't know that temporary breakpoint is necessary. If process is being debugged, Windows don't call the unhandled exception filter. Instead, it notifies debugger. To pass exception to the filter, OllyDbg intercepts NtQueryInformationProcess(). If handler asks OS whether process is debugged, OllyDbg reports "no". And so on. Well, if this new option is so advantageous, why not to make it default? Because some viruses check for INT3 breakpoints on these APIs.

Sometimes it's necessary to rename the OllyDbg, for example if you investigate a brainless virus that scans process names and hopes to avoid debugger. You rename OllyDbg to, say, notadebugger.exe and... and... and all plugins are missing?! They are statically linked to the DLL named ollydbg.exe. Of course, GetProcAddress() would help, but this makes programming to the nightmare. Therefore when OllyDbg loads plugins, it applies a dirty trick which lets Windows think that the main module is named ollydbg.exe and not notadebugger.exe. This trick works under Windows XP, but I am not sure whether Vista/Win7 use the same internal data structures. Please check.

Hit trace can be saved between the sessions. If code is self-modifiable, use this option with care. When OllyDbg restores hit trace, it sets INT3 breakpoint on every marked command. This may lead to crash of the debugged application.

Due to the invalid handling of prefixes 66, F2 and F3, command search was unable to find SSE commands. This bug is corrected.

Currently I am working on the plugin interface. Plugins will be allowed to set temporary breakpoints and process exceptions. This requires significant changes in the debugging engine and may take another couple of weeks.

DownLoad1: http://www.ollydbg.de/odbg201g.zip
DownLoad2: http://pan.baidu.com/share/link?shareid=69494&uk=2416946405

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

XXXX 发表于 2012-10-5 14:40
今天在官网看到了= =谢谢分享
1354669803 发表于 2012-10-5 17:02
mofa005 发表于 2012-10-5 17:30
哼柴 发表于 2012-10-5 18:01
我第一反应是打开谷歌翻译。以下是翻译文:




许多错误修正和一些改进。插件接​​口仍处于开发阶段。

我已经摆脱了一个非常讨厌的崩溃。也许这种崩溃的一半内发生的GlobalAlloc(),其余则几乎是不可预测的。当然,这是缓冲区溢出,还有什么?

调试引擎是现在更稳定,especilally如果到异常处理程序的步骤之一。有一个新的调试选项“,设置永久性断点系统调用”。当激活时,它会要求OllyDbg的,设置断点KERNEL32.UnhandledExceptionFilter()NTDLL.ZwContinue中,NTDLL.KiUserExceptionDisPatcher(),()和NTDLL.NtQueryInformationProcess()。例如,如果CPU是在异常处理程序,并设置硬件断点,它会不会打了! NTDLL.ZwContinue()恢复原始内容寄存器和修改迷路的。因此,OllyDbg中设置临时INT3休息ZwContinue(),适用于变化的情况下在内存中的副本。但有时它只是不知道,临时断点是必要的。如果进程正在被调试,Windows不调用未处理的异常过滤器。相反,它会通知调试器。要通过异常过滤器,:OllyDbg的,拦截NtQueryInformationProcess()。如果处理程序要求OS是否调试过程中,OllyDbg的报告“没有”。等。 ,如果这个新的选项是有利的,为什么不让它默认?因为有些病毒检查这些API的INT3断点。

有时,它需要重新命名的OllyDbg的,例如,如果你调查一个愚笨的病毒扫描进程名,并希望避免调试。重命名OllyDbg的,比方说,notadebugger.exe ...和...和所有的插件都不见了?!它们是静态链接的DLL命名ollydbg.exe。当然,GetProcAddress()的帮助,但是这使得编程的噩梦。因此,在OllyDbg中加载插件,它适用于一个肮脏的伎俩,使Windows认为的主要模块被命名为ollydbg.exe和不notadebugger.exe的。这一招在Windows XP下工作,但我不知道是否Vista/Win7使用相同的内部数据结构。请检查。

可以保存会话之间的命中跟踪。如果代码是自我修改的,使用此选项时要小心。当OllyDbg的恢复击中的痕迹,它设置INT3断点的每一个显着的命令。这可能会导致崩溃的调试应用程序。

由于处理的前缀66,F2和F3无效的,命令搜索无法找到SSE指令。此错误得到纠正。

目前我工作的插件接口。插件将允许设置临时断点和处理异常。这需要调试引擎的显着变化,可能要再过几个星期。

下载:http://www.ollydbg.de/odbg201g.zip
下载:http://pan.baidu.com/share/link?shareid=69494&uk=2416946405
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-2 07:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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