<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[学习随笔]]></title><description><![CDATA[如果你厌倦了眼前的一切，要么离开，要么改变它]]></description><link>https://blog.youkuaiyun.com/without2002</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; without2002]]></copyright><item><title><![CDATA[开发自己的NSZombie]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/43342675</link><guid>https://blog.youkuaiyun.com/without2002/article/details/43342675</guid><author>without2002</author><pubDate>Sat, 31 Jan 2015 18:34:10 +0800</pubDate><description><![CDATA[zombies是一种很有效的调试内存问题的技术。我之前讨论过关于zombies的实现， 今天我们将从头开始由浅入深的自建一个zombie。]]></description><category></category></item><item><title><![CDATA[Windows 进程APC学习笔记]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/6737650</link><guid>https://blog.youkuaiyun.com/without2002/article/details/6737650</guid><author>without2002</author><pubDate>Thu, 01 Sep 2011 00:16:06 +0800</pubDate><description><![CDATA[学习Windows进程，APC肯定少不了啦。

PS：由于本人才疏智浅，本文仅为个人学习笔记，如有错误，希望大牛不吝赐教。
下面是我学习APC的一点笔记。
1、什么是APC
APC就是异步过程调用的所写。据说PE格式DLL映像的装入和动态连接就是由ntdll.dll中的]]></description><category></category></item><item><title><![CDATA[记录两个函数]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/6730895</link><guid>https://blog.youkuaiyun.com/without2002/article/details/6730895</guid><author>without2002</author><pubDate>Mon, 29 Aug 2011 22:55:03 +0800</pubDate><description><![CDATA[直接贴WRK的源码吧，包括注释
NTSTATUS
IoGetDeviceObjectPointer(
    IN PUNICODE_STRING ObjectName,
    IN ACCESS_MASK DesiredAccess,
    OUT PFILE_O]]></description><category></category></item><item><title><![CDATA[Windows LPC]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/6713520</link><guid>https://blog.youkuaiyun.com/without2002/article/details/6713520</guid><author>without2002</author><pubDate>Wed, 24 Aug 2011 01:27:28 +0800</pubDate><description><![CDATA[昨天心血来潮看了下LPC，查了些资料，发现涉及到的东西真不少，先记录下吧，研究清楚了再继续。
LPC通信的基本步骤大概如下：
1. NtCreatePort 来创建一个命名端口，这个端口叫连接端口。
2.服务器通过NtListenPort来监听这个连接端口以获得新的通信请求]]></description><category></category></item><item><title><![CDATA[一年啦]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/6652394</link><guid>https://blog.youkuaiyun.com/without2002/article/details/6652394</guid><author>without2002</author><pubDate>Tue, 02 Aug 2011 01:22:31 +0800</pubDate><description><![CDATA[与其每天碌碌无为，不如好好做点事，好好看点书，好好看点代码。切忌浮躁。路漫漫。]]></description><category></category></item><item><title><![CDATA[windbg调试内核函数线程间切换问题]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/6303614</link><guid>https://blog.youkuaiyun.com/without2002/article/details/6303614</guid><author>without2002</author><pubDate>Tue, 05 Apr 2011 22:52:00 +0800</pubDate><description><![CDATA[<br /><br />问题：在用windbg+vmare做内核调试的时候，会出现多线程切换的情况，导致调试一个线程的时候F10几下以后就不再是同一个线程了，这样很大程度上影响了正常的调试。<br /> <br />解决方法：1、可以通过对进程或线程下断点：bp /p Eprocess  Address  bp /t Ethread Address，我一般都用的这种<br />  2、可以利用脚本，这种方法我也没用过，主要是不懂windbg脚本<br />  3、最后一种也是比较笨的一种方法，就是在跳转处下]]></description><category></category></item><item><title><![CDATA[Windows驱动启动类型]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/6290527</link><guid>https://blog.youkuaiyun.com/without2002/article/details/6290527</guid><author>without2002</author><pubDate>Thu, 31 Mar 2011 01:02:00 +0800</pubDate><description><![CDATA[<br />StartType=start-codeSpecifies when to start the driver as one of the following numerical values, expressed either in decimal or, as shown here, in hexadecimal notation.0x0 (SERVICE_BOOT_START)Indicates a driver started by the operating system loader.]]></description><category></category></item><item><title><![CDATA[利用VA实现VS编写WDK代码高亮和自动提示功能]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/6269725</link><guid>https://blog.youkuaiyun.com/without2002/article/details/6269725</guid><author>without2002</author><pubDate>Wed, 23 Mar 2011 01:54:00 +0800</pubDate><description><![CDATA[<br /><br />习惯了VS写代码的同学们肯定对Visual Assist X不会陌生。暂且让我们讲其称之为VAX插件吧。那么，默认情况下，VAX是不支持DDK/WDK代码高亮和职能提示的。不提示也就罢了，还会在函数和关键字下面画波浪线，给人的视觉效果很不好。其实，可以很简单的实现VAX支持DDK/WDK高亮。<br />首先，打开VS，选择VAX的Options，然后选择Projects下面的C/C++ Directories，在Platform下面选择Custom，然后点击新建文件夹的图标添加DD]]></description><category></category></item><item><title><![CDATA[总结下windbg的常用命令]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/6196956</link><guid>https://blog.youkuaiyun.com/without2002/article/details/6196956</guid><author>without2002</author><pubDate>Mon, 21 Feb 2011 01:36:00 +0800</pubDate><description><![CDATA[1.启动1)直接调试: gdb program [core]cdb program or cdb -z DumpFile2)attach方式gdb attach pidcdb -pn ExeName or cdb -p pid2.显示堆栈GDB: btCDB: k堆栈命令堆栈命令都是K开头k 使用K命令进行栈回溯kL 和上面一样，只是省略了源代码段 L 一定要大写kb L 还是回溯，显示前3个参数（只是机械的按ebp+8,ebp+0xC,ebp+0x10取三字值，不判断），L意思和上面一样。kp;kP 把参]]></description><category></category></item><item><title><![CDATA[【转帖】一个函数通解WINDOWS原理.]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/6177447</link><guid>https://blog.youkuaiyun.com/without2002/article/details/6177447</guid><author>without2002</author><pubDate>Thu, 10 Feb 2011 17:08:00 +0800</pubDate><description><![CDATA[标 题: 【原创】一个函数通解WINDOWS原理.作 者: qiyewenjie时 间: 2010-10-10,19:00:39链 接: http://bbs.pediy.com/showthread.php?t=121973PS：感谢qiyewenjie这么详细的分析这是本人第一篇论文，称不上什么技术论文，都是关于windows xp的一些理论知识。由于学习编程没多久，本篇都是参考网上资料，MSDN，并结合自己的理解写下，本人知识有限，难免会有很多错误和不全面的地方，大牛们勿笑话...，虽然这些东西在网上]]></description><category></category></item><item><title><![CDATA[最近]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/6177217</link><guid>https://blog.youkuaiyun.com/without2002/article/details/6177217</guid><author>without2002</author><pubDate>Thu, 10 Feb 2011 15:47:00 +0800</pubDate><description><![CDATA[最近有点乱，可能是长假过后的后遗症吧。新的一年开始了，该好好奋斗了，为自己加加油。有空来这也写点东西。路漫漫其修远兮]]></description><category></category></item><item><title><![CDATA[SSDT HOOK中的几个宏]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/5797691</link><guid>https://blog.youkuaiyun.com/without2002/article/details/5797691</guid><author>without2002</author><pubDate>Mon, 09 Aug 2010 00:20:00 +0800</pubDate><description><![CDATA[SSDT HOOK中的几个宏#define GetSystemFunc(FuncName) KeServiceDescriptorTable.ServiceTableBase[*(PULONG)((PUCHAR)FuncName+1)]#define GetIndex(_Function) *(PULONG)((PUCHAR)_Function+1)#define HookOn(_Old, _New)  /       (PVOID) InterlockedExchange( (PLONG) &Mapped]]></description><category></category></item><item><title><![CDATA[(转)反调试技术]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/5719344</link><guid>https://blog.youkuaiyun.com/without2002/article/details/5719344</guid><author>without2002</author><pubDate>Wed, 07 Jul 2010 19:12:00 +0800</pubDate><description><![CDATA[转自：http://zhidao.baidu.com/question/97839146.html1.程序窗口句柄检测原理:用FindWindow函数查找具有相同窗口类名和标题的窗口,如果找到就说明有OD在运行//********************************************//通过查找窗口类名来实现检测OllyDBG//********************************************function AntiLoader():Boolean;constOl]]></description><category></category></item><item><title><![CDATA[花指令介绍]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/5539129</link><guid>https://blog.youkuaiyun.com/without2002/article/details/5539129</guid><author>without2002</author><pubDate>Wed, 28 Apr 2010 15:21:00 +0800</pubDate><description><![CDATA[本文作者：sodme本文出处：http://blog.youkuaiyun.com/sodme声明：本文可以不经作者同意任意转载、复制、引用。但任何对本文的引用，均须注明本文的作者、出处以及本行声明信息。可能很多人都听说过花指令，但限于平时的开发所限，可能较少接触到。日前，跟同事讨论了一些有关花指令的问题，现将自己的体会总结一下。这篇文章将讨论以下问题：一、什么是花指令？它的原理是什么？二、在什么]]></description><category></category></item><item><title><![CDATA[createremotethread()远程注入dll]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/5490902</link><guid>https://blog.youkuaiyun.com/without2002/article/details/5490902</guid><author>without2002</author><pubDate>Thu, 15 Apr 2010 22:46:00 +0800</pubDate><description><![CDATA[上一篇文章是转载的，主要是为了尝试远程注入dll。其实方法很多，好像《Windows核心编程》上有讲。我来讲讲自己用过的方法吧。大概说来就是运用createremotethread()来远程创建一个线程，然后利用线程的绑定函数来loadLibrary()一个dll，如果想在dll中做些操作的话，可以在dllmain()中的DLL_PROCESS_ATTACH case中去做一些操作。注意，]]></description><category></category></item><item><title><![CDATA[createremotethread讲解（转）]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/5486560</link><guid>https://blog.youkuaiyun.com/without2002/article/details/5486560</guid><author>without2002</author><pubDate>Wed, 14 Apr 2010 21:05:00 +0800</pubDate><description><![CDATA[要实现线程的远程注入必须使用Windows提供的CreateRemoteThread函数来创建一个远程线程该函数的原型如下：HANDLE CreateRemoteThread(     HANDLE hProcess,     LPSECURITY_ATTRIBUTES lpThreadAttributes,     SIZE_T dwStackSize,     LPTHREAD_START_R]]></description><category></category></item><item><title><![CDATA[Windows应用程序启动函数]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/5466652</link><guid>https://blog.youkuaiyun.com/without2002/article/details/5466652</guid><author>without2002</author><pubDate>Fri, 09 Apr 2010 12:41:00 +0800</pubDate><description><![CDATA[Windows应用程序必须有一个在程序启动时调用的进入入口函数。可以使用的函数有四个：main()wmain()winmain()wwinmain()函数的具体定义可以查阅MSDN。但是在使用VC++编译连接程序的时候，IDE还会在入口函数之前加一个文件启动函数。与上面相对应的启动函数是mainCRTStartup()wmainCRTSartup()winm]]></description><category></category></item><item><title><![CDATA[关于Hook  (转)]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/5442327</link><guid>https://blog.youkuaiyun.com/without2002/article/details/5442327</guid><author>without2002</author><pubDate>Thu, 01 Apr 2010 17:21:00 +0800</pubDate><description><![CDATA[关于Hook 一、基本概念：    钩子(Hook)，是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息，而且所监视的窗口可以是其他进程所创建的。当消息到达后，在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。    钩子实际上是一个处理消息的程序段，通过系统调用，把它挂入系统。每当特定的消息发出，在没有到达目的窗]]></description><category></category></item><item><title><![CDATA[MOVSX说明：带符号扩展传送指令]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/5441241</link><guid>https://blog.youkuaiyun.com/without2002/article/details/5441241</guid><author>without2002</author><pubDate>Thu, 01 Apr 2010 13:47:00 +0800</pubDate><description><![CDATA[MOVSX说明：带符号扩展传送指令  符号扩展的意思是,当计算机存储某一个有符号数时,符号位位于该数的第一位,所以，当扩展一个负数的时候需要将扩展的高位全赋为1.对于正数而言，符号扩展和零扩展MOVZX是一样的，将扩展的高位全赋为0.   例子:MOV BL,80H          MOVSX AX,BL   AX == 0FF80H    可能初学者奇怪80H不是正数吗?FF怎么来的?看下]]></description><category></category></item><item><title><![CDATA[VC++连接错误2001  error LNK2001: unresolved external symbol _WinMain@16]]></title><link>https://blog.youkuaiyun.com/without2002/article/details/5441238</link><guid>https://blog.youkuaiyun.com/without2002/article/details/5441238</guid><author>without2002</author><pubDate>Thu, 01 Apr 2010 13:47:00 +0800</pubDate><description><![CDATA[VC++链接错误： error LNK2001: unresolved external symbol _WinMain@16（转）2009-09-16 10:39学习VC＋＋时经常会遇到链接错误LNK2001，该错误非常讨厌，因为对于编程者来说，最好改的错误莫过于编译错误，而一般说来发生连接错误时，编译都已通过。产生连接错误的原因非常多，尤其LNK2001错误，常常使人不明其所以然。如果不深入地]]></description><category></category></item></channel></rss>