挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)不懂社区·好资源不错过·各位资源站大佬欢迎来采集搬运IOS签名/udid证书出售/送证书加群1040456405 ██【我要租此广告位】██
... .
查看: 3359|回复: 0
打印 上一主题 下一主题

[Debuggers] Obsidian - Non-intrusive Debugger

[复制链接]
4中级会员
338/600

338

积分

112

主题

5

听众
已帮网友解决0 个问题
好评
0
贡献
226
海币
2953
交易币
0
跳转到指定楼层
楼主
发表于 2016-4-3 12:00:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


它是什么?

黑曜石是一种非侵入调试器,这意味着它不改变目标过程将一个正常的调试器。作为在beta测试阶段可以有一些小问题,但它应该是基本稳定。
为什么?

只是它的乐趣和新事物的学习。如果您有问题,遇到问题或想提出关于改进或新功能的建议,请给我一条线。我的邮箱地址,可以在页面的底部找到。
这是什么好处?

其主要优点是,你不必再关心那些反调试器技巧,例如:
的IsDebuggerPresent(),它归结为在PEB检查调试标志
自我调试:创建另一个线程或进程,自身附加到目标,以保持其他调试器这样做,可能在运行时做一些代码“更正”。
时序检查承认,由于附加调试器的延迟。
它是如何工作的?
基本信息

该项目的基础知识,或者是正确的,关于一个调试器的工作原理大部分来自MSDN与调试从iczelion的辅导过程中额外的洞察力。
Windows API的

调试功能通过使用标准的Win32的API调用等来实现:
CreateProcess的
调用OpenProcess
的OpenThread
CreateToolhelp32Snapshot
SuspendThread / ResumeThread
ReadProcessMemory / WriteProcessMemory的
GetThreadContext / SetThreadContext
断点

为了实现断点我用一招我在密码破译杂志一个非常有趣的纸教训。它的名字是,被莎布Nigurrath写的“关于如何使用进程的内存玩,写装载机和Oraculumns指南”。莎布Nigurrath的伎俩本身引用耶茨和他的论文“创建装载机和翻斗车 - 饼干指南程序流控制”,所以荣誉给他。诀窍是将操作码EB FE在要停止的地址。这个代码代表“JMP -2”这是一个代码,而最短的路(1)环我所知道的。
显示/组装

为了显示/组装操作码,我用反汇编zip文件奥莱Yuschuk,OllyDbg的创造者的的真棒代码,已经把他的网站上。 OllyDbg的理所当然地赢得了声誉是直观,SoftICE的一个真正的替代品,当涉及到环3应用程序。
文件信息

要提取约约我用从纸上所获得的信息的过程代码和数据段和其他东西的一些信息“可移植可执行文件格式 - 一种逆向工程观”的书面Goppit。本文也可以在密码破译杂志找到。
单步和正在步入调用

因为我不能使用调试的事件,我选择了简单的方法和“刚”设置这将是下一步要执行指令断点。这涉及检查跳转,调用和返回,以确保得到正确的指导。检查条件跳转很简单,因为在反汇编文件(上述)可能已经做到这一点对我来说与校验条件的功能。这同样适用于呼叫。与得到他们的目的地从寄存器调用的异常。搜索了一会儿后,我发现,呼叫操作码的低四位一语道破应该使用的寄存器。上次我写了一篇关于StackWalk功能,我不得不承认,我错了,因为在任何情况下沤Intel的文档状态使用的第一个元素形成层叠使用它的回报。所以没有什么,除了阅读DWORD指向的ESP工作要做。
线程本地存储(TLS)

当启动一个新的进程将要执行的代码的第一部分是无法通过该地址由AddressOfEntryPoint指向。其实DataDirectory目录[IMAGE_DIRECTORY_ENTRY_TLS]在可选的头球点到包含一个指向的才去执行AddressOfEntryPoint功能列表的IMAGE_TLS_DIRECTORY32结构。
附加到正在运行的进程

有哪些是需要提供完整的功能两个把手。第一个是在过程把手,第二个是在手柄的主线程(如黑曜石仅支持单线程调试)。以允许的处理的选择,该组进程ID,可执行路径和名称为每个过程可通过采用与TH32CS_SNAPMODULE作为参数CreateToolhelp32Snapshot获得。从选择进程ID可以被传递给调用OpenProcess函数,以便检索过程把手。获取线程处理需要更多的工作。如果线程ID是已知的的OpenThread函数将返回的句柄。由于是的OpenThread只能从Windows 2000专业版起附加方法将只对那些提供这种功能的系统。找到线程ID可以通过使用CreateToolhelp32Snapshot与TH32CS_SNAPTHREAD的结果进行管理。据称所述第一条目总是进程的主线程,所以这将是那将被打开的线程。通过查看返回的结构成员th32ThreadID提供的需要的了的OpenThread功能线程的ID。可用两个手柄和工艺和线程的ID,可以提供完整的功能。
流程倾销

当我开始写代码,我想知道为什么,似乎没有要对倾销的正在运行的进程用自己的程序中的任何教程。大多数的教程,我发现利用现有的工具吧。有大约的方式重建IAT一些很好的论文。我将牢记下一个版本之一。当我开始重读PE文件它发生,我认为这是所有你需要转储未受保护的过程。您可以直接从模块的基址得到的标题,并从他们,你可以收集所有的其他部分。所以作业重新组装通过由加载程序处理空间散射的部件并将它们写入到文件中。只要保持边界和补偿的初衷。
堆栈视图

经过很长一段时间栈的临时存储显示器,它已被取代的改进版本。要获得栈的更好的印象帧堆栈的“特殊”值(存储EBP,EIP存储和地址由ESP指向)以不同颜色突出显示。此外,以灰色显示的任何事情不是活动栈的一部分。另一个小功能,长existant但尚未提到的,是一个简单的控卫,让你知道在保存EIP的变化。对于这个工作,你需要步入呼叫,单步,直到你到达RET。当EIP被改变一个消息框弹出,警告你有关的变化。
抽象
符号

使用元件比我首先想到的要容易得多。大部分工作是由imagehlp库提供的符号* -functions完成(例如使用SymGetSymFromAddr通过其地址来获得一个符号名)。因此,这需要一点点工作的唯一组成部分,是决定间接的水平,使通过跳转表通话可能被正确解析。这同样适用于应用IDA地图文件。一旦它被解析,它的背部再次分析引用。顺便说一句,IDA是Ilfak Guilfanov(原公司DataRescue现在十六射线)一个非常令人印象深刻的反汇编。它提供了一个更深入的分析,另一种观点认为,以比大多数调试器做一个可执行文件。此外,顾名思义,你并不需要实际执行的目标,这是很酷,特别是对恶意软件分析。
基本块分析

在(或多或少)所需的基础建设后,我决定采取射击在提高了代码分析。一个简短的研究取得了神奇的话“基本块”,这是源自编译器优化的概念的术语。但是,也许这是最好先解释什么是基本块。一个基本块,一般讲,不含任何跳跃,而不是跳进命令序列。凡跳并不意味着jmp指令,但通常明确随时随地移动EIP一切。命令我使用的确定基本块的结尾是:
所有的跳转,有条件和无条件的(例如JMP,JE ...)
呼叫
RET

块和地址是如何处理的?分析器包含两个列表,其中一人持有的所有地址尚未分析,另一个包含所生成的块。通过这样做,有未知的和已知的块之间的完全分离。为了避免无限循环例如当处理向后跳跃分析器只处理不趴在已处理的代码块的起始地址。也将不执行出模块范围的地址的处理。这样做是为了保持处理时间在可接受的水平。作为这种方法依赖于分割未知块或可分割已知块分成几个较小的,代码需要通过已知和未知的块进行搜索,并检查阉当前地址意味着分裂或单独的块的创建。当在代码中寻找,我发现,这是更有效的通过地址列表向后走(例如最新的第一个块),因为大多数的比赛将在最后处理块的vincinity发生。代码的分析开始于入口点,并从那里上向前移动。呼叫和条件跳转产量都在最好的两个地址,其中一个新块的分析可以启动。在'最好'的事实,在分析与间接寄存器寻址时无法解析的结果,所以这是一个无法分析的路径。当一个地址点到一个已知块,这意味着该块需要拆分,因为一个地址只能跳转到这个位置,这意味着前者块来结束,并有一个新的开始。此刻的分析器没有做出什么可以指任何假设,但只关心definate信息。因而有还没有被认可,并因此被视为填充的代码块。这会影响到反汇编代码的可读性。由于未标记为代码的任何操作码将在字节的步骤进行拆卸。例如像74 53在地址00403F52的操作码将会导致以下的输出:
00403F52 74 53 JE 403FA7
00403F53 53 PUSH



Obsidian-src.7z (263.43 KB, 下载次数: 0)



联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:SoftSnoop2009 V0.1
下一篇:WKTVBDebugger美化版
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:xhzlw@foxmail.com),本站将立即改正。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2025-4-5 06:07 , Processed in 0.149371 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

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