--------------------------------------------------------------------------------------------------------------------------------
3、打开插件“ApiBrieak”把注册表里面的全部六个断点都下好(调式没办法只好全部下)经过调试下“RegQueryValueExA”就可以了;注意右下角的堆栈窗口接着就是不停按F9直到如下处停下:
4、在出现“ValueName = "Name"”或“ValueName = "Pass"处“Alt+F9“返回程序领空,但要多次“Alt+F9“返回程序领空,我们就在出现“ValueName = "Date"返回;因为这三个注册表键值“Data”最后出现;
00677158 /$ 55 push ebp ; 算法CALL
00677159 |. 8BEC mov ebp,esp
0067715B |. 51 push ecx
0067715C |. B9 04000000 mov ecx,0x4
00677161 |> 6A 00 /push 0x0
00677163 |. 6A 00 |push 0x0
00677165 |. 49 |dec ecx
00677166 |.^ 75 F9 \jnz short Pact.00677161
00677168 |. 51 push ecx
00677169 |. 874D FC xchg dword ptr ss:[ebp-0x4],ecx
0067716C |. 53 push ebx
0067716D |. 56 push esi
0067716E |. 57 push edi
0067716F |. 8BF9 mov edi,ecx
00677171 |. 8955 FC mov dword ptr ss:[ebp-0x4],edx ; 注册名入ebp-0x4 (ASCII "GeekCat")
00677174 |. 8B45 FC mov eax,dword ptr ss:[ebp-0x4]
00677177 |. E8 D0DDD8FF call Pact.00404F4C
0067717C |. 33C0 xor eax,eax
0067717E |. 55 push ebp
0067717F |. 68 19736700 push Pact.00677319
00677184 |. 64:FF30 push dword ptr fs:[eax]
00677187 |. 64:8920 mov dword ptr fs:[eax],esp
0067718A |. 8BC7 mov eax,edi
0067718C |. E8 FBD8D8FF call Pact.00404A8C
00677191 |. 8B45 FC mov eax,dword ptr ss:[ebp-0x4] ; 注册名入eax (ASCII "GeekCat")
00677194 |. E8 C3DBD8FF call Pact.00404D5C ; 取注册名的长度
00677199 |. 8BF0 mov esi,eax
0067719B |. 85F6 test esi,esi
0067719D |. 7E 26 jle short Pact.006771C5
0067719F |. BB 01000000 mov ebx,0x1
006771A4 |> 8D4D EC /lea ecx,dword ptr ss:[ebp-0x14]
006771A7 |. 8B45 FC |mov eax,dword ptr ss:[ebp-0x4]
006771AA |. 0FB64418 FF |movzx eax,byte ptr ds:[eax+ebx-0x1] ; 取注册名的每一位
006771AF |. 33D2 |xor edx,edx
006771B1 |. E8 E630D9FF |call Pact.0040A29C ; 每一位的ASCII码值
006771B6 |. 8B55 EC |mov edx,dword ptr ss:[ebp-0x14]
006771B9 |. 8D45 F8 |lea eax,dword ptr ss:[ebp-0x8]
006771BC |. E8 A3DBD8FF |call Pact.00404D64 ; 把第一位的ASICC码值链接一起
006771C1 |. 43 |inc ebx
006771C2 |. 4E |dec esi
006771C3 |.^ 75 DF \jnz short Pact.006771A4
006771C5 |> 8B45 F8 mov eax,dword ptr ss:[ebp-0x8] ; ASCII链接在一起 (ASCII "4765656B436174") 设为A
006771C8 |. E8 8FDBD8FF call Pact.00404D5C
006771CD |. 8BF0 mov esi,eax
006771CF |. 85F6 test esi,esi
006771D1 |. 7E 2C jle short Pact.006771FF
006771D3 |. BB 01000000 mov ebx,0x1
006771D8 |> 8B45 F8 /mov eax,dword ptr ss:[ebp-0x8]
006771DB |. E8 7CDBD8FF |call Pact.00404D5C
006771E0 |. 2BC3 |sub eax,ebx
006771E2 |. 8B55 F8 |mov edx,dword ptr ss:[ebp-0x8]
006771E5 |. 8A1402 |mov dl,byte ptr ds:[edx+eax]
006771E8 |. 8D45 E8 |lea eax,dword ptr ss:[ebp-0x18]
006771EB |. E8 84DAD8FF |call Pact.00404C74
006771F0 |. 8B55 E8 |mov edx,dword ptr ss:[ebp-0x18]
006771F3 |. 8D45 F4 |lea eax,dword ptr ss:[ebp-0xC]
006771F6 |. E8 69DBD8FF |call Pact.00404D64
006771FB |. 43 |inc ebx
006771FC |. 4E |dec esi
006771FD |.^ 75 D9 \jnz short Pact.006771D8 ; 循环把前面得到的A字符串倒序 (ASCII "471634B6565674") 设为B
006771FF |> 8D45 F8 lea eax,dword ptr ss:[ebp-0x8]
00677202 |. 50 push eax
00677203 |. B9 04000000 mov ecx,0x4
00677208 |. BA 01000000 mov edx,0x1
0067720D |. 8B45 F4 mov eax,dword ptr ss:[ebp-0xC]
00677210 |. E8 A7DDD8FF call Pact.00404FBC
00677215 |. 8D45 F4 lea eax,dword ptr ss:[ebp-0xC]
00677218 |. 50 push eax
00677219 |. B9 04000000 mov ecx,0x4
0067721E |. BA 05000000 mov edx,0x5
00677223 |. 8B45 F4 mov eax,dword ptr ss:[ebp-0xC]
00677226 |. E8 91DDD8FF call Pact.00404FBC ; 取字符串B的前四位 (ASCII "4716")
0067722B |. 8B45 F8 mov eax,dword ptr ss:[ebp-0x8]
0067722E |. E8 29DBD8FF call Pact.00404D5C
00677233 |. 83F8 04 cmp eax,0x4 ; 把取得的字符串跟4比较
00677236 |. 7D 2F jge short Pact.00677267
00677238 |. 8B45 F8 mov eax,dword ptr ss:[ebp-0x8]
0067723B |. E8 1CDBD8FF call Pact.00404D5C ; 把不够4位的字符串计算
00677240 |. 8BD8 mov ebx,eax
00677242 |. 83FB 03 cmp ebx,0x3 ; 把取得的字符串跟3比较 不够三位通过下面的循环来计算
00677245 |. 7F 20 jg short Pact.00677267
00677247 |> 8D4D E4 /lea ecx,dword ptr ss:[ebp-0x1C]
0067724A |. 8BC3 |mov eax,ebx
0067724C |. C1E0 02 |shl eax,0x2
0067724F |. 33D2 |xor edx,edx
00677251 |. E8 4630D9FF |call Pact.0040A29C
00677256 |. 8B55 E4 |mov edx,dword ptr ss:[ebp-0x1C]
00677259 |. 8D45 F8 |lea eax,dword ptr ss:[ebp-0x8]
0067725C |. E8 03DBD8FF |call Pact.00404D64
00677261 |. 43 |inc ebx
00677262 |. 83FB 04 |cmp ebx,0x4
00677265 |.^ 75 E0 \jnz short Pact.00677247
00677267 |> 8B45 F4 mov eax,dword ptr ss:[ebp-0xC] ; 取字符串B的5-8位 (ASCII "34B6") 设为C
0067726A |. E8 EDDAD8FF call Pact.00404D5C
0067726F |. 83F8 04 cmp eax,0x4
00677272 |. 7D 2F jge short Pact.006772A3
00677274 |. 8B45 F4 mov eax,dword ptr ss:[ebp-0xC]
00677277 |. E8 E0DAD8FF call Pact.00404D5C
0067727C |. 8BD8 mov ebx,eax
0067727E |. 83FB 03 cmp ebx,0x3
00677281 |. 7F 20 jg short Pact.006772A3
00677283 |> 8D4D E0 /lea ecx,dword ptr ss:[ebp-0x20]
00677286 |. 8BC3 |mov eax,ebx
00677288 |. C1E0 02 |shl eax,0x2
0067728B |. 33D2 |xor edx,edx
0067728D |. E8 0A30D9FF |call Pact.0040A29C
00677292 |. 8B55 E0 |mov edx,dword ptr ss:[ebp-0x20]
00677295 |. 8D45 F4 |lea eax,dword ptr ss:[ebp-0xC]
00677298 |. E8 C7DAD8FF |call Pact.00404D64
0067729D |. 43 |inc ebx
0067729E |. 83FB 04 |cmp ebx,0x4
006772A1 |.^ 75 E0 \jnz short Pact.00677283 ; 这个循环跟取B前四个字符串一样的计算
006772A3 |> 8D45 F0 lea eax,dword ptr ss:[ebp-0x10]
006772A6 |. BA 30736700 mov edx,Pact.00677330 ; 固定字符串 pactr954dj5 入edx
006772AB |. E8 74D8D8FF call Pact.00404B24
006772B0 |. 8D45 DC lea eax,dword ptr ss:[ebp-0x24]
006772B3 |. 50 push eax
006772B4 |. B9 04000000 mov ecx,0x4
006772B9 |. BA 01000000 mov edx,0x1
006772BE |. 8B45 F0 mov eax,dword ptr ss:[ebp-0x10]
006772C1 |. E8 F6DCD8FF call Pact.00404FBC ; 取固定字符串的 前4位 pact 设为E
006772C6 |. FF75 DC push dword ptr ss:[ebp-0x24]
006772C9 |. 68 44736700 push Pact.00677344 ; -
006772CE |. FF75 F8 push dword ptr ss:[ebp-0x8] ; 字符串B (ASCII "4716")
006772D1 |. 8D45 D8 lea eax,dword ptr ss:[ebp-0x28]
006772D4 |. 50 push eax
006772D5 |. B9 05000000 mov ecx,0x5
006772DA |. BA 05000000 mov edx,0x5
006772DF |. 8B45 F0 mov eax,dword ptr ss:[ebp-0x10]
006772E2 |. E8 D5DCD8FF call Pact.00404FBC ; 固定字符串 pactr954dj5 的5-9位字符串 r954d 设为D
006772E7 |. FF75 D8 push dword ptr ss:[ebp-0x28]
006772EA |. 68 44736700 push Pact.00677344 ; -
006772EF |. FF75 F4 push dword ptr ss:[ebp-0xC] ; 字符串C (ASCII "34B6")
006772F2 |. 8BC7 mov eax,edi
006772F4 |. BA 06000000 mov edx,0x6
006772F9 |. E8 1EDBD8FF call Pact.00404E1C
006772FE |. 33C0 xor eax,eax
00677300 |. 5A pop edx
00677301 |. 59 pop ecx
00677302 |. 59 pop ecx
00677303 |. 64:8910 mov dword ptr fs:[eax],edx
00677306 |. 68 20736700 push Pact.00677320
0067730B |> 8D45 D8 lea eax,dword ptr ss:[ebp-0x28]
0067730E |. BA 0A000000 mov edx,0xA
00677313 |. E8 98D7D8FF call Pact.00404AB0
00677318 \. C3 retn