WRK 1.2 Souce Code
从RegQueryValueExA到ZwQueryValueKey
对于注册表的REG_MULTI_SZ类型的数据个人感觉一直比较蛋疼,一个是因为在Delphi下竟然没有相关的函数,第二个是因为对于这类型的数据在使用ssdt hook修改数据的时候出现了很多问题。
为了明白到底是怎么处理的,于是就把相关的调用流程跟踪了一遍。至于是什么程序调用的这里就不提了,直接贴代码吧。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 103B29D8 8B4C24 18 mov ecx,dword ptr ss:[esp+0x18] 103B29DC 8B3D 34F0EE10 mov edi,dword ptr ds:[<&ADVAPI32.RegQuer>; ADVAPI32.RegQueryValueExA 103B29E2 894424 14 mov dword ptr ss:[esp+0x14],eax 103B29E6 8D4424 14 lea eax,dword ptr ss:[esp+0x14] 103B29EA 50 push eax 103B29EB 6A 00 push 0x0 103B29ED 6A 00 push 0x0 103B29EF 6A 00 push 0x0 103B29F1 68 088FFD10 push iTunes_1.10FD8F08 ; ASCII "SystemBiosVersion" 103B29F6 51 push ecx 103B29F7 FFD7 call edi103B29F9 85C0 test eax,eax 103B29FB 75 48 jnz XiTunes_1.103B2A45 103B29FD 8B5424 14 mov edx,dword ptr ss:[esp+0x14] 103B2A01 52 push edx 103B2A02 50 push eax 103B2A03 E8 7820CDFF call iTunes_1.10084A80 103B2A08 50 push eax 103B2A09 FF15 84FEEE10 call dword ptr ds:[<&KERNEL32.HeapAlloc>>; ntdll.RtlAllocateHeap 103B2A0F 8B4C24 18 mov ecx,dword ptr ss:[esp+0x18] 103B2A13 8BF0 mov esi,eax 103B2A15 8D4424 14 lea eax,dword ptr ss:[esp+0x14] 103B2A19 50 push eax 103B2A1A 56 push esi 103B2A1B 6A 00 push 0x0 103B2A1D 6A 00 push 0x0 103B2A1F 68 088FFD10 push iTunes_1.10FD8F08 ; ASCII "SystemBiosVersion" 103B2A24 51 push ecx 103B2A25 FFD7 call edi |
这里是应用层的第一次调用,在调用的时候第一次并没有分配相应的缓冲区来存放数据。这次调用的根本目的是为了获取注册表中对应的数据的大小。
阅读更多…
使用VMWare GDB和IDA调试Windows内核
VMWare的GDB调试器功能比较简单也比较基础,该调试器并不知道处理器和线程的任何信息(对于Windows系统),因而如果想要得到一些高等级的信息,我们需要自己做一些额外的工作。本文主要讲解了如何使用IDAPython脚本来让IDA处理已经加载的模块列表和加载符号库。
设置VM来进行调试
在进行这一步之前首先要保证你已经有了一个已经安装好的Windows(32位)的操作系统。在开始调试之前,首先要拷贝你想要看到符号的模块到系统目录下,如果你不确定要复制那些文件,可以将如下的文件复制到虚拟机目录下:位于System32目录下的nt*.exe和hal.dll文件、整个System32\drivers目录。在这里我将文件复制到了E:\虚拟机系统\Windows 7\Shar4ed dll\目录下。
编辑虚拟机的.vmx文件来激活GDB调试器功能:
图01
阅读更多…
USB over Network (Server) & VMWare WorkStation 7.1 BSOD
这几天一直在折腾USB over Network (Server)驱动的卸载问题,发现不管是手工卸载还是使用自身的安装程序进行卸载。重新安装的时候都会导致蓝屏。最后在对CrashDump文件进行分析之后发现是vm的一个usb驱动的问题,卸载之后问题就解决了。天哪,竟然会犯这种错误~
出错误的驱动是这个文件:










![Validate my RSS feed [Valid RSS]](http://www.h4ck.org.cn/valid-rss-rogers.png)

