SyGate3.0ÆƽâÎĵµ
ʹÓù¤¾ß
Softice 3.0
w32dasm 8.93
ÆƽâÕß:Âò²Ýñ(wancun@sina.com)
SyGate3.0ÊÇÒ»¸öºÜºÃµÄ´úÀí·þÎñÈí¼þ£¬Ëü°Ñ¿ÉÒÔÈÃÓû§ÓÃһ̨modemÉÏÍø¹²Ïí¡£Õâ¸öÈí
¼þÓÐ31ÌìµÄʹÓÃÏÞÖÆ£¬Ò²ÓÐʹÓôÎÊýµÄÏÞÖÆ,¼¸¸ö²¢ÇÒËüºÃÏóÔÚ×¢²á±íÖÐдÈëÁËÒ»¸öɶ,
·´ÕýÎÒÖØ×°²»ÄÜʹÓ㬲»Ë¬,ÐÖµÜÃǼ¸¸öÔÚÍøÉÏÏëÓÃÒ»¸öСèͬʱÔÚÍøÉÏÉñÓεĸоõ²Åû
¼¸Ìì¾ÍÒª½áÊøÁË,¿É²»ÐÐ.µÃÏëÏë°ì·¨.¿´À´µÃ¸úSygate¹«Ë¾Çë¸ö°²ÁË.ÒòΪÕâ¸öÈí¼þµÄ×¢²á
±ØÐëÔÚÍøÉϽøÐУ¬ÏȲ¦ºÅÉÏÍøÔÙÊäÈë×¢²áÂë,Õâ¸ö³ÌÐò¸ú×¢²áÔËËãÏà¹ØµÄ,·Ö±ðÊÇSerial No
ÓÐÁ½¸öÊäÈëÎı¾¿ò,»¹ÓÐÒ»¸öÊÇRegistrationÎı¾¿ò.ÎÒÔÚËüÃÇÖÐÊäÈëÈçÏÂ
Serial No: 18181818 41841888
Registration: 94189418
ΪɶÕâÑùÊäÈë,ºÇºÇ.ÎÒûǮǮȥע²áѽ,ËûÃÇÒªÕâÑù²¦ºÅÑéÖ¤.µ±È»ÏÈÈ¥¸øSygate¹«Ë¾µÀ¸ö
¼ªÏé.(²»ÊÇСµÜÉá²»µÃ×¢²áµÄǮǮ,²»Å¸÷λЦ»°,ÎÒÁ¬ÕæµÄ$¶¼Ã»Ãþ¹ý.ÄÄÓÐǮǮȥע²áÂï.
µÈ¶þ»ØÎÒÊÖÍ·ÓÐ$ÁËÒ»¶¨.....¹§Ï²·¢²Æ!),ÏÈÀñ...¶øºóÔÚSofticeµÄºÚÁ³ÏÂÃæµÄ¶Ïµã
bpx hmemcpy
È»ºóCtrl+DÇлØ,°´×¢²á°´Å¥,¶ÏÏÂÁË
¾Í°´F12»Øµ½³ÌÐò¿Õ¼ä.³ÌÐòÏÈ°ÑÄãÊäÈëµÄ
¶«Î÷ת»»ÎªÆäÏàÓ¦µÄ16½øÖƱíʾµÄÓеãÏñBCDÂëµÄÏàÓ¦±íʾ¡£È»ºóÔÙ×ßÒ»»á¿ÉÒÔ¿´¼ûÈçÏ´úÂë:
:0040F1CE 50 push eax
:0040F1CF 57 push edi
* Reference To: SgSrvAd.SgSetLicense, Ord:001Fh
|
:0040F1D0 E883490000 Call 00413B58//Õâ¸öµ÷ÓþÍÊǵ÷Óýӿں¯ÊýÔÚSgSrvAd.dllÎļþÖÐ,Íê³É×¢²á
//ÏÂÃæ¾ÍÒª½øÈ¥×·×¢²áÁË!ÎÒÌø½øÕâ¸ödllÈ¥×·×¢²áÂë
:0040F1D5 8BF0 mov esi, eax
:0040F1D7 8B442424 mov eax, dword ptr [esp+24]
:0040F1DB 85C0 test eax, eax//·µ»Øeax=0¾ÍÏÔʾע²á³É¹¦,
:0040F1DD 7479 je 0040F258
:0040F1DF 3D37FFFFFF cmp eax, FFFFFF37
:0040F1E4 7533 jne 0040F219
* Possible Reference to String Resource ID=02000: "SyGate Message"
|
:0040F1E6 68D0070000 push 000007D0
:0040F1EB 8D4C2414 lea ecx, dword ptr [esp+14]
:0040F1EF E83EC90100 call 0042BB32
*********************************************************************************************
ÏÂÃæ¾ÍÊÇÔÚdllÖеĴúÂ벿·ÖÅжϺ¯ÊýÔÚSgSrvAd.dllÖеĺ¯ÊýSgSetLicense(),ÀïµÄÂþÂþ×ßû¶à¾Ã¾Í¿ÉÒÔ×ßµ½
ÕâÀïÁË,ÈÃÎÒÀ´Ò»µãÒ»µãµÄ½â¶ÁËü.
* Referenced by a CALL at Addresses:
|:100056A5 , :10009C85
|
:10005630 53 push ebx
:10005631 8B5C240C mov ebx, dword ptr [esp+0C]
:10005635 57 push edi
:10005636 8B7C240C mov edi, dword ptr [esp+0C]
:1000563A 53 push ebx//µÚÒ»²¿·ÖÊäÈëµÄ×Ö·û³¤¶È
:1000563B 57 push edi//ÕâÀïÊÇÊäÈëµÄserial NoµÚÒ»²¿·ÖÊäÈëת»»³ÉÏàÓ¦16½øÖÆBCDÂë
:1000563C E86FFFFFFF call 100055B0//ÂíÉϸú½øÍûϱ߿´£¬Õâ¸öµ÷ÓÃÊÇÑéÖ¤µÚÒ»²¿·ÖÊäÈë
//µÄÓÐЧÐÔºÍÉú³ÉµÚ¶þ²¿·Ö×¢²áÂëµÄ
:10005641 83C408 add esp, 00000008
:10005644 85C0 test eax, eax//»ØÀ´ºóÕâ¸öҪΪ0²ÅÈÃÄãһ·˳·ç¹þ
:10005646 753B jne 10005683
:10005648 837C241804 cmp dword ptr [esp+18], 00000004
:1000564D 752C jne 1000567B
:1000564F 8B442414 mov eax, dword ptr [esp+14]
:10005653 56 push esi//Registration²¿·ÖÊäÈëµÄBCDÂëת»»,94189418
:10005654 53 push ebx//µÚÒ»²¿·ÖÊäÈëµÄ×Ö·û³¤¶È
:10005655 57 push edi//ÆäÄÚÊÇ16½øÖÆBCD±íʾµÄ18181818
:10005656 8B30 mov esi, dword ptr [eax]
:10005658 E8B3FFFFFF call 10005610//Õâ¸öÒ²Òª¸ú½øÄãÏÈÍùÏÂÌø¹þ,Óöµ½ret²Å»ØÀ´(Éú³ÉRegistration²¿·Ö×¢²áÂë)
:1000565D 83C408 add esp, 00000008
:10005660 3BC6 cmp eax, esi//ÕâÁ½¸öÒªÏàµÈ,²ÅÐÐÓ´,ÄĸöΪ׼?µ±È»ÊÇeaxÖеÄ,Ëü²ÅÊÇÕæµÄÓ´!(esiÖеÄ
94189418Sygate²»ÊÕ¹þ)
:10005662 5E pop esi
:10005663 7516 jne 1000567B//µ±È»ÕâÀï¿É²»ÄÜÌøµÄ¹þ
:10005665 8B0F mov ecx, dword ptr [edi]//»¹Óиö»ú¹ØÓ´...¶Ô18181818Õâ¶ÎÊäÈëÓÐÒ»¸öºÜÃÔÐŵÄÒªÇó¹þ,
Sygate¹«Ë¾Öƶ©µÄ¹þ.
:10005667 BA00000040 mov edx, 40000000//µÚÒ»²¿·ÖµÚÒ»¸ö×Ö·û£¬Ò»¶¨²»ÄÜ´óÓÚ4(¿´À´SygateȷʵÓеã¼É»äµÄ¹þ
,ÊäÈëµÚÒ»¸ö´óÓÚ4µÄ»°Ëü²»¸ßÐ˵ÄÓ´)£¬Ò²ÍæÍ꣡£¡£¡
:1000566C 81E1000000F0 and ecx, F0000000
:10005672 5F pop edi
:10005673 3BD1 cmp edx, ecx//´óÓÚ4¾ÍÊÇÓ°ÏìS±êÖ¾
:10005675 5B pop ebx
:10005676 1BC0 sbb eax, eax//ÕâÌõÖ¸ÁîÒª±»S±êÖ¾Ó°Ïì
:10005678 F7D8 neg eax//µÚÒ»¸öÊäÈë×Ö·û´óÓÚ4,¾ÍÃ׸ÂÁË
:1000567A C3 ret
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:1000564D(C), :10005663(C)
|
:1000567B 5F pop edi
:1000567C B802000000 mov eax, 00000002
:10005681 5B pop ebx
:10005682 C3 ret
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10005646(C)
|
:10005683 5F pop edi
:10005684 B801000000 mov eax, 00000001
:10005689 5B pop ebx
:1000568A C3 ret
/***************************************************************************/
µÚ¶þ²¿·ÖÉú³É´úÂëÇø
* Referenced by a CALL at Address:
|:1000563C
|
:100055B0 837C240808 cmp dword ptr [esp+08], 00000008//µÚÒ»²¿·Ö±ØÐëΪ8¸ö×Ö·û
:100055B5 7406 je 100055BD //²»Ìø¾ÍÍæÍê
:100055B7 B801000000 mov eax, 00000001//Äã²»ÏàÐŵ½ÁËÕâÀï·µ»Øeax=1¾ÍҪϴ°×
:100055BC C3 ret//ÖªµÀÁË°Ñ,ΪɶÊäÈë'18181818',µÚÒ»²¿·ÖÊäÈë±ØÐëÊÇ8¸ö×Ö·û²ÅÈÃ
//Äã¹ý¹þ
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:100055B5(C)
|
:100055BD 56 push esi
:100055BE 8B742408 mov esi, dword ptr [esp+08]
:100055C2 57 push edi
:100055C3 8B06 mov eax, dword ptr [esi]//BCDÂë18181818×¢²áÂëµÚÒ»²¿·Ö
:100055C5 50 push eax
:100055C6 E805FFFFFF call 100054D0//Éú³É×¢²áÂëµÚ¶þ²¿·Ö£¬¸ú½ø¹þ
:100055CB 8BC8 mov ecx, eax//·µ»ØÖµ¸øecx
:100055CD 83C404 add esp, 00000004
:100055D0 8BD1 mov edx, ecx
:100055D2 C1E834 shr eax, 34
:100055D5 C1EA28 shr edx, 28
:100055D8 8D0440 lea eax, dword ptr [eax+2*eax]
:100055DB 8D1492 lea edx, dword ptr [edx+4*edx]
:100055DE 03C2 add eax, edx
:100055E0 8BD1 mov edx, ecx
:100055E2 C1EA1C shr edx, 1C
:100055E5 C1E90E shr ecx, 0E
:100055E8 8D3C92 lea edi, dword ptr [edx+4*edx]
:100055EB 8D147A lea edx, dword ptr [edx+2*edi]
:100055EE 5F pop edi
:100055EF 03C2 add eax, edx
:100055F1 03C1 add eax, ecx
:100055F3 8B4E04 mov ecx, dword ptr [esi+04]//'41841888'
:100055F6 25FFFF0F00 and eax, 000FFFFF//Õâ¸öÖµ¾ÍÊǵÚÒ»²¿·ÖÉú³ÉµÄ
//µÚ¶þ²¿·Ö£¬Ò»¶¨ÒªµÈÓÚesi+04
:100055FB 81E1FFFF0F00 and ecx, 000FFFFF
:10005601 2BC1 sub eax, ecx
:10005603 5E pop esi
:10005604 C3 ret
/*************************************************************************/
* Referenced by a CALL at Address:
|:100055C6
|
//Ëã·¨²¿·Ö:Îı¾µÄµÚ¶þ²¿·Ö¸ú18181818ÏàÆ¥ÅäµÄ×¢²áÂë¾ÍÓÉÕâÀïÔËËãµÃÀ´,Äã¿ÉÒÔ°ÑËüµ±×öÒ»¸öºÚÏä.ÔÚÕâÀïÍâ
//½çÊäÈëÖ»ÓÐÒ»¸ö18181818,(µ±È»ÄãÒ²¿ÉÒÔ°ÑËüµ±×öһͷÄÌÅ£,³ÔµÄÊÇ18181818,¼·³öµÄ¾ÍÊÇ......:),Æäʵ³ÌÐò
//ÔÚÕâÀï×öµÄÒ²¾ÍÊÇ×öµÄ¼¸¸öÒì»ò¼ÓÉÏСѧ¾Í»áµÄËÄÔò»ìºÏÔËËãÀ,ÎÒÀÁ!¾Í²»·ÖÎöÁ˹þ,ÓÐÊýѧÐËȤµÄÂþÂþ¿´.
:100054D0 8B4C2404 mov ecx, dword ptr [esp+04] \\ BCD 18181818
:100054D4 56 push esi
:100054D5 8BC1 mov eax, ecx
:100054D7 3543512400 xor eax, 00245143
:100054DC 0FAFC1 imul eax, ecx
:100054DF 0FAFC1 imul eax, ecx
:100054E2 8BD0 mov edx, eax
:100054E4 C1E20B shl edx, 0B
:100054E7 2BD0 sub edx, eax
:100054E9 8D1492 lea edx, dword ptr [edx+4*edx]
:100054EC 8D1490 lea edx, dword ptr [eax+4*edx]
:100054EF 8D1452 lea edx, dword ptr [edx+2*edx]
:100054F2 8DB450777A0600 lea esi, dword ptr [eax+2*edx+00067A77]
:100054F9 B865A62573 mov eax, 7325A665
:100054FE 0FAFF1 imul esi, ecx
:10005501 F7E1 mul ecx
:10005503 0FAFF1 imul esi, ecx
:10005506 81EE6E1A0000 sub esi, 00001A6E
:1000550C 0FAFF1 imul esi, ecx
:1000550F C1EA11 shr edx, 11
:10005512 8BC2 mov eax, edx
:10005514 C1E008 shl eax, 08
:10005517 03C2 add eax, edx
:10005519 8D0440 lea eax, dword ptr [eax+2*eax]
:1000551C 8D8406B1110000 lea eax, dword ptr [esi+eax+000011B1]\\µÚ¶þ²¿·Ö¼·³öÀ´µÄÔÚeaxÖÐ
:10005523 5E pop esi
:10005524 C3 ret
/**************************************************************************/
/**************************************************************************/
//µÚÈý²¿·ÖÉú³É´úÂëÇø
10005610 837C240808 cmp dword ptr [esp+08], 00000008//µÚ¶þ´ÎÅжÏÄãÊäÈëÊÇ×Ö·ûÊýÊÇ8Âð?
:10005615 7406 je 1000561D//ÕâÀïÒªÌø¹ýÈ¥¹þ,²»È».....
:10005617 B801000000 mov eax, 00000001
:1000561C C3 ret// ºÇºÇ~¿´À´Sygate¹«Ë¾¸úÎÒÃÇÒ»Ñù,¶ÔÕâÑùµÄ¼ªÏéÊýÖµ8Ò²ÊÇϲ»¶¹þ
//.µ«Äã¿É²»Òª°Ñ´úÂë×ßµ½ÕâÒ»ÐÐÓ´!
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10005615(C)
|
:1000561D 8B442404 mov eax, dword ptr [esp+04]
:10005621 8B08 mov ecx, dword ptr [eax]
:10005623 51 push ecx//¸ù¾ÝµÚÒ»²¿·ÖÉú³É
10005624 E807FFFFFF call 10005530//¸ú½ø¾ÍÊÇÉú³ÉRegistrationµÄËã·¨Á˹þ!
:10005629 83C404 add esp, 00000004
:1000562C C3 ret
/***************************************************************************/
//Ëã·¨²¿·Ö:Îı¾µÄµÚÈý²¿·Ö¸ú18181818ÏàÆ¥ÅäµÄRegistration×¢²áÂë¾ÍÓÉÕâÀïÔËËãµÃÀ´,Äã¿ÉÒÔ°ÑËüµ±×öÒ»¸ö
//ºÚÏä.ÔÚÕâÀïÍâ½çÊäÈëÖ»ÓÐÒ»¸ö18181818,(µ±È»ÄãÒ²¿ÉÒÔ»¹ÊÇ°ÑËüµ±×öһͷÄÌÅ£,³ÔµÄÊÇ18181818,¼·³öµÄ¾ÍÊÇ......:),
:10005530 8B4C2404 mov ecx, dword ptr [esp+04]
:10005534 56 push esi
:10005535 8BC1 mov eax, ecx//ecx=(BCDÂë)18181818
:10005537 3545099294 xor eax, 94920945
:1000553C 0FAFC1 imul eax, ecx
:1000553F 0FAFC1 imul eax, ecx
:10005542 0FAFC1 imul eax, ecx
:10005545 0FAFC1 imul eax, ecx
:10005548 8D14C500000000 lea edx, dword ptr [8*eax+00000000]
:1000554F 2BD0 sub edx, eax
:10005551 8D1490 lea edx, dword ptr [eax+4*edx]
:10005554 8DB4D061050000 lea esi, dword ptr [eax+8*edx+00000561]
:1000555B B8CF4D0FC2 mov eax, C20F4DCF
:10005560 F7E1 mul ecx
:10005562 0FAFF1 imul esi, ecx
:10005565 8BC1 mov eax, ecx
:10005567 2BC2 sub eax, edx
:10005569 D1E8 shr eax, 1
:1000556B 03C2 add eax, edx
:1000556D C1E811 shr eax, 11
:10005570 8BD0 mov edx, eax
:10005572 C1E204 shl edx, 04
:10005575 03D0 add edx, eax
:10005577 8D04D2 lea eax, dword ptr [edx+8*edx]
:1000557A 8D04C0 lea eax, dword ptr [eax+8*eax]
:1000557D 03F0 add esi, eax
:1000557F 0FAFF1 imul esi, ecx
:10005582 81EE1C82B302 sub esi, 02B3821C
:10005588 0FAFF1 imul esi, ecx
:1000558B C1E91E shr ecx, 1E
:1000558E 81F1FAFAFAFA xor ecx, FAFAFAFA
:10005594 8D0489 lea eax, dword ptr [ecx+4*ecx]
:10005597 8D0480 lea eax, dword ptr [eax+4*eax]
:1000559A 8D0480 lea eax, dword ptr [eax+4*eax]
:1000559D 8D1480 lea edx, dword ptr [eax+4*eax]
:100055A0 C1E204 shl edx, 04
:100055A3 2BD1 sub edx, ecx
:100055A5 8D8416E3140000 lea eax, dword ptr [esi+edx+000014E3]//¼·³öÀ´µÚÈý²¿·ÖµÄ¾ÍÊÇÕâ¸öeaxµÄÀ!
:100055AC 5E pop esi
:100055AD C3 ret
ºó¼Ç:
Õâ¸öÈí¼þÒѾÊÇÎҺܾøúµÄÁË,²»¹ýËüȷʵºÜºÃ,ÏÖÔÚËüµÄ°æ±¾Ò²Éý¸ßÁË.ÎÒÕâÈ˼ȱ¿ÓÖÀÁ.еÄ4.0×¢²á·½·¨
ºÃÏóÊǸÄÁË,ºÃÏó²»ÊÇͨ¹ýµ÷ÓÃdllʵÏÖµÄ×¢²áÂëÑéÖ¤µÄÁË.ÎÒÒ²²»¸ÒÈ¥×·ÁË,ÔÚ»ã±à´úÂëÉÁÖÀïÕæµÄºÃ¿ÉÅÂ.»¹ÊÇ
ÉϽÖÈ¥´òÍûµÄºÃ,ÎØÎØ......
#include
#include
#include
#include
#include
#include
char *point,*point1,charstr[100],covert[100],input_no[100],char1;
DWORD number,i,first,second,third,random;
void main(void)
{ printf("SyGate 3.0 proxy registry http://www.sygate.com \n");
printf("crack by:machoman\n");
printf("please input number \n");
scanf("%s",charstr);
getchar();
strcpy(input_no,charstr);
/*********************************************************************************/
//Õⲿ·ÖCÊÇ°ÑÊäÈëµÄת»»³É¶ÔÓ¦µÄÀàBCD±íʾ£¬Èç¹ûÊäÈë'18181818'°ÑËüת»»ÎªÒ»¸öDWORDµÄ0x18181818
number=lstrlen(input_no);
if(number<8)
{printf("the input number can 't lower 8 NULL\n");
return;
}
point=&char1;
random=rand();
for(i=0;i<8;i++)
{
point=&input_no[i];
if(((*point)<0x30)|(((*point)>0x39)&&((*point)<0x41))|(((*point)>0x5a)&&((*point)<0x61))|
((*point)>0x66)|(((*point)>0x46)&&((*point)<0x61))|(input_no[0]>0x34))
{printf("input must area in 0-9,A-F and first character must lower 4");
return;
}
if(*point>=0x30&&*point<=0x39)
{*point=*point-0x30;
first=first<<4;
first=first|(*point);
}
else
if((*point)>=0x41&&(*point)<=0x46)
{*point=*point-0x37;
first=first<<4;
first=first|(*point);
}
else
if((*point)>=0x61&&(*point)<=0x66)
{*point=*point-0x57;
first=first<<4;
first=first|(*point);
}
point1=point1+1;
}
/*********************************************************************************/
//Õⲿ·Ö»ã±à´úÂë¾ÍÊÇÔÚ³ÌÐòÖÐÕ³Ìù¹ýÀ´µÄ£¬ÎÒÀÁ£¡²»Ïëд³ÉCÁË
_asm{ push eax
push ebx
push ecx
push edx
push esi
push edi
push ebp
mov ecx, first//(BCD)18181818
mov eax, ecx
xor eax, 0x245143
imul eax, ecx
imul eax, ecx
mov edx, eax
shl edx, 0x0B
sub edx, eax
lea edx, dword ptr [edx+4*edx]
lea edx, dword ptr [eax+4*edx]
lea edx, dword ptr [edx+2*edx]
lea esi, dword ptr [eax+2*edx+0x67A77]
mov eax, 0x7325A665
imul esi, ecx
mul ecx
imul esi, ecx
sub esi, 0x00001A6E
imul esi, ecx
shr edx, 0x11
mov eax, edx
shl eax, 0x08
add eax, edx
lea eax, dword ptr [eax+2*eax]
lea eax, dword ptr [esi+eax+0x11B1]
mov ecx, eax
mov edx, ecx
shr eax, 0x34
shr edx, 0x28
lea eax, dword ptr [eax+2*eax]
lea edx, dword ptr [edx+4*edx]
add eax, edx
mov edx, ecx
shr edx, 0x1C
shr ecx, 0xE
lea edi, dword ptr [edx+4*edx]
lea edx, dword ptr [edx+2*edi]
add eax, edx
add eax, ecx
and eax, 0xFFFFF//Õâ¸öÖµ¾ÍÊǺó°ë²¿·Öserial no:µÄµÍ4룬¸ß4λ¿ÉΪËæ»úÊý
mov second,eax
mov ecx, first//(BCD)18181818
mov eax, ecx
xor eax, 0x94920945
imul eax, ecx
imul eax, ecx
imul eax, ecx
imul eax, ecx
lea edx, dword ptr [8*eax+00000000]
sub edx, eax
lea edx, dword ptr [eax+4*edx]
lea esi, dword ptr [eax+8*edx+0x0000561]
mov eax, 0xC20F4DCF
mul ecx
imul esi, ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x11
mov edx, eax
shl edx, 04
add edx, eax
lea eax, dword ptr [edx+8*edx]
lea eax, dword ptr [eax+8*eax]
add esi, eax
imul esi, ecx
sub esi, 0x2B3821C
imul esi, ecx
shr ecx, 0x1E
xor ecx, 0xFAFAFAFA
lea eax, dword ptr [ecx+4*ecx]
lea eax, dword ptr [eax+4*eax]
lea eax, dword ptr [eax+4*eax]
lea edx, dword ptr [eax+4*eax]
shl edx, 04
sub edx, ecx
lea eax, dword ptr [esi+edx+0x0014E3]
mov third,eax//ÕâÀï¾ÍÊÇRegistration:
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
pop eax
}
printf("output of registry key is:\n");
printf("Serial No:%x",first);
printf("-");
printf("%d0",random);
printf("%x\n",second);
printf("Registration:%x\n",third);
}
|
½â»Ø´ð
-------------
×÷Õß: Bug Error
-------------
·Òë:;Âò²Ýñ·Òë
Ä¿±ê:Might & Magic 7 1.0 US (Safedisc)
-------------
ʹÓù¤¾ß:
- Soft-Ice 3.23
- ProcDump 1.5
- Frog-Sice (¶ã¹ý·Àµ÷ÊÔ±£»¤¶Ôsoft_ice¸ú×ÙµÄÆÆ»µ)
- Sicetool ( soft-ice ²¹¶¡ºÍ¸Ä½øµÄÃüÁîÖ§³Ö)
- HexWorkshop
- ExeScope
1)¹ØÓÚICD Îļþ
---------------
-Ê×ÏÈÔËÐÐ ProcDump
-µã»÷ PE Editor °´Å¥´ò¿ª"mm7.icd"Îļþ,¿ÉÒÔ¿´µ½
(³ÌÐòµÄÖ´ÐеĵÚÒ»ÌõÖ¸ÁîµÄRVA) Entry Point => 000CF9AE
(×°ÈëµÄ»ùÖ·) Image Base => 00400000
-ÏÖÔÚ,Äã±ØÐë¼ÆËãÖ¸ÁîÖ¸ÕëEPI:Entry Point + Image Base => 004cf9ae
-ÔÙµã»÷Sections°´Å¥¿ÉÒÔ¿´¼ûÈçÏÂ:
Virt. Offset RAW Size RAW Offset
.text 00001000 000DA000 00001000
.rdata 000DB000 00007000 000DB000
.data 000E2000 00017000 000E2000
.rsrc 00B99000 00010000 000F9000
-Òª°ÑÕâЩ¶Îdump³öÀ´,Äã±ØÐëÖªµÀËüÃÇÔÚÄÚ´æÖпªÊ¼µÄµØ·½
=>¶ÎÄÚ´æÖпªÊ¼µÄµØ·½ÕâÑù¼ÆËã:×°Èë»ùÖ·(Image Base)+Ïà¶ÔÆ«ÒÆ(Virtual Offset)
.text => 401000
.rdata => 4db000
.data => 4e2000
.rsrc => f99000
-ÔËÐÐ ExeScope, ͬʱ´ò¿ª"mm7.icd"
-µã»÷°´Å¥Imports
-Ñ¡Ôñ Kernel,¼ÆËã³öÓжàÉÙ¸ökernel.dll µÄapi±»³ÌÐòµ¼Èë:ÔÚÕâÀï,ÊÇ96¸ö,ÓÃ16½øÖƱíʾΪ:60h
-½Ó×Å,Ñ¡ÔñUser,¼ÆËã³öÓжàÉÙ¸öapi±»³ÌÐòµ¼Èë:ÔÚÕâÀï,ÊÇ33,ÓÃ16½øÖƱíʾΪ:33h
-Äã±ØÐëת»»10½øÖÆÊýΪ16½øÖÆ,ÓÉÓÚ soft_ice ²»Ï²»¶ÓÃ10½øÖƱíʾ:))
2)Dump ¹Ø¼üµÄ¶Î
---------------------
-ÏÈÈÃÓÎÏ·ÔËÐÐ
-µÈµ½ÆÁÄ»Çл»,°´ÏÂCTRL+D
-½øÈësoft_ice,Èç¹ûÄãÔÚDPLAYER.dLLµÄ¿Õ¼ä,ÊäÈëBPX FREELIBRARY϶ϵã
-°´F11»Øµ½Éϼ¶µ÷ÓÃ
-ÉÔµÈ,ÄãÓֻص½soft-ice
-ÔÙÊäÈë d 4cf9ae ¿´¿´Õâ¸öicdÎļþÔÚÄÚ´æÖб»½âÃܳöÀ´ÁËûÓÐ.Èç¹ûûÓÐ,¾Í°´F5¼ü¼ÌÐøÖ´ÐÐ,²¢µÈ´ý:))
-Èç¹ûÕâ¸öicdÎļþ±»½âÃÜÁË,ÊäÈë bc * Çå³ýÒÔÇ°µÄ¶Ïµã
-ºÃ,ÕâÑùµÄ»°ÏÖÔÚÄ㽫ÄÜdump³öËùÓеĶÎ,³ýÁË.rdataÍⶼÓà pagein ÃüÁî
-ÔÚsoft_iceÖÐÊäÈë:
pagein 401000 da000 c:\text.bin
pagein 4e2000 17000 c:\data.bin
pagein f99000 10000 c:\rsrc.bin
3)ÓÐ¹Ø SafediscµÄµ÷ÓÃ
------------------------
-ÔÚsoft_iceÖÐÊäÈë bpx 4cf9ae ²¢°´ÏÂF5¼üÖ´ÐÐ
-ÎÒÃǽ«µÃµ½É¶??
0177:004cf9ae push ebp
0177:004cf9af mov ebp, esp
0177:004cf9b1 push ff
0177:004cf9b3 push 004de160
0177:004cf9b8 push 004d311c
0177:004cf9bd mov eax, fs: [00000000]
0177:004cf9c3 push eax
0177:004cf9c4 mov fs: [00000000], esp
0177:004cf9cb sub esp, 58
0177:004cf9ce push ebx
0177:004cf9cf push esi
0177:004cf9d0 push edi
0177:004cf9d1 mov [ebp-18], esp
0177:004cf9d4 call [004db164] => °´ F8¼ü½øÈëÕâ¸öµ÷ÓýøÈ¥¸ú×Ù
- ½Ó×Å, Äã¿ÉÒÔ¿´¼ûÏÂÃæµÄÕâЩ:
0177:012678e7 pushad
0177:012678e8 push 0000004b
0177:012678ed push 00000000
0177:012678f2 call [01267908] => ¹þ¹þ,ÕâÊÇÎÒÃǵÄc-dilla'sµ÷ÓÃ,×¢ÒâÕâ¸öµØ·½µÄ¶«¶«,Ä㽫ÔÚÏÂÃæÐèÒªÓÃËü:)
0177:012678f8 add esp, 08
0177:012678fb popad
0177:012678fc jump [01267902]
4)°Ñ.RDATA °áµ½ .DATA¶Î
--------------------------
-ÓÉÓÚ .rdata¶ÎÊÇÖ»¶ÁµÄ,Äã±ØÐë°ÑÕâ¶Î´«´æµ½ÁíÍâÒ»¸ö¶ÎÖÐÓÃMºÍLÃüÁî
=>M "(¶ÎµÄ³¤¶È)RAW Size of .rdata + Image Base(×°ÈëµÄ»ùÖ·)" L "(¶ÎµÄ³¤¶È)Raw Size of .rdata" "(Ïà¶ÔÆ«ÒÆ)
Virtual Offset of .data + Image Base(×°ÈëµÄ»ùÖ·)"
-ÔÚsoft-IceÖÐ,°´ÉÏÃæµÄÓ÷¨ÊäÈë
M 407000 L 7000 4f0000
5) Ñ¡¶¨ .rdata ¶ÎµÄkernel API
-----------------------------
-ÔÚ soft_iceÖÐ,¼üÈë:
R eip 4cf9ae
.
a eip
-ÏÖÔÚ,дÈëÈõ÷Óù̶¨ÏÂÀ´:
4CF9AE pushad
4CF9AF push ebx
4CF9B0 push 0 => 0±íʾkernelµ¼Èë means kernel import
4CF9B2 call [01267908] =>Õâ¸öµØÖ·ÊÇÄãÔÚÉÏÃæ¸ú×ÙµÃÀ´µÄ
4CF9B8 add esp, 8
4CF9BB mov edx, 4F0000 =>Äã°Ñ.rdataÒƶ¯µ½µÄµØ·½
4CF9C0 cmp eax, [edx]
4CF9C2 je 4cf9ce
4CF9C4 inc edx
4CF9C5 cmp edx, 4f7000
4CF9CB jne 4cf9c0
4CF9CD int 03
4CF9CE mov [edx], ecx
4CF9D0 popad
4CF9D1 inc ebx
4CF9D2 cmp ebx, 60 => 60h¸ökernel api µ÷ÓÃ
4CF9D5 jne 4cf9ae
4CF9D7 int 03
6)Ñ¡¶¨ .rdata ¶ÎµÄ User API
-------------------------------
-ÔÚ soft_iceÖÐ,¼üÈë:
R eip 4cf9ae
.
a eip
-ÏÖÔÚ,дÈëÈõ÷Óù̶¨ÏÂÀ´:
4CF9AE pushad
4CF9AF push ebx
4CF9B0 push 01 => 01 ±íʾuserµ¼Èë
4CF9B2 call [01267908] => Õâ¸öµØÖ·ÊÇÄãÔÚÉÏÃæ¸ú×ÙµÃÀ´µÄ
4CF9B8 add esp, 8
4CF9BB mov edx, 4F0000 => Äã°Ñ.rdataÒƶ¯µ½µÄµØ·½
4CF9C0 cmp eax, [edx]
4CF9C2 je 4cf9ce
4CF9C4 inc edx
4CF9C5 cmp edx, 4f7000
4CF9CB jne 4cf9c0
4CF9CD int 03
4CF9CE mov [edx], ecx
4CF9D0 popad
4CF9D1 inc ebx
4CF9D2 cmp ebx, 33 => 33h ¸öuser api µ÷ÓÃ
4CF9D5 jne 4cf9ae
4CF9D7 int 03
-ÏÖÔÚÄ㽫Äܹ»dump³ö.rdata¶Î:
pagein 4f0000 7000 c:\rdata.bin
7)Öع¹ EXEÎļþ
----------------------
-ÏÖÔÚ,ÄãÓÐËùÓеÄdump³öµÄ¶Î,Äã±ØÐëÖع¹Ò»¸öеÄ"mm7.exe"Îļþ
-¸´ÖÆ"mm7.exe"µ½Ò»¸öÁÙʱĿ¼ÓÃdumpµÄÈ«²¿¶Î
-°Ñ"mm7.icd"¸ÄΪ"mm7.exe"µÄÃû×Ö
-ÔËÐÐHexworkshop, È¥´ò¿ª"mm7.exe"
-´ò¿ª"text.bin"
-¼¯ÖÐÔÚ"mm7.exe"È»ºó°´ALT + F5
-¼üÈëtext¶ÎµÄÆ«ÒÆ:1000(¶¨Î»ÔÚ´úÂë¶ÎµÄ¿ªÊ¼)
-½øÐбà¼,²¢Ñ¡Ôñ"select block"²¢¼üÈë.text¶ÎµÄ³¤¶È(Raw Size):da000
-¶¨Î»ÔÚ"text.bin"²¢×ªµÀ±à¼²¢Ñ¡ÔñÈ«²¿
-°´ÏÂCTRL + C¼ü
-¶¨Î»ÔÚ"mm7.exe"²¢°´ÏÂCTRL + V
-ͬÑùµÄ·½·¨¶Ôrdata,dataºÍrsrc¶Î,°´ÉÏÃæµÄ²½ÖèÖظ´×ö:))
-×îºó±£´æеÄ"mm7.exe"Îļþ
8)Öؽ¨ PE
------------------
-ÔËÐÐProcdump²¢µã»÷ "Rebuild PE"°´Å¥
-ÕÒµ½Äã¸Õ²ÅÖع¹µÄ"mm7.exe"ÎļþµãOK°´Å¥
-OK,ÄãµÄExE±»ÍêÈ«¸ã¶¨ÁË,ÄãÆƽâÁËsafedisc:))
9)½áÊøÖÂл
------------------
-¶ÔÒÔϵÄÖÂÒâ:
? KaB00M.........................úù[ LEADER/CRACKER/CODER ]ùú ? ? Avenger........................úù
[ LEADER/CRACKER/CODER ]ùú ? ? ? ?
sEVanD02K......................úù[ CO-WEBMASTER ]ùú ? ? SHi............................úù
[ WEBMASTER/CODER ]ùú ? ? NADA...........................úù[ HEADCRACKER/CRACKER ]ùú ? ?
THE WEB........................úù[ HEADCRACKER/CODER ]ùú ? ?
? ? Black Racer....................úù[ CRACKER/CODER/GFXER ]ùú ? ? Bulletproof....................úù
[ CRACKER ]ùú ? ? BugError.......................úù[ CRACKER ]ùú ? ?
DaBrain........................úù[ CRACKER ]ùú ? ? fREKAnoiZ......................úù
[ CRACKER ]ùú ? ? gZM............................úù[ CRACKER ]ùú
? ? kOBoLd.........................úù[ CRACKER ]ùú ? ? JTK ?9........................úù
[ CRACKER ]ùú ? ? LAP............................úù[ CRACKER ]ùú ? ?
LongFing.......................úù[ CODER ]ùú ? ? [-Ghost-]......................úù
[ GFXER ]ùú ? ? NEMESIS........................úù[ CRACKER ]ùú ? ?
TheRage........................úù[ CRACKER ]ùú ? ? Thezor.........................úù
[ GFXER/GFXER ]ùú ? ? WeaxWeasel.....................úù[ CRACKER ]ùú
-Èç¹ûÓÐÎÊÌâ,¿ÉÒÔͨ¹ýe-mail: bugerror@hotmail.com ¸úÎÒÁªÏµ
Bug Error À´×Ô TCA
|
ºìÉ«¾¯±¨2(red Alert 2)·±Ìå°æÕý°æÍѿǽâÃÜ˵Ã÷(ÆÆSafeDisc2±£»¤)
ÆƽâÕß:Âò²Ýñ(wancun@sina.com)
1¸ÅÊö £º
ºìÉ«¾¯±¨2ÊÇWestWoodµÄаæÓÎÏ·£¬ËüÔÚÖÚ¶àÓÎÏ·ÖÐÂÊÏȲÉÓÃÁËc-dilla¹«Ë¾µÄ¹âÅ̱£»¤¼¼Êõsafedic
2À´¶ÔÆäÆðÕý°æ±£»¤¡£ÒªÈÃÓÎÏ·ÔÚÐéÄâ¹âÇýµÄ»·¾³ÏÂÄܹ»ÔËÐУ¬Ê×ÏȱØÐëÄ£Äâ»òÕßÌø¹ý¶Ô¹âÅ̱£»¤ÌØÕ÷ÇøÓò
µÄµ÷Ó᣸ù¾Ýʵ¼ÊµÄÇé¿ö£¬ÔÚred alert 2Öв¢Ã»ÓаÑÓÎÏ·µÄÊý¾ÝдÈë±£»¤ÇøÓò¡£ÕâÑù¾ÍΪÎÒÃÇͨ¹ýÍÑÈ¥ÓÎ
Ï·µÄ¹âÅÌʶ±ð²¿·ÖµÄÅбð³ÌÐò,Öع¹Ò»¸ö²»¾ß±¸Åжϱ£»¤µÄ³ÌÐòÌṩÁË¿ÉÄÜ¡£ÒÔϵÄ×ö·¨¾ÍÊÇÔÚÒÔÍѿǵĻù
´¡ÉÏʵÏÖÆäÔÚÐéÄâ¹âÇýÏÂÖ´ÐÐÓÎÏ·µÄÒ»ÖÖʵÏÖ·½·¨µÄ²Ù×÷˵Ã÷¡£
--ʹÓù¤¾ß
- TRW V1.23 (safdisc2µÄ±£»¤²¿·Ö¶ÔsofticeµÄ·À»¤ºÜÖܵ½£¬¾ÍÊǼӲ¹¶¡Ò²¸ãËÀ¡£ºÃÔÚ»¹ÓÐTRW)
- ÌìÒâII0.46²âÊÔ°æ(Ò²ÊÇÒ»¸öºÜеĶ¯Ì¬·´±àÒ빤¾ß£¬¾ÍÊÇÏÖÔÚ²»Ì«Îȶ¨¡£Ö§³ÖµÄÃüÁîÒ²²»Ì«È«)
- ProcDump 1.6.2 FINAL VERSION (Íѿǹ¤¾ß£¬ÓÃËü¿ÉÒÔ·½±ãµÄÖØÄÚ´æÖÐdump³öÓ³Ïñ)
- W32Dasm Version 8.93 (±È½ÏÖ±¹ÛµÄ¾²Ì¬·´»ã±à¹¤¾ß)
- UltrEdit32 (»òÕßÆäËûµÄ2½øÖƱà¼Æ÷ÓÃÀ´Ð޸ijÌÐò)
- Vitual Driver 2000 v 6.0 ÐéÄâ¹âÇýÈí¼þ(farstone)
-----¾ßÌå²Ù×÷
---ÍÑ¿Ç
Ê×ÏÈÓÃTRW 1.23 ×°Èë¸ÃÈí¼þµÄ¿ÉÖ´Ðеµra2.exe.³ÌÐòÔØÈëºó ,Ê×ÏÈÍ£ÁôÔÚ¡£stext371Õâ¸ösectionÖдúÂë
²¿·ÖÈçÏ£º
016F:0041C1FD 55 PUSH EBP//×°ÈëÍ£ÁôÔÚÕâÀï
016F:0041C1FE 8BEC MOV EBP,ESP
016F:0041C200 60 PUSHAD
016F:0041C201 B87BC24100 MOV EAX,0041C27B
016F:0041C206 2DFDC14100 SUB EAX,0041C1FD
016F:0041C20B 03057CC24100 ADD EAX,[0041C27C]
016F:0041C211 C705FDC14100E9000000 MOV DWORD PTR [0041C1FD],E9
016F:0041C21B A3FEC14100 MOV DOWRD PTR [0041C1FE],EAX
016F:0041C220 68C9C04100 PUSH 0041C0C9
016F:0041C225 68BBC04100 PUSH 0041C0BB
016F:0041C22A 6809C04100 PUSH 0041C009
016F:0041C22F 689BC04100 PUSH 0041C09B
016F:0041C234 A021C04100 MOV AL,[0041C021]
016F:0041C239 3C01 CMP AL,01
016F:0041C23B 7407 JE 0041C244
016F:0041C23D B800000000 MOV EAX,00
016F:0041C242 EB03 JMP 0041C247
016F:0041C244 8B4508 MOV EAX,[EBP+08]
016F:0041C247 50 PUSH EAX
016F:0041C248 E833000000 CALL 0041C280//ÕâÀï¾ÍÊÇsafedisc2½âÃÜ´úÂëµÄÈë¿Ú£¬°´F10Ìø¹ý
016F:0041C24D 83C414 ADD ESP,14
016F:0041C250 83F800 CMP EAX,00
016F:0041C253 741C JE 0041C271
µ±³ÌÐò¹ýÁË41c248Õâ¸öµ÷Óúó¾Í»áµ¯³öÒ»¸ö¿ªÊ¼Í¼Ïó£¬ÔÚÕâ¸öcall 41c280ÖоÍÊÇsafdisc2µÄ¹Ø¼ü²¿·Ö£¬µ«ÏÖ
ÔÚ²»ÓÃÈ¥Ñо¿Ëü¡£µ±°´F10×ß¹ýÕâÀïʱ£¬³ÌÐòÔÙµ¥²½Ö´Ðм¸²½»áÌø³ö.stext371Õâ¸ösection,À´µ½ÈçϵIJ¿·Ö
Õâʱ¿´¿´sectionµÄÇé¿ö£¬ÒѾÊÇÔÚ.textµÄ²¿·ÖÁË¡£Õâ¾ÍÊÇ˵³ÌÐòÒѾµ½ÁËÎÞ¿ÇʱºòµÄ²¿·Ö¡£¸ÃÊÇÓÎÏ·³ÌÐò
µÄÕæÃæÄ¿ÁË¡£
016F:0040787F 55 PUSH EBP//Í£ÔÚÕâÀï
016F:00407880 8BEC MOV EBP,ESP
016F:00407882 6AFF PUSH FF
016F:00407884 6878234100 PUSH 00412378
016F:00407889 68E4C54000 PUSH 0040C5E4
016F:0040788E 64A100000000 MOV EAX,BYTE PTR FS:[00]
016F:00407894 50 PUSH EAX
016F:00407895 64892500000000 MOV FS:[00],ESP
016F:0040789C 83EC58 SUB ESP,58
016F:0040789F 53 PUSH EBX
016F:004078A0 56 PUSH ESI
016F:004078A1 57 PUSH EDI
016F:004078A2 8965E8 MOV [EBP+E8],ESP
016F:004078A5 FF15DC104100 CALL [004110DC]
016F:004078AB 33D2 XOR EDX,EDX
016F:004078AD 8AD4 MOV DL,AH
016F:004078AF 891518724100 MOV [00417218],EDX
016F:004078B5 8BC8 MOV ECX,EAX
016F:004078B7 81E1FF000000 ADN ECX,FF
016F:004078BD 890D14724100 MOV [00417214],ECX
016F:004078C3 C1E108 SHL ECX,08
016F:004078C6 03CA ADD ECX,EDX
016F:004078C8 890D10724100 MOV [00417210],ECX
µ±³ÌÐòÔÚ40787f´¦Í£ÏÂʱÔÚTWR1.22ÖÐÏÂÃüÁîsuspend£¬¹ÒÆð³ÌÐò£¬»Øµ½WINDOWS½çÃ棬ÏÖÔÚÎÒÃÇ
ÒªÍѵô³ÌÐòÉÏÃæµÄÍâ¿ÇÁË¡£ÔÚwindowsϵ÷³öProcDump 1.6.2 FINAL VERSION°ÑÄÚ´æÖеÄÓ°Ïódump
³öÀ´£¬´ò¿ªprocdumpºóÔÙtask¶Ô»°¿òÖпÉÒÔÕÒµ½Ò»¸öra2.exeµÄÓ°Ïó£¬ÓÃÊó±êÑ¡ÖÐËü£¬ÔÙµãÊó±êÓÒ¼ü
£¬ÔÚµ¯³ö¿òÖÐÑ¡Ôñdump(full)ÏȻºóÑ¡Ò»¸öÄãÖ¸¶¨µÄÎļþÃû±£´æ£¬ÎÒÓÃabd.exe±£´æ£¬ÕâÑù¾Í°Ñ³Ì
ÐòµÄÖ÷Ì岿·Ö¸ø·ÖÀë³öÀ´ÁË,ÕâϸÃÊÇûsafedic2µ÷ÓÃÁË¡£È»ºóÖ´ÐÐһϸõµÅöÅöÔËÆø£¬»á²»»á¾ÍOKÁË¡£
¿Éϧ³ÌÐò¿ÉûÕâÑù¼òµ¥£¬ÂíÉϸø±¨·Ç·¨´íÎ󡣡£¾ÍÔÚ4078a5´¦µÄ call[004110dc]·Ç·¨´íÎó£¬Õâ¸ö¿ÉÊÇ
´óÂé·³´¦¡£ÒÔϵĴ¦ÀíÈ«¶¼ÊÇΪÁ˽â¾öÕâ¸öÎÊÌâ¶ø²ÉÈ¡µÄ¡£
-----IMPORT_TABLEµ¼Èë±íµÄÖع¹
------µÚÒ»ÖÖÇé¿ö£¨ÄãÒª×ö CALL [********]= ת»»=> Call Kernel32.dll(»òuser32.dll)!¾ßÌ庯Êý£©
Ö»Óлص½ÔÀ´µÄ³ÌÐòÖØе÷ÊÔµ½4078a5,È»ºó¸ú½øÈ¥¿´¿´£¬ÂíÉϾÍÊǵ÷ÓÃÒ»¸öÍâ½ÓµÄÎļþÁË£¬¿Õ¼äÒѾµ½ÁËÁí
Ò»¸ö³ÌÐòÓ¦¸ÃÊÇÒ»¸ödllÎļþ¡£¿´¿´Ëü¶¼×öÁËЩɶ£¬ÏÂÄÚ´æ¶Ïµãbpm esp RW Ö´Ðм¸Ïºó·¢ÏÖ³ÌÐò×îºóÔÚ
kernel32.dllµÄ¿Õ¼äÖÐͣϣ¬ÏëÏë¸ÃÊÇÓÐAPIµ÷ÓÃÁË¡£¼ÌÐø·¢ÏÖÊǶԺ¯ÊýKernel32.dll!GetVersion()µÄµ÷Óã¬
ÕâÖ»ÓÐÒ»¸ö¿ÉÄܼӿdzÌÐò°ÑÔ³ÌÐòµÄµ¼Èë±í(IMPORT_TABLE)ÖеÄKernel32º¯ÊýÆÆ»µÁË¡£Ëüͨ¹ýÍâ½ÓµÄdllÓú¯
ÊýGetProcAddressÀ´¶Ôÿ¸öÔÀ´µÄº¯Êýµ¼Èë½øÐÐʵÏÖ£¬¶øÇҰѺ¯ÊýµÄÖ´ÐÐÒ²ÔÚÆäÖдúÀÍÁË¡£ÕâÊǵäÐ͵ÄÐ޸ĻÖ
¸´µ¼Èë±íµÄ²Ù×÷¡£
ÄÇÎÒ¾ÍÏÈÔÚ³ÌÐòÖÐÕÒÕÒµ¼Èë±íµÄλÖðѣ¬ÓÃprocdump´ò¿ª£¬µãÖÐPE Editor°´Å¥·¢ÏÖIMPORT_TABLEµÄRVAÊÇ
1f000 size 1b8,ÕÒµ½1f000µÄλÖ÷¢ÏÖµ¼Èë±íµÄλÖÃÈ«²»¶Ô£¡¿´À´³ÌÐòÊÇ°ÑËü¸øÒþ²ØÁË¡£¶øÇÒÓÃW32Dasm·´»ã
±àÒ²ÕÒ²»µ½¡£Ö»ÓÐÊÖ¹¤ÕÒÕÒ£¬¸ù¾ÝPEÎļþµÄ½á¹¹£¬ÎÒÏÈÔÚabd.exeÖвéÕÒ×Ö·û´®"kernel32.dll",ÔÚ131a4Õâ¸ö
RVAÕÒµ½Ò»¸ö£¬È»ºóÔÙÔÚ³ÌÐòÖвéÕÒ¶þ½øÖÆa4 31 01Ò²¾ÍÊÇ¿´IMPORT_TABLEµÄIMAGE_IMPORT_DESCRIPTOR½á¹¹Àï
ÓÐKernel32.dllÕâ¸öº¯ÊýÂ𣬻¹ºÃ£¬ÔÚ12ce4´¦ÕÒµ½¡£ ÔÚÎÒ¿ÉÒÔÏȼٶ¨IMPROT_TABLEµÄRVAΪ12cd8£¨¸ù¾Ý½á¹¹
IMAGE_IMPORT_DESCRIPTORÕÒµ½ÆäÆ«ÒÆÊ×Ö·£©,ÏȸĸĿ´¡£
ÓÃprocdump´ò¿ªabd.exe£¬µãÖÐPE Editor°´Å¥,°ÑIMPROT_TABLEµÄRVA¸ÄΪ12cd8¡£È»ºóÔÙÓÃW32Dasm ·´»ã±à
¿´¼ûFUCTION °´Å¥µÄIMPORTÒѾ³öÀ´ÁË£¬¿ÉÒÔ¿´¼ûkernel32.dll,user32.dll,GDI32.dll,ADVAPI32.dll,
Shell32.dll,COMCTL32.dllÒѾ³öÀ´ÁË£¬µ«¿ÉÒÔ¿´¼û£¬kernel32.dll,ºÍuser32.dllµÄº¯ÊýÈ«Êǿհס£ÕâЩº¯
Êý¿´À´ÒªÎÒÈ¥¸øÕÒ³öÀ´ÁË¡£ÆäËûµÄdllµ÷Óö¼Õý³£ÁË¡£
ÏÂÃæ¾ÍÊÇÕÒµ½³ÌÐòµÄ¼ÓÃܲ¿·Ö½øÐзÖÎö¡£°Ñ³ÌÐò×ß¹ýµÄAPI½øÐÐÖع¹¡£»¹ÊÇÕë¶ÔµÚÒ»¸ö³ö´íµÄµØ·½£¬ÔÚ¸ú½ø
µÄdll¿Õ¼ä¿ÉÒÔ¿´¼ûÒÔÏ´úÂë
016F:004078A5 FF15DC104100 CALL [004110DC] ÇÐÈëÏÂÃæµÄ´úÂëÖÐ
016F:004078AB 33D2 XOR EDX,EDX
/*********************************************************************************************/
×¢£º³ÌÐòÔÚÏÂÃæÓÃÁ˼ä½ÓRet Ö¸ÁîµÄ·½Ê½´úÌæcallµ÷Ó÷µ»ØµÄ·½Ê½£¬°Ñµ÷ÓÃÏÂÒ»ÌõÖ¸ÁîµÄIP£¨004078AB)¼°
±êÖ¾ºÍËùÓеļĴæÆ÷±£´æÔÚ¶ÑÕ»µ¥ÔªÖС£È»ºóÔÙÓøıä¶ÑÕ»µÄ·½·¨ÇлØ4078AB,¾ßÌåʵÏÖ¼ûÏÂÃæ´úÂë
010c6CD7 PUSH DWORD BFEA13B4
010c6CDC PUSHF//±£´æ±êÖ¾
010c6CdD PUSHA//±£´æËùÓеļĴæÆ÷
010c6CDE PUSH ESP
010c6CdF PUSH DOWRD 10C6D167
010c6CE4 CALL 100195F0 //½øÈë~df394b.tmp£¬ÆäʵÊǸödllÎļþ£¬F8¸ú½ø¿É·¢ÏÖ
010c6CE9 ADD ESP BYTE +8//²»»áµ½ÕâÌõÖ¸ÁîµÄ£¬ÔÙÉÏÒ»ÌõÖ¸ÁîÓÃF10µÄ»°¾Í¹ýÁË£¡£¡£¡£¡game begin
010c6CEC PUSH BYTE 00
010c6CEE POP EAX
010c6CEF POPA
010c6CF0 POPF
010c6CF1 RET
×ß×ß....µ½ÏÂÃæ........ÕÒÁ˺þà ÔÚ~df394b.tmpÖÐÏÂÃæµÄÖ¸ÁîÖÐÓл¨Ö¸Á¾²Ì¬»ã±à²»¿É¿´µÄµ½µÄ¡£ÕâÀï¿É
ÊǹؼüÁË£¬Ã¿´Îµ¼Èë±íÖع¹µÄ±Ø¾Ö®Â·¡£ÔÚÕâÀï϶ϿÉÒÔ¿´¼ûÿ¸öº¯ÊýµÄµ÷Óùý³Ì¼°·µ»ØÖ÷³ÌÐòµÄ·½·¨¡£
0100183c8 SETS [EBP-8]
0100183cc MOV EAX,[EBP-8]
0100183cf AND EAX,0x000000FF
0100183d4 TEST EAX,EAX
0100183d6 JNZ 0100183e5 //ÕâÀïͨ³£ÊÇÒªÌøµÄ
0100183d8 MOV ECX,[0100500E8]
0100183df CALL Kernel32.dll!SetEvent
0100183e5 JMP SHORT 0100183ee//ÔÙ1Ìø
0100183e7 MOV EBX,EBX
0100183e9 JO 0100183F1
0100183eb NOP
0100183ec JNO SHORT 0100183f1//ÔÙNÌø£¬»¨Ö¸ÁîÒ»Ö±¾ÍÔÚÌø£¬ÕâÊÇ×îºóÒ»Ìø¡£¡£
0100183ee JMP 0100183e7//ÔÙ2Ìø
...............................»¨Ö¸Áî
0100183f1 MOV ESP,[EBP+0c]//Ìøµ½ÕâÀïË®Âäʯ³ö£¬ÕâÀïEBP+0cÖеľÍÊÇIP£¨004078AB)ÄÇÀïѹÈë
//µÄ»·¾³Êý¾Ý
0100183f4 POPA//Ð޸ıê־Ϊ4078a5µÄµÄ״̬
0100183f5 POPF//Ð޸ļĴæÆ÷4078a5ʱµÄ״̬
0100183f6 RET //ÇÐÈëKernel32.dllÖеĶÔÓ¦º¯ÊýÖУ¬ÔÚÕâÌõÖ¸ÁîÏÂÒ»Ìõʱ£¬¶ÑÕ»ÒѾָÏòIP 4078AB
//µ±³ÌÐòÖØKernel32Ä£¿éµÄ¶ÔÓ¦º¯Êý·µ»Øʱ£¬¾Í·µ»Øµ½4078AB»Øµ½Ö÷³ÌÐòÖ´ÐС£
/*********************************************************************************************/
˵ÁË°ëÌ죬½á¹ûÆäʵÕâÀï¾ÍÊÇÒ»¸öAPIµ÷Óã¬ÍêÈ«¿ÉÒÔͨ¹ý°Ñº¯ÊýÔÚ004078A5 CALL [004110DC]´¦µÄÄÚÈÝ
¸ÄΪ¾ßÌåµÄAPI¾Í¿ÉÒÔÁË£¬ÕâÐèÒª¶ÔPEÎļþµÄIMPORT_TABLE µÄ½á¹¹Á˽⡣Äã¿ÉÒÔ·¢ÏÖÆäʵÆäËûµÄcallµ÷ÓõÄÇø
Óò¸úÕâ¸öÒ»Ñù£¬¶¼ÊÇÔÚIMAGE_IMPORT_DESCRIPTOR½á¹¹µÄ Kernel32.dll»òuser32.dllµÄFirstThunkÖ¸ÏóµÄÇøÓò
Äã¿ÉÒÔ·¢ÏÖÏÖÔÚÕâÀïµÄÈ«ÊÇͨ¹ýÉÏÃæµÄÍâ½Óµ÷ÓÃʵÏֵģ¬ÎÒÃÇÒª¸ÄËüÆäÖеÄÄÚÈÝΪÄÚ²¿Ö±½Óµ÷Óã¬Õâ¾ÍÒªÓÃÊÖ
¹¤ÁË£¬ºÜÂé·³¡£¡£Ê×ÏÈÔÚ³ÌÐòµÄ.rdata sectionµÄÄ©¶ËÑ¡ÔñÈ«ÊÇ00µÄÇøÓò°Ñ¸Ãº¯ÊýµÄhintºÍÃû×Ö×Ö·û´®Ð´È룬
¿ÉÄÜÄ㻹ÐèÒªÊÖ¹¤ÔÚprocdumpÐÞ¸Ä.rdata sectionµÄVsize ºÍPsizeΪÄÜ·ÅÏÂÄãµÄËùÓк¯ÊýhintºÍÃû×Ö´®µÄ´ó
СÎÒµÄÕâ¸öº¯Êýµ¼Èë±íµÄ¹¹Ôì·½·¨ÈçÏÂ
µÚÒ»¸ö¶ÏµãÔÚ4078a5ÖУ¬ÆäÕæÕýµÄCALL dword ptr [4110dc] ,110dcµØÖ·µÄÖ¸Õë¸ÄΪ1394d,ÔÚ1394dÖÐÓеÚÒ»
¸öº¯ÊýGetVersionµÄhint¼°±êʾ×Ö·û£¨ÕâÀïÊÇ×Ô¼º¼ÓµÄÓ´£©
RVA 110dc------value------>1394d => RVA 1394d----------value------->0800GetVersion
^ ^
hint Characteris
ÕâÑù¾Í¹¹ÔìºÃÁ˵ÚÒ»¸öº¯ÊýKernel32.dll!GetVersion()
ºóÃæµÄÕâÖÖµ÷ÓÃÈç·¨ÅÝÖÆ£¬¿ÉÄÜÒªÖع¹30¼¸¸öÕâÑùµÄº¯Êý¡£µ«¿ÉÄÜ»¹ÊÇÓйæÂɵģ¬ÒªÊÇÄÜÕÒµ½¹æÂÉ»òÍêÕûµÄ
µ¼Èë±í£¬¾Í²»ÓÃÕâÑùÐÁ¿àÁË¡£
------µÚ¶þÖÓÇé¿ö£¨ÄãÒª×öJMP.stxt774µÄÈë¿ÚµØÖ·==ת»»=>Call Call Kernel32.dll(»òuser32.dll)!¾ßÌ庯Êý)
µÚ¶þÖÖÇé¿öͨ¹ýÔ¶ÌøÖ¸ÁîÌøµ½.stxt774µÄÏàÓ¦Èë¿ÚÖС£
µÚÒ»Ìõ»¨Ö¸ÁîÇÐÈëÊǺ¯ÊýGetVersionExA,λÖÃÔÚ
409450 jmp 41b12a£¨Ìøµ½¡£stxt¶Î£© £»ÕâÀïʵ¼ÊÉÏÊÇ call Kernel32.dll!GetVersionExA£¬Ô³ÌÐòµÄ¼Ó
£»ÃÜ´¦Àí¿ÉÒÔ¼ûºó¼Ìcode³ÌÐòÏÂÃæµÄÊÇ»¨Ö¸Á¾²Ì¬·´»ã±à»á¿´²»¼ûÕæÕý´úÂë
ËüÔÚ.stxt774 sectionÖеĴúÂëÈçÏÂ
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00409450(U)
|
:0041B12A 53 push ebx
:0041B12B E800000000 call 0041B130 //Õâ¸öcallµÄÄ¿µÄÖ»ÊÇ°ÑIPѹջ±£´æ
* Referenced by a CALL at Address:
|:0041B12B
|
:0041B130 870424 xchg dword ptr [esp], eax//
:0041B133 9C pushfd //±êÖ¾±£´æ
:0041B134 05D0FEFFFF add eax, FFFFFED0
:0041B139 8B18 mov ebx, dword ptr [eax]
:0041B13B 6BDB0A imul ebx, 0000000A //¼ÆËãÇÐÈëdllµÄλÖÃ
:0041B13E 035804 add ebx, dword ptr [eax+04]
:0041B141 9D popfd //»Ö¸´×´Ì¬
:0041B142 58 pop eax
:0041B143 871C24 xchg dword ptr [esp], ebx//ÇÐÈë~df394b.tmpµÄλÖÃ
:0041B146 C3 ret//ÇÐÈë
È»ºó¿ÉÒÔ¿´¼ûÏÂÃæµÄÀàËÆ´úÂëÖÐ
010c6CD7 PUSH ***********//409450µÄÏÂÒ»ÌõÖ¸Á¿ÉÊÇ»¨Ö¸ÁîÓ´£¬ÕâÀï´¦ÀíºÜ¶¾µÄ£¬²»¿´ÕâÀïµÄ
//»°ÄãÊDz»ÄÜ¿´¼û409450µÄÕæÕýµÄÏÂÌõÖ¸ÁîµÄÇé¿öµÄ¡£
010c6CDC PUSHF//±£´æ±êÖ¾
010c6CdD PUSHA//±£´æËùÓеļĴæÆ÷
010c6CDE PUSH ESP
010c6CdF PUSH DOWRD 10C6D167
010c6CE4 CALL 100195F0 //½øÈë~df394b.tmp£¬ÆäʵÊǸödllÎļþ£¬F8¸ú½ø¿É·¢ÏÖ
010c6CE9 ADD ESP BYTE +8//²»»áµ½ÕâÌõÖ¸ÁîµÄ£¬ÔÙÉÏÒ»ÌõÖ¸ÁîÓÃF10µÄ»°¾Í¹ýÁË£¡£¡£¡£¡game begin
010c6CEC PUSH BYTE 00
010c6CEE POP EAX
010c6CEF POPA
010c6CF0 POPF
010c6CF1 RET
ÕâÖÖÇé¿öµÄÐ޸ķ½·¨£¬ÔÚ³ÌÐòµÄÏà¶ÔÆ«ÒƵØÖ·13bd9ÖмÓÈë 3300GetVersionExA
^ ^
hint Characteris
È»ºóÔÚIMPORT_TABLEÇøÓòµÄ¿ÕÓà¿Õ¼äÏà¶ÔÆ«ÒƵØÖ·11184ÖÐдÈëHintºÍCharacterisµÄµØÖ·Ê×Ö·13bd9¼´
Address 411184------value------>13bd9 => Address 13bd9----------value------->3300GetVersionExA
^ ^
hint Characteris
È»ºóÔÙ¶¯Ì¬Ö´ÐÐÔ³ÌÐò϶ϵãbpx 409450,ÓÃaÖ¸Á̬ÐÞ¸ÄÕâÀïµÄ»ã±à´úÂë
a
*****:409450 call near [411184]
*****:409456 *********** ;ÕâÑùÔÀ´µÄÖ¸Áî¾Í»¹ÔÁË£¬¿ÉÒÔ¿´¼ûÕæÕýµÄÖ¸Áî
¼Ç¼Ï³ÌÐòÔڸô¦µÄ16½øÖÁÊý¾ÝΪ FF1584114100,È»ºóÓñà¼Æ÷ÔÚ³ÌÐòÖеĸÃλÖÃÐÞ¸ÄΪÕ⼸¸öÊý¾Ý£¬Íê³É
¶ÔGetVersionExAµÄÖع¹ ¡£¡£¡£¡£
-------×îºó˵Ã÷
ÓÃÉÏÃæµÄ·½·¨Ò»¸öÒ»¸ö¸ú×پͿÉÒԵõ½Ò»¸öÍêÈ«Î޿ǵĿÉÖ´ÐÐÎļþ£¬ ×îºóÔÚÒ»Çи㶨ºóÖ´ÐеÄʱºòÒ»¶¨Òª°Ñ
Ô³ÌÐòµÄÖ´ÐÐĿ¼ÀïµÄra2.lcf¸´ÖÆΪabd.lcfÕâÑù²ÅÐС£Ò²¿ÉÒÔÈóÌÐòÖ´ÐÐÁË£¬µ«¹ý³ÌÕæµÄºÃÂé·³ÒªÊÇÄܹ»Éú³É
ÕâЩ¶«Î÷¾ÍºÃÁË¡£ÔÚÖÆ×÷ÐéÄâ¹âµúʱÓÃfarstone µÄÖÆ×÷ÐéÄâ¹âµúÖÆ×÷vcdµµÑ¡¶¨ÖÇ»ÛËã·¨¶ÁÈ¡£¬²»ÒªÓÃÇî¶Á·¨£¬
·ñÔò¹ý²»ÁËsafedisc2µÄ²»¿É¶Á±£»¤£¬ÖÆ×÷Íê±Ïºó×°Èë¾Í¿ÉÒÔ²»ÓùâÅ̵ÚÍçred alert 2ÓÎÏ·ÁË
|