自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SR0ad的涅盘地

Everything felt so right

  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 指针学习

PS:话说当时脑浊,学不明白指针,还因幻想Java没有指针而欣喜一番,后来发现这种不明不白的太难受了,还是认真啃掉这块硬骨头吧,此文就是当时为了理解指针,从汇编的角度去学习的一个过程。#include int main(){ int count, num; //定义两个整型变量count和num int *pointer; //一个整形指针pointer

2012-12-04 20:09:05 778

原创 Anti OllyDBG几个Tips

方法来自海风月影和Nooby,这里只是为自己做一个备忘。1.DbgHelp.dll,原版OD目录下有一个dbghelp.dll,大小大概是475KB,这个文件存在溢出漏洞,可以被Anti。替换成改版OD中的大小为1.15 MB,或者WinDbg的DbgHelp.dll,大小为3.30 MB。有了这个dll的帮助,OD能够自己载入PDB文件,使得调试更加方便。2.OD中有一个

2012-12-03 20:46:38 1394

原创 使用OD加载微软符号库

Windbg可以加载微软符号库,如果本地没有符号,可以自动去微软网站上下载对应的PDB文件辅助调试分析。PS:WingDbg下的符号加载,SRV*c:/windows/symbols*http://msdl.microsoft.com/download/symbolsRing3下的OD也具有这个功能,当然需要StrongOD来帮助了。1.在WingDbg目录下拷贝dbgeng.

2012-12-03 20:45:40 7998

原创 sudami和achillis对初学者的建议

sudami对初学者的一点建议1. 若对Windows底层开发没有兴趣,不建议继续深究, 若有些兴趣可以继续。2. 先广泛打基础,比如C/ASM/C++/MFC,再学习Windows核心编程,对R3上的一些开发有所熟悉,再系统的学习《操作系统》等书籍,理解整个系统的原理,构架,实现。3. 有了以上基础,可以开始阅读一些驱动入门书籍,如《Windows内核情景分析》, 多上Google搜

2012-12-03 20:41:49 1841

原创 查看DLL模块内的函数原型

今天遇到一个问题,如何调用陌生DLL中的函数,并为自己所用。首先想到VS的工具Depends可以查看DLL的导出函数。结果还是很乐观的,但是这些@之类的编译器符号看的人真心不舒服,也不能一眼看出函数原型。当然有经验的人,是能看懂这些@符号的含义的,列出参数列表也不奇怪。不过我是没有到那个功力的。Googel了一番还是有点不给力,没有合适的方案来处理这个问题。晚上回来,翻出I

2012-12-03 20:39:34 4473

原创 键盘消息

今天看了一下键盘消息的内容,其实主要的内容就在下面这张图片里面了。通过键盘input,不管是PS/2还是USB,都会通过底层的处理,去调用KeyBoardClassServiceCallBack();它是第一层处理函数,通过构造参数去调用这个函数,是能达到模拟按键的。再往上层走,通过SendInput();可以构造中文数据。另外的就是通过消息机制,向

2012-12-03 20:36:47 842

转载 调试与测试的关系

转载自:《软件调试》,张银奎,电子工业出版社。简单地说,测试的目的是在不知道有问题存在的情况下来寻找和发现问题,而调试是在已经知道问题存在的情况下来定位问题根源的。从因果关系的角度来看,测试是旨在发现软件“表面”的不当行为和属性,而调试是寻找这个表象下面的内因。因此二者是有明显区别的,尽管有些人时常将它们混淆在一起。如果说代码是联系调试与编码的桥梁,那么软件缺欠便是联系调试

2012-12-03 20:34:42 3266

原创 栈的逆袭

学习数据结构的时候就接触了栈,但是那时候也就是定义一个Type* base; int top;知道一个后进先出,能用来完成括号匹配这些的。但是真正的计算机中,栈用的非常广,这里对栈在进行一次学习,也称之为逆袭吧。栈在内存是一块特殊的存储空间,它的存储顺序原则是“先进后出”,最先存储的数据最后被释放。高地址在下,向低地址生长。在汇编中,称esp为堆栈指针寄存器,ebp为基址指针寄

2012-12-03 20:33:31 607

翻译 Windows 9x,NT和2000下的API 欺骗技术

英文原文:API Spying Techniques for Windows 9x, NT and 2000链接地址:http://www.internals.com/articles/apispy/apispy.htm通过API欺骗技术可以对应用软件和操作系统内部结构进行深入的探索。遗憾的是,无论是SDK(标准应用开发包)还是DDK(驱动程序开发包)都没有提供任何的文档或者例子来

2012-12-03 20:31:43 1171

原创 VC/VS中间文件清理批处理

今天整理电脑中的东西,拿着奥卡姆剃刀,把多余的东西都Del掉吧,看到平时建立VC工程的目录实在是大的离谱,记得之前写过一个删除中间文件的程序不过找不到了,确翻出来一个批处理,放到根目录就能遍历文件夹,删除不必要的文件,看效果还是很给力的,精简了一下,保留工程文件和应用程序及符号文件其他都选择删除。具体的批处理:if "%1"=="-h" goto _helpif "%1"=="" s

2012-12-03 20:27:24 2319

原创 扯扯内存泄漏

内存泄漏概念简单的说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了。用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元,直到程序结束,即所谓内存泄漏。 堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以

2012-12-03 20:26:18 482

原创 __stdcall、__cdecl、__fastcall三种函数调用方式

前些天在cnblogs看到《win32 api 函数参数传递过程》这篇文章,其中只举了push入栈传参的例子,索性又在VC的Debug模式下把几种函数调用方式又看了一遍,这里权当做补充,复习一下函数调用方式。其实原文中说的也没有错,毕竟win32 api是微软的函数,使用__stdcall的方式,传参都是push指令也没有什么问题。__stdcall是Pascal程序的缺省调用方式,通

2012-12-03 20:20:27 863

原创 无标题

有前人这么定义,软件=算法+数据结构,进入面向对象后更直接,软件=对象+对象+对象+...+消息。而对象是什么,是一个个类的实例化,类又是数据和方法的集合。这么说来,也可以有如下定义,游戏 = 游戏引擎+资源文件。而当今的游戏,对于显示可能使用已经成熟的渲染引擎,而对于游戏内的逻辑处理,或者用成熟的脚本解释其例如Lua,Python,要不就自己实现一套解释环境,将更多的游戏内逻辑下放到

2012-12-03 20:11:47 473

原创 调试网络程序

首现可以通过OllyDbg把程序的通讯过程进行一次分析,得到一些基础的数据,也大概能看出来逻辑流向。这里使用了OllySocketTrace这个插件,引用“The socket operations currently supported are: WSASocket, WSAAccept, WSAConnect, WSARecv, WSARecvFrom, WSASend, WSAS

2012-12-03 20:07:52 2114

原创 Intel VTune 性能分析器

跟上次提到的GPA一样,也是Intel家的东西,但是我拿到的版本只能测试Intel平台下的性能,AMD的没有去实验。Sampling Result又分为几个表,可以看到Instruction Requied(执行次数)、Clockticks(消耗的时钟时间)等信息。这时在所有的程序中找到自己要测的那一个,通常就是消耗时钟时间最多的,不是的话看名字也找得到。双击它就可以看到更

2012-12-03 20:01:55 1419

原创 Intel GPA图形分析工具

这里就不扯什么大道理了,神马DX9之类的了,还是工具介绍吧。Intel GPA,我用的版本是4.1,不光能针对集成的Intel显卡进行分析,对于Nvdia,AMD的独立显卡一样能够进行分析。GPA 监控器 - 将GPA 连接至本地或远程电脑上,以便您配置 HUD 模式和键盘快捷键。GPA 系统分析器 - 实时显示应用性能指标,位于 Microsoft DirectX 应用之上。

2012-12-03 19:59:21 7652

原创 游戏协议测试理论

协议测试:针对通信协议进行的测试,是对常规测试的一种补充。重要性:实现一些常规测试中无法实现的流程,修改通信数据包检测服务器异常处理,修改数据包的先后次序检查服务器处理流程。协议测试的主要测试点:1.数据类型溢出:通信双方对协议数据类型的解析不一致,导致内存操作错误。2.数据包构造欺骗:根据数据包的规则创建出一新的数据包,填充数据包后发给server,用来模拟client的

2012-12-03 19:53:23 6077 1

原创 Ring3/Ring0下注入方法

Ring3下若干注入方法一、CreateRemoteThread (NtCreateThreadEx)1.通过OpenProcess获得目标进程Handle2.通过VirtualAllocEx在目标进程里申请内存空间,用来写入代码3.通过WriteProcessMemory,把要注入的DLL全路径写到刚才申请的内存上4.通过CreateRemoteThread/Lo

2012-11-15 14:03:53 3576

原创 Windows DLL搜索顺序

Windows程序直接或间接通过LoadLibrary/LoadLibraryEx加载一个DLL时,Windows会按照一定的顺序去系统中搜索指定的DLL,这个顺序称之为DLL搜索顺序。下面举例A.exe调用B.dll的情况:一、系统环境影响1.如果在LoadLibrary/LoadLibraryEx调用时B.dll被指定了路径而该路径下并不存在B.dll,LoadLibrary/Lo

2012-11-13 20:09:53 1559

原创 使用Detours对LoadLibraryExW进行HOOK屏蔽全局钩子

全局钩子都是做为DLL挂接注入进程,假如应用程序A.exe安装了WH_GETMESSAGE的全局钩子,钩子函数在B.dll中,那么当其它程序在调用GetMessage函数从自己的消息队列中取消息的时候,系统发现程序A安装了WH_GETMESSAGE的全局钩子,就会检查调用GetMessage的进程是否加载了B.dll,如果没有,就调用LoadLibrary进行加载,然后调用B.dll中的钩子过程。

2012-11-12 19:21:45 4762

转载 病毒分析之中华吸血鬼

PS:出自之前收藏的文章,中华吸血鬼这个病毒已经是08年的,距今已经有4年之久,不过很多分析还是值得学习和借鉴的。“中华吸血鬼”是个蠕虫病毒,病毒通过U盘、局域网弱密码猜解、网页挂马、dll劫持等方式传播。该病毒会在%systemroot%/Tasks/ 中释放多个病毒文件,通过修改注册表键值实现开机自动启动,为了躲避杀毒软件查杀,该病毒还会关闭破坏多种主流杀毒软件和安全工具,并且会屏蔽常见安

2012-11-06 16:56:26 11996

原创 HOOK Send函数截取游戏数据包

前两天写了一个HOOK微软的加密函数然后打Log的Detours的例子,还是不够直观,这次举个简单的例子,其实完全可以应用在不加密的游戏游戏数据分析上,当然当前不加密明文传输的少之又少,此处只为学习方法。首先在VC下建立一个DLL工程,不需要使用MFC DLL,因为不需要那个框架里面的东西。然后新增一个源文件,写入相关代码#include #include #in

2012-11-01 01:25:00 9658

原创 根据进程名获得进程ID(不区分进程名大小写)

其实在应用层和驱动从呢个,根据进程名进行一些操作还是非常常见的。这里简单写了一个应用层,根据进程名,返回进程ID的小函数。#include #include #include DWORD GetProcessIdByName(LPSTR pName){ HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0

2012-10-31 23:40:52 1480

转载 游戏多开的若干对抗方法

第一,进程隐藏 部分游戏通过探测游戏客户端进程是否已经存在来防止重复打开。 游戏多开的办法为启动一个游戏客户端后,将该游戏所有启动的进程全部隐藏。(进程隐藏的办法多了,这个后面一点点学习)  第二,窗口标题修改 部分游戏通过探测游戏客户端的窗口是否已经存在来防止重复打开。 游戏多开的办法为将游戏的窗口修改为任意字符。 第三,端口隐藏 部分游戏通过打开TCP或

2012-10-31 23:00:27 3974 1

原创 基于SSDT HOOK技术的Ring0级进程保护组件设计与实现

一、背景介绍进程保护这一思想很早就出现,现在大多数的杀毒软件等安全防护软件均带有对自身进程保护的功能,这是为了防止病毒等恶意程序破坏进程的运行。相对的,很多病毒为了防止被发现或终止,提高自己的运行权限,隐藏自己、保护自己不被终止。 然而并不是只有病毒及杀毒软件有对自己的进程进行保护的需求,很多软件,如网吧、机房等的监控系统、计费系统等,以及一些必须确保自身运行过程中不被强行中断,否则会导致

2012-10-31 22:45:45 1881

原创 Detours应用实例Hook CryptSignAndEncryptMessage截取消息

由于需要查看通信过程中的明文协议,但是抓包发现有点问题,在OD下跟了下,发现使用了微软的CryptSignAndEncryptMessage对数据包进行了加密,并没有其他附加处理,那么索性使用Detours拦截这个函数,然后将相关协议数据写入文件。#include #include #include #include #define SECURITY_WIN32#include

2012-10-29 21:38:09 7508

原创 EPROCESS进程断链

本身今天说写《Windows驱动开发技术详解》第六章的笔记,但是发现第六章无非是字符串、文件、注册表,其实没有必要抄书,之前写了写笔记,也能够尝试写一点小函数练练手的,就想自己写点小例子记作笔记也是OK的。今天用Windbg的dt命令查看字符串结构的时候,顺带查询了EPROCESS结构,PEB,TEB,_RTL_USER_PROCESS_PARAMETERS这些结构。kd> dt _EPROC

2012-10-24 20:36:15 1996

原创 章五.Windows内存管理(下)

以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2012-10-22 20:44:27 768

原创 章五.Windows内存管理(中)

以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2012-10-18 21:02:45 732

原创 章五.Windows内存管理(上)

以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2012-10-17 15:03:03 626

原创 章四.驱动程序的基本结构(下)

以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2012-10-16 20:13:46 656

原创 章四.驱动程序的基本结构(上)

以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2012-10-14 22:07:16 1014

原创 章三.Windows驱动编译环境配置、安装及调试(下)--驱动加载

以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2012-10-14 20:26:24 856

原创 章三.Windows驱动编译环境配置、安装及调试(上)

以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2012-10-14 19:52:04 695

原创 章二.Windows操作驱动的基本概念(下)

以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2012-10-13 22:22:10 668

原创 章二.Windows操作驱动的基本概念(上)

以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2012-10-13 22:15:56 739

原创 章一.从两个最简单的驱动谈起

以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

2012-10-13 14:33:25 670

原创 WinDbg自动分析崩溃转储dmp文件

之前没有接触WinDbg,现在发现真乃神器啊,今天就来简单学习一下分析崩溃转储文件。毕竟是才接触Windbg,懂的命令也不是特别多,所以还是依靠自动分析命令。拓展命令analyze是一种自动分析故障的方式,它的目标是实现对故障的自动分析以及对已知问题的自动检测和分派。-v开关对信息进行详细输出,-hang开关则是对问题进行自动分析。刚好手边有一份Dmp文件,索性拿来先简单学习一下。可能

2012-10-09 15:23:44 3481 1

原创 通过Windbg利用VMware虚拟机进行双机调试

看《Windows核心编程》总是想把每一个细节都搞明白,所以调试内核是必不可少的,不想使用Win7下的本地内核调试。索性拿出《寒江独钓》配置一下虚拟机,双机调试XP系统吧。WinDbg毕竟是微软支持的调试器,虽然OllyDbg也非常优秀,但是调试内核以及系统机制,还是一点点学习WinDbg的使用吧。1.在VMware下安装纯净Win XP操作系统。2.下载符合操作系统版本的Wi

2012-10-09 13:12:51 2713

原创 通过DuplicateHandle防止文件删除

还是Ring3下的老代码,使用DuplicateHandle()获得文件句柄,复制到其他进程当中,在删除被保护文件时,会提示无法删除,在保护进程中打开。Win XP下可以打开system进程,而这个进程PID是固定的数值4;但是Win 7下却无法打开system进程,提权后也无法打开,所以这里将句柄复制到winlogon.exe进行保护。#include #include #i

2012-09-27 15:52:29 978

C语言100例 示例源码

C语言100例 示例源码,已经按照章节打包

2012-10-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除