program keygenme;
uses
Windows,Messages,CommCtrl;
{$R software.RES}
var WinClass: TWndClassA;
Inst: HINST;
hWindow: HWND;
TheMessage: TMsg;
hDrive:HWND;
hID:HWND;
hf:THandle;
htitle:HWND;
cmbChange: HWND;
cmbAbout: HWND;
cmbExit: HWND;
PaintStruct: TPaintStruct;
PaintDC: HDC;
hFont1: HFONT;
isNT:Boolean;
function StrToInt(const S: string):Integer;
var
E: Integer;
begin
Val(S, Result, E);
end;
从RegQueryValueExA到ZwQueryValueKey
对于注册表的REG_MULTI_SZ类型的数据个人感觉一直比较蛋疼,一个是因为在Delphi下竟然没有相关的函数,第二个是因为对于这类型的数据在使用ssdt hook修改数据的时候出现了很多问题。
为了明白到底是怎么处理的,于是就把相关的调用流程跟踪了一遍。至于是什么程序调用的这里就不提了,直接贴代码吧。
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 edi
103B29F9 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
这里是应用层的第一次调用,在调用的时候第一次并没有分配相应的缓冲区来存放数据。这次调用的根本目的是为了获取注册表中对应的数据的大小。
User Agent Simulator V0.1
笔记本War3全屏设置工具
用笔记本玩过War3的都知道笔记本下War3可能无法全屏显示,周末的时候我就遇到了这个问题。于是自己写了一个小工具来测试了一下,效果还是可以了。
文件校验信息:
文件名: F:\Delphi Project\War III FullScreen\War3 Screen.exe
文件大小: 723087 字节 (706.14 KB)
修改日期: 2011-07-04 11:09
版本: 1.0.0.0
MD5: bcd29e08c9b034edb789f2d662a4f409
SHA1: e49d6b02b1c7f2cd86565832e7ea00f2f7d43326
SHA256: 5e156bcfa8716b38cc4d6ad6cc7a2becbfe90bf3516468dd9de36357811d4400
CRC32: 69ea5d87