- 博客(22)
- 资源 (32)
- 收藏
- 关注
原创 windbg常用指令之四:虚拟内存操作指令
.dvalloc 申请虚拟内存.dvfree 释放虚拟内存.writemem 写内存到文件.readmem 读文件到内存!address 内存信息查看!vprot 看虚拟内存保护属性0:001> .dvalloc 1000Allocated 1000 bytes starting at 011500000:001> !vprot 01150000BaseAddr
2013-06-26 21:03:15
1895
原创 windows之 访问控制模型
当一个线程使用Open*打开一个内核对象时,会发生什么?有两种可能:1. 打开成功,拿到句柄2. 打开失败这不是废话么?!为啥打开失败呢?有两种可能:1. 当前线程不具有指定的特权2. 权限不足(由dwDesiredAccess参数指定权限)这个时候就引入了今天的主题:令牌(包含特权列表)和安全描述符(描述用户权限)。Tokentoken是什么?对
2013-06-10 19:52:48
2309
原创 windows之 会话、工作站、桌面、窗口之间的关系
一个系统可以同时登录多个用户(包括远程用户登录)一个用户拥有一个会话(远程用户被称为远程会话)一个会话拥有多个工作站和窗口。只能拥有一个交互式工作站(Winsta0)。一个会话拥有一系列私有的进程和模块:Csrss.exe、WinLogin.exe、Lsass.exe、win32k.sys一个会话拥有一个私有对象名字空间(\BaseNamedObjects),私有对象名字空间中的内核对象不能被其他
2013-06-08 22:31:25
2582
原创 获取进程token(令牌)和sd(安全描述符)
先找到windbg进程内核对象指针lkd> !process 0 0 windbg.exeUnable to read selector for PCR for processor 0PROCESS 8144c3a8 SessionId: 0 Cid: 02ac Peb: 7ffdb000 ParentCid: 0820 DirBase: 0c0c05a0 Objec
2013-06-06 18:00:16
4992
原创 windows 异常处理
写程序的时候避免不了出现异常或Bug,windows是怎么保证异常可以被try_catch,或者调试器捕获并处理的呢?如果异常不能被处理,windows会怎么做呢?这要从windows异常处理器说起。异常处理器顾名思义,专门处理各类异常的。异常处理器按照内核和用户模式分成了两类,处理过程不尽相同。内核模式异常处理内核调试器第一次处理该异常如果存在内核调试器,则交给它处理。如
2013-05-18 13:38:37
1801
原创 VSDebug、Ollydbg、WinDbg字符串条件断点设置方法
字符串断点在下断点时也是一个比较常用的功能。不过网上介绍字符串断点设置技巧的文章很少,有的也不准确。其实他们设置的方法整体来看比较简单。VSDebugVSDebug 微软VS自带调试器套件,对字符串断点的支持依然强大。Vs支持在断点条件中使用字符串比较函数。ASCII字符集字符串断点设置方法:strcmp(pzString, "DDLX_CHAR") ==
2013-04-28 20:39:55
2951
原创 windbg之使用!list指令遍历双向链表
windows内核中大量的数据结构使用了双向链表。如果能查看每个链表的元素,甚是美哉。windbg就给我们提供了这么好用的功能。!list命令是一个用来查看链表的命令,该功能非常强大并且易于使用。下面我们就用例子来看一下!list命令的用法使用!list遍历活动进程的进程Id和进程名活动进程链表节点在EPROCESS中德偏移 +0x088 ActiveProcess
2013-04-27 23:38:29
2308
原创 xp与win7中_OBJECT_HEADER的区别,_OBJECT_TYPE获取方法
在win7中 _OBJECT_HEADER变化比较大。不能直接取出_OBJECT_TYPE对象,而是使用对象在ObTypeIndexTable中的索引来引用_OBJECT_TYPE。下面使用windbg来掩饰xp和win7获取_OBJECT_TYPE的方法。xp系统获取方法使用!object查看一个文件对象信息lkd> !object 8914b2c0Object: 8914
2013-04-26 23:44:07
2813
原创 尽量不要使用TerminateThread与SuspendThread
强制杀死或挂起线程会导致线程正在获取的锁资源无法释放;如果正在操作一块公共内存,可能会导致公共内存被破坏。详细请见:http://blog.youkuaiyun.com/magictong/article/details/6304439
2013-04-24 21:15:27
1761
原创 windbg 常用命令介绍(三)
.attach 附加一个进程0:000> .attach -b 0n2168Attach will occur on next execution0:000> g.detach 取消调试当前进程1:001> .detach /nDetachedg 继续执行0:004> g //或按快捷键F5无条件中断(不是指令)Ctrl+Break.restart重新
2013-04-23 05:06:21
1487
原创 windbg 常用命令介绍(二)
b 断点命令bp/bu/bm 软件断点bp 设置一个普通断点bu 设置一个未决的断点,如果该断点所在模块还没加载,使用该指令bm 对多个符号下断点0:000> bp kernel32!LoadlibraryA0:000> bp kernel32!LoadlibraryA+50:000> bu kernel32!LoadlibraryW0:000> ~2 bp kernel
2013-04-23 04:38:27
2072
原创 windbg 常用命令介绍(一)
加载符号.symfix 设置符号路径0:000> .symfix c:\symbols.sympath 查看设置的符号路径0:000> .sympathSymbol search path is: srv*Expanded Symbol search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/sym
2013-04-23 03:01:46
3452
原创 PE文件结构处理经验总结
这个是我原先发在看雪上的一个帖子。本文不是讲解Pe文件格式的,而是对Pe格式编程时遇到的问题的记录和总结。如果对Pe文件不是很熟悉,请先查阅其他人写的PE文章。 该贴是我在写加壳工具的时候遇到问题的总结。记录下来,供以后温习,希望对各位也有一定帮助。 由于本人接触该方面时间不长,免不了存在失误之处,敬请拍砖。 1. IMAGE_DOS_HEADER
2013-04-21 22:22:26
1295
原创 反外挂系统设计方案
该方案是参考多家反外挂系统,加上自己对反外挂了解整理而来。整个方案包含了反外挂系统中常见的所有功能。 4. 系统框架设计方案本系统基于C/S结构设计,包含服务器端和客户端两大部分。服务器端主要负责策略定制与实施,并控制客户端的行为。客户端主要负责具体的安全保护。如外挂扫描,防盗号,防修改游戏内存等。下面是对各个部分负责的功能的描述:4.1. 服务器端
2013-04-21 22:12:39
3010
原创 windows调试器之windbg
windbg是微软开发的一套调试器中的组件。windbg由于其丰富的命令和对windows的原生支持还有其易用性,是其他其他调试器望尘莫及的。不过,如果你只是想通过源码调试应用层程序,应该首选vc调试器。windbg特色功能:1. 支持应用层程序调试(可以源码调试)2. 支持内核层调试。如调试驱动和操作系统3. 支持远程调试4. 分析dump文件5. 查看本地操作系
2013-04-21 21:37:12
1301
原创 windows调试器之Visual C++
visual c++ 是visual studio中的一个组件。windows下开发C++是一个首选工具。这个工具强大了,每个人都知道哈哈我打算给大家介绍一些windows下常用的调试器:visual c++ollydbgwindbgvisual c++作为我们的开发工具,当做调试器当然也不逊色,那他与别的调试器相比有哪些优劣点呢?visual c++调试器
2013-04-21 19:22:22
2287
原创 windows之启动过程(二)
这是widnows启动过程系列文章第二篇,看第一篇,请点击windows之启动过程(一)6. Ntoskrnl.exe 的KiSystemStartup,执行阶段0初始化 初始化主处理器初始化各个组件,包括Hal初始化(HalInitSystem)执行体初始化(ExInitSystem)内存初始化(MmInitSystem)对
2013-04-21 15:42:24
1840
原创 windows之启动过程(一)
windows的启动过程一直是我比较感兴趣的。下面看一下他是怎么启动的。1. BIOS 加电自检(包括枚举设备,初始化显卡等。这时可以进入BIOS内进行一些主板设置,如修改主板时间、设置从USB启动等)2. BIOS 选择一个启动设备,执行主引导记录(MBR)。 MBR是一个设备的第一个扇区,包含引导代码和分区数据。最多支持4个分区数据,如果你把系统
2013-04-21 14:55:23
1534
4
原创 windows消息之PostMessage和SendMessage的内部实现
PostMessage和SendMessage是常用的发送消息函数。那两者有什么区别呢?大家都知道PostMessage是向一个窗口Post一个消息,并且不再关注该消息是否被处理。SendMessage是向窗口发送完消息后,会一直等着该窗口把消息处理完成。那下面的问题你能回答么1. PostMessage向自身线程窗口发消息与向非自身线程窗口发消息实现方法一样么?2. Send
2013-04-16 23:12:51
4139
原创 CreateProcess 内部实现
*ReactOS学习笔记*CreateProcess 内部实现调用CreateProcessW 调用CreateProcessInternalW 参数检查 获取进程文件路径 调用BasepMapFile映射文件(内部调用NtCreateSection) 判断是否是一个DLL文件 判断子系统类型(只能是
2013-02-19 18:15:57
2883
原创 杀死一个远程进程的方法
<br />最近在写一个对进程操作的工具。经过参考别人的思路和自己的总结,掌握了在Windows下对进程的一些处理方法。<br />现,撰写此文,一来留着备以后参考,二来也希望广大网友给出更好的建议和思路,谢谢。<br />话不多说,开始上代码。<br /> <br />第一个杀死一个进程的方法,就是向该进程发送关闭消息。<br />该方法只能在要杀死的进程有窗口的时候使用。如果没有窗口,则该方法无效!<br />#define DDLX_TEXT_MAX_SIZE 1024int ddlx_cmn:
2010-06-27 13:03:00
2249
原创 vc2005/2008编写的软件无法在其他机子上运行问题的解决方案
前段时间用VC++2008写了一些小程序,在其他机器上却无法运行。提示: “由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能纠正这个问题。”我本以为装上vc++2008运行库可以解决该问题,但装上之后没一点效果。后来就在网上搜了解决该问题的解决方案,网上有很多,我一个一个试过之后,还是无法解决该问题。经过我的查找后,发现是别的机器上少了
2009-09-09 16:04:00
1001
WINDBG参考手册V0.6
2014-01-09
PeViewer0.9.3 Pe文件分析器0.9.3版
2010-08-14
PE文件分析器源代码
2010-05-04
vc++9.0编写的 运动的小球 程序和源码
2009-11-22
VC++9.0编写的 贪吃蛇 程序和源码
2009-11-22
VC++9.0编写的 日历 程序和源码
2009-11-22
VC++9.0编写的 迷宫 程序和源码
2009-11-22
VC++9.0编写的 连连看 程序和源码
2009-11-22
VC++9.0编写的 科学多功能计算器 程序和源码
2009-11-22
VC++9.0编写的 俄罗斯方块 程序和源码
2009-11-22
VC++9.0编写的 N皇后算法演示 程序和源码
2009-11-22
vc2005/2008编写的软件无法在其他机子上运行问题的解决方案
2009-09-08
java 编写的 时间+日历挂件 实现源码
2009-09-05
JAVA多功能计算器
2009-06-18
学生成绩管理系统 C语言
2009-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人