
安全
breaksoftware
这个作者很懒,什么都没留下…
展开
-
使用windbg抓取崩溃文件和分析的过程
我们身边的很多软件都引入了dump生成和收集机制。但是一般情况下,它们都是生成minidump。因为minidump文件相对来说很小,方面我们收集上来进行分析。但是Minidump保存了很少的信息,在一些场景下,可能不能协助我们准确快速定位问题。原创 2013-10-31 23:58:02 · 17983 阅读 · 2 评论 -
一种注册表沙箱的思路、实现——Hook Nt函数
Nt函数是在Ring3层最底层的函数了,选择此类函数进行Hook,是为了提高绕过门槛。我的Hook方案使用的是微软的Detours。(转载请指明出处) Detours的Hook和反Hook的写入如下:DetourTransactionBegin();DetourUpdateThread(GetCurrentThread());DetourAttach(lpOriF...原创 2012-06-11 01:18:31 · 5694 阅读 · 9 评论 -
VC提前注入.net软件的方法
在之前几节介绍了各种注入方法,但是这些方法存在一些缺陷——对.net程序注入无效。(转载请指明出处) 这个可以理解,.net程序的代码不是汇编,而是微软自定义的IL中间语言。.net CLR如同虚拟机,解析并执行这些中间语言。 于是我们之前所说的修改文件入口点的方法在此是一点都不奏效的,谁知道E8(Call)在IL中是啥! 远线...原创 2012-04-18 22:46:05 · 2594 阅读 · 0 评论 -
VC下提前注入进程的一些方法3——修改程序入口点
前两节中介绍了通过远线程进行注入的方法。现在换一种方法——修改进程入口点。(转载请指明出处) 在PE文件中,其中有个字段标识程序入口点位置。我们通过这个字段,到达程序入口点。PE文件的结构我这儿不讨论(我会在之后写关于PE文件的介绍和研究),我只列出一些和程序入口点有关的数据结构typedef struct _IMAGE_NT_HEADERS { D...原创 2012-04-18 20:38:24 · 5525 阅读 · 1 评论 -
VC下提前注入进程的一些方法2——远线程带参数
在前一节中介绍了通过远线程不带参数的方式提前注入进程,现在介绍种远线程携带参数的方法。(转载请指明出处) 1.2 执行注入的进程需要传信息给被注入进程 因为同样采用的是远线程注入,所以大致的思路是一样的,只是在细节上要注意一些处理。总体来说分为以下几个步骤: 1 将需要传递的信息写入被注入进程的地址空间。 2 将远线程函...原创 2012-04-17 20:05:22 · 3697 阅读 · 2 评论 -
VC下提前注入进程的一些方法1——远线程不带参数
前些天一直在研究Ring3层的提前注入问题。所谓提前注入,就是在程序代码逻辑还没执行前就注入,这样做一般用于Hook API。(转载请指明出处)自己写了个demo,在此记下。 我的demo使用了两种注入方式:1 远线程; 2 修改代码入口点。 先说下我代码风格,因为要处理很多异常逻辑,我比较喜欢do{}while(0);这样的结构,一旦出错,就b...原创 2012-04-13 23:09:40 · 3771 阅读 · 0 评论 -
使用APIHOOK实现进程隐藏
今天翻出一些今年前写的代码。其中一个是09年,我帮一个读研的同学写的一个“无公害恶意”程序。大致要求就是要实现自启动和自我隐藏。我使用的都是些简单的技术,只是实现自我隐藏稍微让我花费了点时间写算法。其实这个算法也很简单,就是大学时候写的从一个单向链表中删除一个元素。(转载请指明出处) APIhook我这儿就不说了,网上很多开源的代码,我只贴出“删除元素”的代码。NTS...原创 2011-12-27 18:57:03 · 8530 阅读 · 0 评论 -
Linux下HOOK动态链接库中API的方法
2012年,我写了一篇介绍Windows系统下Ring3层API的hook方案——《一种注册表沙箱的思路、实现——Hook Nt函数》,其在底层使用了微软的Detours库。5年后,我又遇到这么一个问题,但是系统变成了Linux。我最开始的想法是找一个Linux下的Detours库,于是找到了subhook。其原理是:修改被Hook函数起始地址处的汇编代码,让执行流程跳到我们定义的...原创 2017-08-23 21:49:10 · 6934 阅读 · 4 评论 -
分析两种Dump(崩溃日志)文件生成的方法及比较
本文分析和讲解了两种截取dump的方法。一种是使用SetUnhandledExceptionFilter方法设置回调。一种是通过Hook函数UnhandledExceptionFilter实现。后一种方法可以截获前一种方法无法截获的异常,比如R6025:纯虚函数调用(pure virtual function call)。原创 2014-04-08 01:24:15 · 23406 阅读 · 2 评论 -
PE文件和COFF文件格式分析——导出表的应用——一种摘掉Inline钩子(Unhook)的方法
本文讲述如何使用导出表,还原inline hook。原创 2014-04-21 22:26:10 · 2867 阅读 · 0 评论 -
一套使用注入和Hook技术托管入口函数的方案
工作中,我们可能会经常使用开源项目解决一些领域中的问题。这种“拿来主义”是一种“专业人干专业事”的思想,非常实用。(转载请指明出于breaksoftware的csdn博客) 一般场景下,我们都是把开源项目代码编译到我们自己的项目中。这样的“融合”,就相当于让两个项目进行了“基因重组”,最终产出一个“基因战士”。在进行“基因重组”中,需要“专业人员”对开源项目中每个...原创 2018-09-28 01:59:14 · 1913 阅读 · 2 评论