aspr 1.3x注册笔记
刚才整理下硬盘找到了这个么东西,以前写的笔记来的,发出来和大家共享下:
******************************************第一种情况******************************************
打开内存异常项,shift+f9直到出现识别码:
0012FF40 00000000
0012FF44 00C69360 ASCII "Qwi0PABwYqk="
0012FF48 00C6932C ASCII "A3A8754B-A0E0"
出现后再按2次shift+f9,然后在code段处下F2断点shift+f9再次运行后中断在如下地址:
005321B0 55 PUSH EBP
005321B1 8BEC MOV EBP,ESP
005321B3 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ;这里就是注册名信息
[EBP+8]时有两种情况一种是[ebp+8]对应的地址为注册名地址,另一种就是[[ebp+8]]标志为1则表示为注册,0未注册
005321B6 85C0 TEST EAX,EAX
005321B8 74 0C JE SHORT 005321C6
005321BA 8038 00 CMP BYTE PTR DS:[EAX],0
005321BD 74 07 JE SHORT 005321C6
005321BF C605 686A5700 0>MOV BYTE PTR DS:[576A68],1
005321C6 8B15 5C6A5700 MOV EDX,DWORD PTR DS:[576A5C]
005321CC 8915 586A5700 MOV DWORD PTR DS:[576A58],EDX
005321D2 A3 5C6A5700 MOV DWORD PTR DS:[576A5C],EAX
005321D7 5D POP EBP
005321D8 C2 0400 RETN 4
返回后看到:
00C3CAB9 50 PUSH EAX ; 这里push 注册名地址或标记为注册的地址
00C3CABA 8B47 04 MOV EAX,DWORD PTR DS:[EDI+4]
00C3CABD FFD0 CALL EAX ; 这里就是call检测的代码 EAX==005321B0
00C3CABF A1 E097C400 MOV EAX,DWORD PTR DS:[C497E0]
00C3CAC4 8B40 48 MOV EAX,DWORD PTR DS:[EAX+48]
******************************************END******************************************
******************************************第二种情况******************************************
打开内存异常项,shift+f9直到出现识别码:
0012FF40 00000000
0012FF44 00B39534 ASCII "Qwi0PABwYqk="
0012FF48 00B39500 ASCII "A3A8754B-A0E0"
出现后再按2次shift+f9,然后在code段处下断,下断后Shift+f9运行后中断如下地址:
00424C17 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4] ; 中断在这里,这里[esp+4]就是保存RegName的地址
00424C1B 81EC 08020000 SUB ESP,208
00424C21 53 PUSH EBX
00424C22 33DB XOR EBX,EBX
00424C24 55 PUSH EBP
00424C25 881D 28DE4900 MOV BYTE PTR DS:[49DE28],BL
00424C2B 881D 2CDF4900 MOV BYTE PTR DS:[49DF2C],BL ; 这里RegName save as 地址[49DF2C]
00424C31 881D 30E04900 MOV BYTE PTR DS:[49E030],BL
00424C37 8A08 MOV CL,BYTE PTR DS:[EAX]
00424C39 3ACB CMP CL,BL
00424C3B 56 PUSH ESI
00424C3C 57 PUSH EDI
返回后:
00AED18A 50 PUSH EAX ; 这里push 注册名地址
00AED18B 8B47 04 MOV EAX,DWORD PTR DS:[EDI+4]
00AED18E FFD0 CALL EAX ;这里就是call 424c17
00AED190 A1 E0A7AF00 MOV EAX,DWORD PTR DS:[AFA7E0]
00AED195 8B40 48 MOV EAX,DWORD PTR DS:[EAX+48]
00AED198 50 PUSH EAX
对于第二种情况的Inline Patch 可以在返回后直接向下找到类似这样的代码:
00AED5AB 33C9 XOR ECX,ECX
00AED5AD BA 54D7AE00 MOV EDX,0AED754 ; ASCII ".key"
00AED5B2 B8 00000080 MOV EAX,80000000
00AED5B7 E8 CCC5FEFF CALL 00AD9B88
00AED5BC 68 64D7AE00 PUSH 0AED764 ; ASCII "regfile"
00AED5C1 33C9 XOR ECX,ECX
00AED5C3 BA 54D7AE00 MOV EDX,0AED754 ; ASCII ".key"
00AED5C8 B8 00000080 MOV EAX,80000000
00AED5CD E8 E6C5FEFF CALL 00AD9BB8
......
再向下不远处就可以patch了
00AED68F E8 3A000000 CALL 00AED6CE
00AED694 52 PUSH EDX
00AED695 81DA 60BB3D58 SBB EDX,583DBB60 ; 这里可以作为patch点
这里patch的话,就这样写:
MOV [49DF2C],'evol'
00AED69B 8B5424 10 MOV EDX,DWORD PTR SS:[ESP+10]
******************************************END******************************************