摘要: 原文发表于百度空间,2008-10-15 很古老的东西了,写一写,权当练手吧.本来以为没什么难度,很科普很傻瓜的东西,但是写的时候还是遇到一些问题,进程信息正确,得到的线程信息总是不正确,后来分析了一下,发现这个ntdll sdk中定义的进程信息结构和线程信息结构都有点问题,可能它是来自《Win20 阅读全文
posted @ 2018-12-26 17:01 黑月教主 阅读(963) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间及DebugMan,2008-10-12 自某日看了iceboy和MJ0011关于多处理器同步的一些讨论,才发现原来我对自旋锁的理解也有一定错误,还好现在明白了~~为了加深理解,就深入分析了一下自旋锁的实现,一篇小小的自旋锁分析文章,献给大家。写得比较碎,欢迎各位大牛小牛指出错误~ 阅读全文
posted @ 2018-12-26 16:58 黑月教主 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-10-4看雪论坛发表地址:https://bbs.pediy.com/thread-73948.htm 这篇文章是在Servex.exe专杀工具写完之后的一些小小感想,关于PE感染和修复,大牛飘过~ 自某日不小心中了Serverx.exe病毒,电脑中大部分EXE文件被感 阅读全文
posted @ 2018-12-26 16:43 黑月教主 阅读(820) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-31 突然想起来的,修改PEB 能改掉EXE的路径,那么加载的DLL呢? 于是,马上动手实验了一下,遍历PEB中的模块列表双链,找到user32.dll后,修改其映像名和路径.具体信息在下面这个结构里: 代码比较简单,马上写完实验了一下,结果以前断链能过的全过了,m 阅读全文
posted @ 2018-12-26 16:33 黑月教主 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-31 前面已经通过遍历活动进程双链,来得到一个进程列表.但是,这个链表中有些进程其实是已经退出的进程.因此,在得到一个EPROCESS之后,必须对其进行识别,判断其是否已经退出.通过对一死一活两个进程的EPROCESS的对比,发现以下标志可以用作判断进程是否退出的标 阅读全文
posted @ 2018-12-26 16:29 黑月教主 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-28 前面介绍了修改PEB中已加载模块的双链,来隐藏指定的模块.不过要对付这样隐藏,一个暴力搜索内存就够了. 实现思路如下:地址以一个页的大小为单位从0x00000000到0x7FFFFFFF遍历,检查是否具有PE特征.页的大小可以通过GetSystemInfo() 阅读全文
posted @ 2018-12-26 16:27 黑月教主 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-26 继续实践之前的想法,就是断掉如下这个结构中的双向链表: 断开之后,凡使用Module32First()/Module32Next枚举模块的就找不到被隐藏的模块了.不过这样隐藏好像效果太差,没什么实用价值,最起码比起修改映像名称的效果要差多了~下面是用WSysC 阅读全文
posted @ 2018-12-26 16:24 黑月教主 阅读(905) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-26 用常用的几个杀毒工具看了下之前写的改映像路径的程序,发现原来非常有意思好几个工具都不能正确识别路径了,吼吼~ 贴几个图上来: 狙剑: 安天的Atool: gmer(有一点小问题,在模块列表中显示不出来): Syscheck: WsysCheck: 360安全卫 阅读全文
posted @ 2018-12-26 16:17 黑月教主 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-26 继续研究PEB,这时候才发现之前写《从PEB获取内存中模块列表》一文时出现的错误.下面是一个结构: 从这个结构可以知道,如果按InLoadOrderModuleList遍历,那么InLoadOrderModuleList这个结构的地址就是LDR_MODULE结 阅读全文
posted @ 2018-12-26 16:13 黑月教主 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-25 前面对PEB的相关结构和其中的重要成员进行了分析和学习,现在开始真正进入内核,学习内核中的一些结构.这个EPROCESS结构在ntddk.h中有定义,但是并未给出具体的结构,因此要得到EPROCESS中一些重要的成员变量,只能通过偏移的方法,比如PID,Ima 阅读全文
posted @ 2018-12-26 16:10 黑月教主 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-25 PEB中的Ldr部分包含有当前进程所加载的模块信息.lkd> dt _pebntdll!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x0 阅读全文
posted @ 2018-12-26 15:56 黑月教主 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-25 忘了在哪儿看到的了,就是让pid从1开始使用OpenProcess来打开进程,然后根据得到的句柄获取进程名称.绝对的暴力方法,貌似比较有趣,因些写来一个玩玩.实现比较简单,先提升SE_DEBUG_NAME,然后依次打开,获取进程名称就行了,不提升权限的话服务程 阅读全文
posted @ 2018-12-26 15:51 黑月教主 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-24 当时对UNICODE_STRING的使用还有点问题,导致最终效果图中字符串被截断了 先从分析PEB开始吧.感觉分析这个东西,首先要把类型定义搞清楚,这个在Windbg里dt _PEB就可以了搞清楚定义主要是为了定位相关变量的偏移.PEB中的ProcessPar 阅读全文
posted @ 2018-12-26 12:01 黑月教主 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-24 线程是进程的实际存在,每个进程中至少会有一个线程.线程相关的数据结构比较多,一个一个看.首先是ETHREAD:lkd> dt _ETHREADnt!_ETHREAD +0x000 Tcb : _KTHREAD //线程控制块 +0x1c0 CreateTime 阅读全文
posted @ 2018-12-26 11:57 黑月教主 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-24 进程的相关结构非常重要,重点学习~有一些内容参考自:http://dev.csdn.net/article/20/20210.shtm 进程结构中,首推EPROCESS,标记一些重要成员(可能不全):lkd> dt _EPROCESSnt!_EPROCESS 阅读全文
posted @ 2018-12-26 11:55 黑月教主 阅读(243) 评论(0) 推荐(0) 编辑