- 博客(16)
- 收藏
- 关注
原创 Crash Dump自动化分析的尝试
其实另一个产品线的同事已经开发了自动分析的工具,但是非常不好用。同组的同事花了好几天也没能应用到目前的产品上来。后来我接手了Crash Dump分析的工作,也了解了一下那个工具(称为A),它还需要调用另一个工具(称为B),过程繁琐,并且几乎无法维护和扩展。可以看出B也是尝试进行Crash Dump自动分析的结果,但需要人工干预和交互,算个半自动工具。一个C#的WinForm程序,仅通过wind
2012-09-01 01:51:48 1842 2
翻译 reCAPTCHA:通过网络安全措施进行基于人类的的字符识别
原文链接:http://www.cs.cmu.edu/~biglou/reCAPTCHA_Science.pdfreCAPTCHA:通过网络安全措施进行基于人类的的字符识别Luis von Ahn,* Benjamin Maurer, Colin McMillen, David Abraham, Manuel BlumCAPTCHA(Completely Automated Pub
2012-06-23 21:53:22 1603
原创 关于飞机加油的问题
看到一道关于飞机加油的问题,挺有意思。题目是这样的:每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)在不考虑地球自转和加油消耗的时间,以及认为多架飞机可以同时加油的情况下,花
2011-12-03 23:48:25 774
原创 山寨OBJECT_TYPE隐藏技术的检测方法
针对《对抗内存搜索对象-教主》一文中山寨OBJECT_TYPE隐藏技术的检测方法: 方法1: [Windows XP sp2] nt!_OBJECT_TYPE +0x000 Mutex : _ERESOURCE +0x038 TypeList : _LIST_ENTRY [ 0x821a55f0 - 0x821a55f
2011-11-25 22:32:44 797
原创 利用PDB文件获取未导出全局变量、函数等信息
方法来源于对Sysinternals的procexp的逆向。在通过kernel的pdb获取未导出的MmSizeOfPagedPoolInBytes和MmMaximumNonPagedPoolInBytes时,procexp执行了如下几个步骤:1. 获取kernel的映像文件名称 调用IsProcessorFeaturePresent判断PAE是否开启,以确定使用ntoskrn
2011-11-25 22:31:28 2181
原创 内核对象有效性的判定
一. 内核对象1. 进程对象(EPROCESS)较简单的方法是判断EPROCESS中的ExitTime是否为0,如果是0则说明该进程正在运行。但是由于该值不会对进程的运行产生任何影响,如果rootkit会在此处填值,使判断失效。根据《Windows 核心编程 第五版》 P231中的叙述,Windows中的进程内核对象中存在一个布尔变量,标示进程是否终止,使得WaitForSing
2011-11-25 22:30:36 1486
原创 SSDT中几个函数的原型和用处
1. RpcNtConnectPort PortName: "\\Rpc Control\\DNSResolver" NtRequestWaitReplyPort 获得DNS解析的内容。 2.监控注册表操作NtCreateKeyNtEnumrateKeyNtSetValueKey 3.监控文件操作NtCreateFileNtQueryDirect
2011-11-25 22:29:25 833
原创 返回地址HOOK
通过几次栈回溯,找到需要hook的地点,将返回地址替换为自己的hook函数。 这种方法应用场景应该不常见,但对于之前提到的《PsSetCreateThreadNotify回调PsLookupThreadByThreadId失败》,这应该是一个不错的解决方案。下面详细说明。第一次回溯,找到了上一级调用函数,在这里为“PspCreateThread”。在这里HOOK依然不能成功调用“P
2011-11-25 22:28:07 1094
原创 PsSetCreateThreadNotify回调PsLookupThreadByThreadId失败
PsSetCreateThreadNotify设置的回调函数中调用PsLookupThreadByThreadId失败。原因在此。在这个回调中因微软的疏忽,VISTA之前的系统调用PsLookupThreadByThreadId查找ThreadId对应的ETHREAD一定会失败。因此应采用二次hook:1.首先保存此处的三个参数,然后找到调用ThreadNotifyRoutin
2011-11-25 22:04:41 1583
原创 世上只有知识不存在再分配
时间久了,再熟悉的东西也会慢慢淡忘。在Google Docs上记录了的那些技巧性的东西,若不分享,怕是将会永远淹没在字节海洋,像从未出现过一样。因此,打算分享部分前几年写的东西。并且今后会经常更新博客,“技巧”可能会少些,更多会记录“技术”积累的点滴。朋友的一句话:“世上只有知识不存在再分配。”
2011-11-25 22:00:37 304
原创 关于IRC
今天尝试在IRC向ReactOS的老外求助,热心肠~ 以后有必要通过各种途径加强与外国技术牛人的交流。 在线IRC:http://www.mibbit.com/http://webchat.freenode.net/IRC Client:mIRC等,不一一列举了。要勇于提问,用于求助!
2010-03-25 22:12:00 427
原创 由_SEGMENT结构的变化引出的PAE问题
由_SEGMENT结构的变化引出的PAE问题在根据微软提供的符号文件查找_SEGMENT中BaseAddress成员偏移的时候,发现这个成员的在结构中的偏移在ntoskrnl.exe/ntkrnlmp.exe中与ntkrnlpa.exe/ntkrpamp.exe中是不同的,自Windows 2000至Windows 2003都这样,而且_SEGMENT结构都不同。因此google了一下
2010-03-09 22:44:00 987
转载 [转]Windows对象(Object)结构
Windows对象(Object)结构CDrea来源:WSSWindows系统的各种资源以对象(Object)的形式来组织,例如File Object, Driver Object, Device Object等等,但实际上这些所谓的“对象”在系统的对象管理器(Object Manager)看来只是完整对象的一个部分——对象实体(Object Body)。W
2010-03-09 22:43:00 760
原创 Windows对象(Object)结构--关于Win7的补充
Windows对象(Object)结构--关于Win7的补充续 《Windows对象(Object)结构》自Window 7开始,_OBJECT_HEADER及其之前的一些结构发生了变化。首先来对比下Win7与XP的_OBJECT_HEADER:[Windows 7]0: kd> dt _object_headernt!_OBJECT_HEADER +0x0
2010-03-09 22:43:00 2135
原创 UDP的checksum
只讨论IPv41. 概念简单说,UDP的checksum计算,就是伪首部+UDP首部+UDP数据。伪首部并不是IP首部的一部分,而是由IP首部中的源IP(32 bit)、目的IP(32 bit)、协议号(8 bit),和UDP首部中的UDP长度(16 bit)共同拼凑起来的。 2. 实现《TCP/IP详解》卷1第11章第3节中指出:UDP检验和的基本计算方法与IP首部检验和计算
2010-03-09 22:40:00 21143 1
转载 [转]应用层结束进程方法
转自:http://blog.csdn.net/wxdvc/archive/2009/12/08/4965046.aspx方法一针对有窗口的消息攻击法void main(void){ HWND hwnd = FindWindow(NULL, "sai"); SendMessage(hwnd,WM_CLOSE,0,0);//PostMessage(hwnd
2010-03-09 22:38:00 938
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人