¡¾ÔÓÖ¾×ÚÖ¼¡¿ÖªÊ¶¹²Ïí ×ÊÁϹ²Ïí ×ÊÔ´¹²Ïíÿÿÿÿÿ | |||||||||||||||||||||||||||||
¡¾ÖÆ×÷³ÉÔ±¡¿³ÌʽÁÔÈË | |||||||||||||||||||||||||||||
¡¾·¢ÐÐʱ¼ä¡¿2000-8-19 | |||||||||||||||||||||||||||||
¡¾ÆÚ¿¯ºÅÂë¡¿µÚ°ËÆÚ | |||||||||||||||||||||||||||||
¡¾ÍøÕ¾µØÖ·¡¿http://programhunter.wanwang.com | |||||||||||||||||||||||||||||
¡¾±à¼¼ÄÓï¡¿ |
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
¡¾Ä¿ ÿÿ ¼¡¿ | |||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
&¡¾ÆƽâÐĵá¿ | |||||||||||||||||||||||||||||
Particle Fire V1.1a ³ÌʽÁÔÈ˼ò½é£ºÕâÊÇÒ»¸öÏ൱ºÃµÄÆÁÄ»±£»¤³ÌÐò¡£ ×·×Ù£ºRN:01234567 ÿÿÿÿÕâ¸öÈí¼þµÄÆƽâ¹ý³Ì¶ÔÓÚ³õѧÕßÀ´ËµÓÐÒ»¶¨µÄÄѶȣ¬ÒòΪͨ³£µÄÈí¼þÔÚ×¢²á¹ý³ÌÖÐ¾Í¿É ÒÔ¿´µ½ËüµÄ±È½Ï¹ý³Ì£¬¶øÕâ¸öÈí¼þËü²»ÊÇÊäÈë×¢²áÂëºó¾Í½øÐбȽϵġ£ËüÊÇÔÚÈí¼þÔËËãµÄ¹ý ³ÌÖв»¶ÏµÄÈ¥±È½Ï£¬ËùÒÔÕâ¸öÈí¼þÔÚÄѶÈÉÏÓ¦µ±ÊôÓÚÖм¶Ë®Æ½¡£ ÒòΪÕâ¸öÈí¼þÊǵ±ÄãÊäÈëÕýÈ·µÄ×¢²áÂëºó²Å×¢²á³É¹¦Ò²¾ÍÊÇËüʹÓÃʵʱ¼ìÖ¤µÄ·½·¨£¬Ëù ÒÔÏÖÔÚÏÈÊäÈë0123456ºó£¬ÔÙÉèbpx hmemcpyºó£¬ÊäÈë7ºó±»À¹Ï¡£ :0040254F FFD7 call edi :00402551 85C0 test eax, eax <-³öÀ´µÄµØ·½£¬eax=0012d687 :00402553 7423 je 00402578 :00402555 8D442410 lea eax, dword ptr [esp+10] :00402559 6A00 push 00000000 :0040255B 50 push eax :0040255C 68F0030000 push 000003F0 :00402561 56 push esi :00402562 FFD7 call edi :00402564 5D pop ebp :00402565 A314214100 mov dword ptr [00412114], eax <-eax=12d687 * Possible Reference to String Resource ID=00001: "Particle Fire!" | :0040256A B801000000 mov eax, 00000001 :0040256F 5F pop edi :00402570 5E pop esi :00402571 5B pop ebx :00402572 83C414 add esp, 00000014 :00402575 C21000 ret 0010ÿÿÿÿÎÒÃÇÔÚÉÏÃæµÄµØ·½±»À¹ÏÂÀ´£¬×Ðϸ·ÖÎöÒ»ÏÂÉÏÃæµÄ³Ìʽ£¬Äã¿ÉÒÔ·¢ÏÖÔÚÉÏÃæ³Ìʽ½«ÎÒÃÇ ÈëµÄ×¢²áÂë·ÅÔÚÁË00412114Õâ¸ö¹Ì¶¨µØÖ·ÉÏ¡£Èç¹ûÄãÏÖÔÚÏòÏÂ×·×ٵĻ°£¬Ä㽫ÊÇÒ»ÎÞ·¢ÏÖ ÒòΪ³ÌÐò¾ÍÈçÎÒÔÚÇ°ÃæËù˵µÄÄÇÑù£¬Ëü²»ÊÇÔÚÏÂÃæ¾Í½øÐбȽϣ¬¶øÊÇÔÚij¸öʱ¼äÀ´½øÐбȵġ£ ÏÖÔÚÎÒÃǾ͵ÃʹÓÃW32dasmÀ´·ÖÎöÕâ¸öÈí¼þ£¬²éÕÒ00412114Õâ¸öµØÖ·£¬ÎÒÃǽ«ÕÒµ½¼¸¸öµØ Ö·£¬ÆäÖÐÏÂÃæµÄµØÖ·ÊǹؼüµÄµØ·½£¬ÈçÏÂËùʾ£º :00402726 A114214100 mov eax, dword ptr [00412114] :0040272B 50 push eax :0040272C E8CFE8FFFF call 00401000 :00402731 83C404 add esp, 00000004 :00402734 85C0 test eax, eax :00402736 0F852D030000 jne 00402A69ÿÿÿÿÔÚÕâÀï¿ÉÊÇÕâ¸öÈí¼þµÄ±È½Ï¹Ø¼üÖ®´¦£¬¶øÇÒÈç¹ûÄãÔÚÕâÀïÉè϶ϵãµÄ»°£¬Ä㽫ÎÞ·¨»Øµ½ Õý³£µÄµØ·½£¬ÒòΪ³ÌÐòÒ»ÖµÔÚµ÷ÓÃËü£¬ÓÃËüÀ´²»¶ÏµÄÑé֤ע²áÂëµÄÕýÈ·ÐÔ¡£ÏÂÃæÊÇÕâ¸öÈí ÈçºÎ¼ÆËã×¢²áÂëµÄ¡£ÒòΪËüʹÓÃÁËÁîÈËÌÖÑáµÄXOR²Ù×÷£¬¶øÎÒʹÓÃCÓïÑÔÓÖûÓн«Ëü¸øËã³ö £¨¿ÉÄÜCÓïÑÔ´¦ÀíXORʱÓÐÎÊÌ⣩¡£ :00401000 8B442404 mov eax, dword ptr [esp+04] :00401004 56 push esi :00401005 3D00CA9A3B cmp eax, 3B9ACA00 <-1000000000 :0040100A 763D jbe 00401049 :0040100C 3D00943577 cmp eax, 77359400 <-2000000000 :00401011 7336 jnb 00401049 :00401013 8BC8 mov ecx, eax :00401015 8BF0 mov esi, eax :00401017 C1E114 shl ecx, 14 :0040101A 8BD0 mov edx, eax :0040101C C1E610 shl esi, 10 :0040101F 81E10000F0FF and ecx, FFF00000 :00401025 C1EA10 shr edx, 10 :00401028 0BF2 or esi, edx :0040102A 2BD2 sub edx, edx :0040102C 33F1 xor esi, ecx :0040102E 8BC8 mov ecx, eax :00401030 C1E90C shr ecx, 0C :00401033 33F1 xor esi, ecx :00401035 B994260000 mov ecx, 00002694 :0040103A 33C6 xor eax, esi :0040103C F7F1 div ecx :0040103E 85D2 test edx, edx :00401040 7507 jne 00401049 *** * Possible Reference to String Resource ID=00001: "Particle Fire!" | :00401042 B801000000 mov eax, 00000001 :00401047 5E pop esi :00401048 C3 retÿÿÿÿºÃÁË£¬ÏÖÔÚÎÒʹÓÃÐ޸ķ½·¨À´½øÐÐÕâ¸öÈí¼þ×¢²á£¬ÎÒÔÚÕâÀïÏÈÊäÈë1234567890ºó£¬ÔÙÐÞ¸Ä ***´¦£¬¾ßÌå·½·¨ÈçÏ£º **************************** * ²éÕÒ£º85 D2 75 07 B8 * * Ìæ»»£º85 D2 90 90 B8 * ****************************ÿÿÿÿÎÒÏÖÔÚÏëͬ´ó¼Ò˵µÄÊÇ£¬ÎÒÒòΪûÓеõ½Õâ¸öÈí¼þµÄ×¢²áÂë¶ø²»ËÀÐÄ£¬±Ï¾¹ÎÒÀë×¢²áÂëÖ» ÓÐÒ»²½Ö®¸ô£¬ÒòΪÎÒÒѾ֪µÀÁËÕâ¸öÈí¼þÊÇÈçºÎÔËËãµÄ¹ý³Ì¡£ÓÚÊÇÎÒ¾ÍʹÓÃCÓïÑÔ±àдÁËÏ ÃæµÄ³ÌÐò£¬ÎÒ×¼±¸Ê¹ÓÃÇî¾Ù·¨À´µÃµ½×¢²áÂë¡£µ«ÊÇͨ¹ýÏÂÃæµÄ³ÌÐòËã³öÀ´µÄ×¢²áÂëÊDz»¶ÔµÄ £¬ÎÒ×ÐϸµÄÑéÖ¤ÁËÎÒ±àдµÄ¹ý³Ì£¬ÏàÐÅËüÊǾø¶ÔûÓдíÎóµÄ£¬ËùÒÔÔÚÕâÀïÏëÇë¸ßÊÖÀ´°ïÖúÒ» Ï£¬ÈçºÎÄܹ»µÃµ½Õâ¸öÈí¼þµÄ×¢²áÂ루Äã²»ÂÛʹÓÃʲôÓïÑÔ¶¼¿ÉÒÔ£©¡£ main() { unsigned long i,j; unsigned long eax,ebx,ecx,edx; clrscr(); for(i=0x3b9aca00;i<0x4190ab00;i++) { eax=i<<16; ebx=i>>16; ecx=eax|ebx; eax=i<<20; ebx=i>>12; edx=eax|ebx; eax=ecx|edx|i; j=eax%0x2694; if(j==0) { printf("\n Your register number is %lx",i); break; } } printf("\n your seach is over!!!"); getch(); } |
|||||||||||||||||||||||||||||
·µ»Ø | |||||||||||||||||||||||||||||
KeyGhost V3.2 Æƽâʵ¼ ×÷Õß:liangs E-mail:liang_s@263.net Èí¼þÃû³Æ£ºKeyGhost V3.2 ÏÂÔصØÖ·£ºhttp://sunhy.126.com ʹÓõŤ¾ß W32Dasm V8.93 ³¬¼¶ÖÐÎÄ°æ Trw2000 ver1.22 Ê×ÏÈÁ¬°´Á½´ÎALT+F12ºô³öKeyGhost,ÔÚ×¢²á¿òÖÐÊäÈ룺liangs-787878,ΪʲôÊÇ'liangs-787878' ¶ø²»ÊÇ'liangs787878',ÏÂÃæÄã¾ÍÖªµÀÁË¡£È»ºóÏÂbpx hmemcpy£¬ÖжϺó£¬Ê×ÏÈbd *,È¥µôËùÓÐÖжϣ¬ ÔÙ°´18´ÎF12¡£ * Possible StringData Ref from Code Obj ->"ÇëºÏ·¨Ê¹ÓÃÈí¼þ" | :00475580 B888564700 mov eax, 00475688 :00475585 E842ADFDFF call 004502CC :0047558A 837DFC00 cmp dword ptr [ebp-04], 00000000 <---ÎÒÃÇÍ£ÔÚÕ⣻ :0047558E 0F8499000000 je 0047562D :00475594 8D85FCFEFFFF lea eax, dword ptr [ebp+FFFFFEFC] :0047559A 8B55FC mov edx, dword ptr [ebp-04] <---´Ë´¦edx=liangs-787878; :0047559D B9FF000000 mov ecx, 000000FF :004755A2 E881E8F8FF call 00403E28 :004755A7 8D85FCFEFFFF lea eax, dword ptr [ebp+FFFFFEFC] :004755AD E8CAC2FFFF call 0047187C <---ÅжÏÊäÈëµÄ×¢²áÂëµÄºÏ·¨ÐÔ,´Ë´¦°´F8¸úÈë; :004755B2 84C0 test al, al :004755B4 7477 je 0047562D <---×¢²áÂë´íÎó¾ÍÌø×ß; :004755B6 B201 mov dl, 01 :004755B8 8B8340030000 mov eax, dword ptr [ebx+00000340] :004755BE E8F570FBFF call 0042C6B8 :004755C3 33D2 xor edx, edx :004755C5 8B8318030000 mov eax, dword ptr [ebx+00000318] :004755CB E8E870FBFF call 0042C6B8 :004755D0 B201 mov dl, 01 :004755D2 8B8340040000 mov eax, dword ptr [ebx+00000440] :004755D8 8B08 mov ecx, dword ptr [eax] :004755DA FF515C call [ecx+5C] :004755DD C605D1BA470001 mov byte ptr [0047BAD1], 01 * Possible StringData Ref from Code Obj ->"Code" | :004755E4 68A0564700 push 004756A0 :004755E9 8D95E8FEFFFF lea edx, dword ptr [ebp+FFFFFEE8] :004755EF 8B45FC mov eax, dword ptr [ebp-04] :004755F2 E84595FEFF call 0045EB3C :004755F7 8B95E8FEFFFF mov edx, dword ptr [ebp+FFFFFEE8] :004755FD 8D85ECFEFFFF lea eax, dword ptr [ebp+FFFFFEEC] :00475603 E8A4F9F8FF call 00404FAC :00475608 8D85ECFEFFFF lea eax, dword ptr [ebp+FFFFFEEC] :0047560E 50 push eax * Possible StringData Ref from Code Obj ->"Software\Sun\Keyghost3xx" | :0047560F B9B0564700 mov ecx, 004756B0 :00475614 B202 mov dl, 02 :00475616 8B8310030000 mov eax, dword ptr [ebx+00000310] :0047561C E85F21FEFF call 00457780 * Possible StringData Ref from Code Obj ->"×¢²á³É¹¦£¡Ð»Ð»ÄúµÄÖ§³Ö£¡" | :00475621 B8D4564700 mov eax, 004756D4 <---×¢²áÂëÕýÈ·Ìøµ½´Ë´¦; :00475626 E885A9FDFF call 0044FFB0 :0047562B EB0A jmp 00475637 * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:0047558E(C), :004755B4(C) | * Possible StringData Ref from Code Obj ->"Ç빺Âò±¾Èí¼þ£¡¼ûÓÒ²à×¢²á˵Ã÷£¡" | :0047562D B8F8564700 mov eax, 004756F8 <---×¢²áÂë´íÎóÌøµ½´Ë´¦; :00475632 E879A9FDFF call 0044FFB0 --------------------------------------------------------------------------- ¸úÈë call 0047187C ÖУº´ËCallÓÃÀ´ÅжÏÊäÈëµÄ×¢²áÂëµÄºÏ·¨ÐÔ * Referenced by a CALL at Addresses: |:004755AD , :00475979 | :0047187C 55 push ebp :0047187D 8BEC mov ebp, esp :0047187F 81C4ECFCFFFF add esp, FFFFFCEC :00471885 53 push ebx :00471886 56 push esi :00471887 57 push edi :00471888 33D2 xor edx, edx :0047188A 8995F0FCFFFF mov dword ptr [ebp+FFFFFCF0], edx :00471890 8995ECFCFFFF mov dword ptr [ebp+FFFFFCEC], edx :00471896 8995F8FCFFFF mov dword ptr [ebp+FFFFFCF8], edx :0047189C 8995F4FCFFFF mov dword ptr [ebp+FFFFFCF4], edx :004718A2 8BF0 mov esi, eax :004718A4 8DBDFFFEFFFF lea edi, dword ptr [ebp+FFFFFEFF] :004718AA 33C9 xor ecx, ecx :004718AC 8A0E mov cl, byte ptr [esi] :004718AE 41 inc ecx :004718AF F3 repz :004718B0 A4 movsb :004718B1 33C0 xor eax, eax :004718B3 55 push ebp :004718B4 68DE194700 push 004719DE :004718B9 64FF30 push dword ptr fs:[eax] :004718BC 648920 mov dword ptr fs:[eax], esp :004718BF C645FF00 mov [ebp-01], 00 :004718C3 8D85F4FCFFFF lea eax, dword ptr [ebp+FFFFFCF4] :004718C9 8D95FFFEFFFF lea edx, dword ptr [ebp+FFFFFEFF] :004718CF E81C25F9FF call 00403DF0 :004718D4 8B85F4FCFFFF mov eax, dword ptr [ebp+FFFFFCF4] :004718DA 8D95F8FCFFFF lea edx, dword ptr [ebp+FFFFFCF8] :004718E0 E82374F9FF call 00408D08 :004718E5 8B95F8FCFFFF mov edx, dword ptr [ebp+FFFFFCF8] :004718EB 8D85FFFEFFFF lea eax, dword ptr [ebp+FFFFFEFF] :004718F1 B9FF000000 mov ecx, 000000FF :004718F6 E82D25F9FF call 00403E28 :004718FB 33DB xor ebx, ebx :004718FD C685FFFDFFFF00 mov byte ptr [ebp+FFFFFDFF], 00 :00471904 C685FFFCFFFF00 mov byte ptr [ebp+FFFFFCFF], 00 :0047190B 8D95FFFEFFFF lea edx, dword ptr [ebp+FFFFFEFF] :00471911 B8F0194700 mov eax, 004719F0 :00471916 E80511F9FF call 00402A20 <---ÅжÏÊäÈëµÄ×¢²áºÅÊÇ·ñÊÇxxxx-yyyyµÄÐÎʽ£» °´F8¸úÈë¿ÉÖª¡£ :0047191B 8BF0 mov esi, eax :0047191D 85F6 test esi, esi :0047191F 0F8E9B000000 jle 004719C0 <---×¢²áºÅÈô²»ÊÇxxxx-yyyyµÄÐÎʽÔòÌø ÕâÀïǧÍò²»ÄÜÌø£¬²»È»¾ÍOVERÁË¡£:-) :00471925 8D85FFFDFFFF lea eax, dword ptr [ebp+FFFFFDFF] :0047192B 50 push eax :0047192C 8BCE mov ecx, esi :0047192E 49 dec ecx :0047192F BA01000000 mov edx, 00000001 :00471934 8D85FFFEFFFF lea eax, dword ptr [ebp+FFFFFEFF] :0047193A E8250FF9FF call 00402864 :0047193F 8D85FFFCFFFF lea eax, dword ptr [ebp+FFFFFCFF] :00471945 50 push eax :00471946 33C9 xor ecx, ecx :00471948 8A8DFFFEFFFF mov cl, byte ptr [ebp+FFFFFEFF] :0047194E 2BCE sub ecx, esi :00471950 8D5601 lea edx, dword ptr [esi+01] :00471953 8D85FFFEFFFF lea eax, dword ptr [ebp+FFFFFEFF] :00471959 E8060FF9FF call 00402864 :0047195E 33D2 xor edx, edx :00471960 8A95FFFDFFFF mov dl, byte ptr [ebp+FFFFFDFF] :00471966 85D2 test edx, edx :00471968 7E16 jle 00471980 :0047196A 8D8500FEFFFF lea eax, dword ptr [ebp+FFFFFE00] * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0047197E(C) | :00471970 33C9 xor ecx, ecx :00471972 8A08 mov cl, byte ptr [eax] :00471974 03D9 add ebx, ecx :00471976 81C3A41D0F00 add ebx, 000F1DA4 :0047197C 40 inc eax :0047197D 4A dec edx :0047197E 75F0 jne 00471970 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00471968(C) | :00471980 8D85F0FCFFFF lea eax, dword ptr [ebp+FFFFFCF0] :00471986 8D95FFFCFFFF lea edx, dword ptr [ebp+FFFFFCFF] :0047198C E85F24F9FF call 00403DF0 :00471991 8B85F0FCFFFF mov eax, dword ptr [ebp+FFFFFCF0] :00471997 50 push eax :00471998 8D95ECFCFFFF lea edx, dword ptr [ebp+FFFFFCEC] :0047199E 8BC3 mov eax, ebx :004719A0 E8E374F9FF call 00408E88 <---ÓÃxxxxËã³öÕýÈ·µÄ×¢²áÂë; Ö´ÐÐÍêÉÏÃæÕâÌõÓï¾äºó,EDXÖоÍÊÇ ÕýÈ·µÄ×¢²áÂë,ÎÒµÄÊÇ£º5944406 :004719A5 8B95ECFCFFFF mov edx, dword ptr [ebp+FFFFFCEC] :004719AB 58 pop eax :004719AC E8AB25F9FF call 00403F5C <---ÅжÏyyyyÓëÉÏÃæÓÃxxxxËã³öµÄ ×¢²áÂëÊÇ·ñÏàµÈ£» :004719B1 750D jne 004719C0 <---²»µÈ¾ÍÌø×ß; :004719B3 80BD00FFFFFF61 cmp byte ptr [ebp+FFFFFF00], 61 :004719BA 7204 jb 004719C0 :004719BC C645FF01 mov [ebp-01], 01 * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:0047191F(C), :004719B1(C), :004719BA(C) | :004719C0 33C0 xor eax, eax <---¿É°®µÄEAX±êÖ¾±»ÖÃ0£¬¾ÍOVERÁË :004719C2 5A pop edx :004719C3 59 pop ecx :004719C4 59 pop ecx :004719C5 648910 mov dword ptr fs:[eax], edx :004719C8 68E5194700 push 004719E5 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004719E3(U) | :004719CD 8D85ECFCFFFF lea eax, dword ptr [ebp+FFFFFCEC] :004719D3 BA04000000 mov edx, 00000004 :004719D8 E81322F9FF call 00403BF0 :004719DD C3 retÓÉ call 00402A20 ¸úÈ룺´ËCallÅжÏ×¢²áÂëÊÇ·ñΪxxxx-yyyyµÄÐÎʽ. :00402A20 53 push ebx :00402A21 56 push esi :00402A22 57 push edi :00402A23 89C6 mov esi, eax :00402A25 89D7 mov edi, edx :00402A27 31C9 xor ecx, ecx :00402A29 8A0F mov cl, byte ptr [edi] :00402A2B 47 inc edi :00402A2C 57 push edi :00402A2D 31D2 xor edx, edx :00402A2F 8A16 mov dl, byte ptr [esi] :00402A31 46 inc esi :00402A32 4A dec edx :00402A33 781B js 00402A50 :00402A35 8A06 mov al, byte ptr [esi] <---½«AL¸³Öµ'2D',Ò²¾ÍÊÇ·ûºÅ'-'; :00402A37 46 inc esi :00402A38 29D1 sub ecx, edx :00402A3A 7E14 jle 00402A50 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00402A4E(U) | :00402A3C F2 repnz :00402A3D AE scasb <---Ñ»·ÒÀ´ÎÈ¡ÊäÈëµÄ×¢²áÂëÓëALÖеÄ'-'±È½Ï :00402A3E 7510 jne 00402A50 <---×¢²áÂëÖÐûÓÐ'-'·û¾ÍÌø×ߣ» :00402A40 89CB mov ebx, ecx :00402A42 56 push esi :00402A43 57 push edi :00402A44 89D1 mov ecx, edx :00402A46 F3 repz :00402A47 A6 cmpsb :00402A48 5F pop edi :00402A49 5E pop esi :00402A4A 7409 je 00402A55 :00402A4C 89D9 mov ecx, ebx :00402A4E EBEC jmp 00402A3C * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:00402A33(C), :00402A3A(C), :00402A3E(C) | :00402A50 5A pop edx :00402A51 31C0 xor eax, eax :00402A53 EB05 jmp 00402A5A ÕûÀíÒ»ÏÂÎÒµÄ×¢²áÂëΪ£ºliangs-5944406 |
|||||||||||||||||||||||||||||
·µ»Ø | |||||||||||||||||||||||||||||
Font Creator Program ³ÌʽÁÔÈË
ÿÿÿÿÕ⼸Ìì¹âÖÆ×÷Ö÷Ò³ÁË£¬²î²»¶àÒѾÍü¼ÇÁËÆƽâÈí¼þÕâ¸öÎÒ°®ºÃµÄ¹¤×÷¡£½ñÌìÓÖ¿ªÊ¼Æƽâ :004B74AC FF75F0 push [ebp-10] :004B74AF 8D55EC lea edx, dword ptr [ebp-14] :004B74B2 8B45FC mov eax, dword ptr [ebp-04] :004B74B5 8B8004030000 mov eax, dword ptr [eax+00000304] :004B74BB E874D0F7FF call 00434534 :004B74C0 FF75EC push [ebp-14] :004B74C3 8D55E8 lea edx, dword ptr [ebp-18] :004B74C6 8B45FC mov eax, dword ptr [ebp-04] :004B74C9 8B800C030000 mov eax, dword ptr [eax+0000030C] :004B74CF E860D0F7FF call 00434534 :004B74D4 FF75E8 push [ebp-18] :004B74D7 8D55E4 lea edx, dword ptr [ebp-1C] :004B74DA 8B45FC mov eax, dword ptr [ebp-04] :004B74DD 8B8014030000 mov eax, dword ptr [eax+00000314] :004B74E3 E84CD0F7FF call 00434534 :004B74E8 FF75E4 push [ebp-1C] :004B74EB 8D45F8 lea eax, dword ptr [ebp-08] :004B74EE BA04000000 mov edx, 00000004 :004B74F3 E8ACCBF4FF call 004040A4 :004B74F8 8D55DC lea edx, dword ptr [ebp-24] :004B74FB 8B45FC mov eax, dword ptr [ebp-04] :004B74FE 8B800C030000 mov eax, dword ptr [eax+0000030C] :004B7504 E82BD0F7FF call 00434534 :004B7509 8B45DC mov eax, dword ptr [ebp-24] :004B750C BA03000000 mov edx, 00000003 :004B7511 4A dec edx :004B7512 3B50FC cmp edx, dword ptr [eax-04] :004B7515 7205 jb 004B751C :004B7517 E818BAF4FF call 00402F34 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004B7515(C) | :004B751C 42 inc edx :004B751D 8A4410FF mov al, byte ptr [eax+edx-01] :004B7521 50 push eax :004B7522 8D55D8 lea edx, dword ptr [ebp-28] :004B7525 8B45FC mov eax, dword ptr [ebp-04] :004B7528 8B80E0020000 mov eax, dword ptr [eax+000002E0] :004B752E E801D0F7FF call 00434534 :004B7533 8B45D8 mov eax, dword ptr [ebp-28] :004B7536 8D4DE0 lea ecx, dword ptr [ebp-20] :004B7539 5A pop edx :004B753A E82DD4FFFF call 004B496C :004B753F 8B45E0 mov eax, dword ptr [ebp-20] :004B7542 50 push eax :004B7543 8D55D4 lea edx, dword ptr [ebp-2C] :004B7546 8B45F8 mov eax, dword ptr [ebp-08] :004B7549 E8A614F5FF call 004089F4 :004B754E 8B55D4 mov edx, dword ptr [ebp-2C] *** :004B7551 58 pop eax *** :004B7552 E89DCBF4FF call 004040F4 :004B7557 7556 jne 004B75AF :004B7559 8D55D0 lea edx, dword ptr [ebp-30]±È½Ï¹Ø¼üµØ·½£¬Èç¹ûÄãÒªÊÇÏòÏ¿´µÄ»°£¬¿ÉÒÔ·¢ÏÖ¸üΪÖØÒªµÄµØ·½ÈçÏ£º :004B758B 6A00 push 00000000 :004B758D 668B0D24764B00 mov cx, word ptr [004B7624] :004B7594 B202 mov dl, 02 * Possible StringData Ref from Code Obj ->"Thank you for registering the " ->"Font Creator Program." | :004B7596 B830764B00 mov eax, 004B7630 :004B759B E86023FAFF call 00459900 :004B75A0 8B45FC mov eax, dword ptr [ebp-04] :004B75A3 C7803402000001000000 mov dword ptr [ebx+00000234], 00000001 :004B75AD EB22 jmp 004B75D1 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004B7557(C) | :004B75AF 6A00 push 00000000 :004B75B1 668B0D24764B00 mov cx, word ptr [004B7624] :004B75B8 B201 mov dl, 01 * Possible StringData Ref from Code Obj ->"Registration failed: Invalid Password" | :004B75BA B86C764B00 mov eax, 004B766C :004B75BF E83C23FAFF call 00459900 :004B75C4 8B45FC mov eax, dword ptr [ebp-04] :004B75C7 C7803402000002000000 mov dword ptr [ebx+00000234], 00000002ÿÿÿÿÔÚÕâÀïÄã¿ÉÒÔ¿´µ½×¢²á³É¹¦ºÍ³ö´íµÄµØ·½£¬ËùÒÔÔÚÉÏÃæ¿ÉÒԵõ½×¢²áÂ룬ÆƽâÒ²¾Í½áÊøÁË¡£ ********************************** * name:dahuilang * * company:programhunter * * RN:G6E-966-494-232 * ********************************** |
|||||||||||||||||||||||||||||
·µ»Ø | |||||||||||||||||||||||||||||
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿHacking Windows 95 Screen Saver Passwords ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(and a bit of cryptography) ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿby Lonely Hawk Courtesy of Fravia's page of reverse engineering -------------------------------------------------------------------------------- ÿÿÿÿI have been cracking programs ever since I owned a ZX Spectrum. To be honest, the only ones I was really interested in at first, were the games I played and couldn't win. I remember my first crack was at a game called JetPac, and I was only 15 years old. But then came the horrible times of studying in the Univ. Non stop. Completely destroying any creative impulse God gave me, by trying to 'guide' it. Oh well. It was until I saw the great +ORC's tutorials that I realized my supressed 'hobby' could not die. I immediately scanned the Web for the necessary tools and started spying Win 95 programs. ÿÿÿÿI litteraly cracked my way in every direction: I created 4 pages of program codes, producing my own serials for every shareware program I had. Some of the programs I cracked needed a little bit more of 'zen' thinking, to put it in +ORC's words. Most of them though, were of the BOZO-PROGRAMMERS-R-LIVE-HERE kind. So I relaxed, and enjoyed my supreme power over the Windows 95 architecture. Then one day, in the lab I work, I wanted to get something from a friend's hard disk. I already knew the machine's password (not by hacking, he's my friend), so I sat down in front of the monitor and moved the mouse to remove the screen saver. Yikes! A dialog box popped up, asking for the screen saver password. I tried my friend's 'global' password, but it didn't work. Hmmm. I returned to my machine and searched the Web for screen saver hacks. I found one for Windows 3.1 and tested it on my NT 4.0. Great! I just run the program and it says the password. Good. Let's run it on my friend's PC (rebooted and logged in - I had already lost my interest in what I wanted from his disk and wanted to know his screen saver password). I run it and it says 'screen saver password is 'BacB'. I try it - nothing. It's wrong. Hmm, time to do some hacking. Allright, Microsoft, where do you store these passwords? In Windows 3.1, says the proggy I downloaded, it's inside control.ini. The same happens in Windows NT 4.0, but not in Windows 95! Strange... (obviously some mixup in the sources used inside these monster OS's). I GREP'ed inside all my friend's PC *.ini files for 'pass'. Nothing related to my needs. In most of these situations, one must then try the registry. I fired up regedit, and looked for "saver". After some searching, I got in the following interesting place: \HKEY_CURRENT_USER\Control Panel\desktop\ScreenSave_Data ÿÿÿÿThis hosted a list of numbers, which in the test I immediately did, was exactly twice the size of the password I gave. If for example I gave the password "testing", the list had 14 numbers. This looked suspicious enough, so I fired SoftIce, and got to the dialog box asking for the new password two times. I wrote my favorite one, 'POTATOES', in both edit fields, and pressed CTRL-D. I then searched the memory to BPR in, so s 30:0 lffffffff "POTAT" ÿÿÿÿBTW, always use a subset of the password, since this way you avoid mixing up the real password image with the one in the OS dustbin. The real one will show up in the data window as POTATOES, the false one as POTAT. I found two occurences, one immediately after the other (remember, you input it twice in the dialog box), so I BPR there. BPR 30:80XXXXXX 30:80XXXXXX+8 RW BPR 30:80ZZZZZZ 30:80ZZZZZZ+8 RW Ctrl-D again, and pressing OK, made Softice pop up again, this time in the well known KERNEL HMEMCPY part. The two password images were copied in memory, and by BPR in the new positions, I found out that they were compared bytewise to see if they match. A normal operation for passwords, so I cotinued. The next SoftIce popup was inside a REP MOVSB to a new location, so I BPR it again. I was beggining to feel frustrated - how many times does this stupid OS copy the string - I already had 5 copies of it! (no wonder Win 95 needs 16 MB RAM). Oh well, Ctrl-D again (continue running). ÿÿÿÿLuckily, the next popup was right where I wanted it: sub ebp, ebp ; ebp=0, first character of the password ; will be processed ... loop1: .... .... ; code that produces a special number into eax .... ; eax is in range of 0-255 .... mov cl, [7E125010+eax] ; read from a table of 256 values mov eax, offset password xor [eax+ebp], al ; xor the ebp-letter of the password inc ebp cmp ebp, [length of password] jl looop1 ÿÿÿÿAfter this ridiculous xoring loop, the transformed password was read, and typed into a string, using wsprintf. If for example POTATOES was transformed to 8 numbers like a1, 54, a2, 32, ... then with wsprintf these numbers will be typed in the registry as 41, 31, (asciiz of a1) 35, 34 (asciiz of 54), etc. What a coincidence, when I discovered that these numbers were the same with the ones in the registry! OK, so how do I crack this? Well, first I examined how the table was getting filled (the table is supposed to be pseudorandom) and I recreated the table, using C (i mean the table placed at 7E125010 in the above code snip). Then I started scratching my head to find a way back to the original password, when I realized this: each output value, was produced from exactly one character of the password! there was no interleaving in the XOR's! Each letter of the original password was XOR'ed with a value, and that's it! This means that by checking every entry in the table to see which one produces the value you search after XORING, you could find the original password! ÿÿÿÿFor example: Suppose you have a table of random values a(i),i=0..N-1, where each a(i) is different from all others a(j), j<>i. You then choose i randomly, and XOR password[0] with a(i). The same is done with all letters of the password. To crack this code, all you have to do is: for each transformed code of the password, password[k] find by testing all the matrix elements, matrix[j] which ASCII code XOR'd with matrix[j] gives password[k] This is not computationally expensive brute force, since you check 256 values for each letter! A ZX Spectrum would compute the password in half a second. A PC, say, in 1 sec :) OK, here's the code: <-- #include #include #include unsigned char matrix[256+2]; unsigned char matrixok[256+2]; unsigned char mystery[4]={ 0xb2, 0xdc, 0x90, 0x8f }; unsigned char h1; unsigned char pa[79], passwd[80]; unsigned char tofind[30]; int h2=4; unsigned int lentofind; int len; void fixmatrix() { unsigned char orig, mys, help1, last; int i,j, help2; for(i=0; i<256; i++) matrix[i]=i; matrix[256]=0; matrix[256+1]=0; h1=0; last=0; for(j=0;j<256;j++) { orig=matrix[j]; mys=mystery[h1]; help2=(mys+last+matrix[j]) & 0xff; help1=matrix[help2]; matrix[j]=help1; matrix[help2]=orig; last=help2; h1++; h1=h1%4; } memcpy(matrixok, matrix, sizeof(matrix)); } void check(char *test) { unsigned char help1, oldh2; int i; strcpy(passwd, test); strcpy(pa, passwd); len=strlen(pa); memcpy(matrix, matrixok, sizeof(matrix)); h1=0; h2=0; for(i=0;i='0')) return 1; else if ((a<='F') && (a>='A')) return 1; else return 0; } int nibble(char c) { if((c>='A') && (c<='F')) return (10+c-'A'); else if((c>='0') && (c<='9')) return (c-'0'); } void parse(char *inpt) { char *tok; char num[2]; lentofind=0; tok=strtok(inpt, "\t ,\n"); while(tok!=NULL) { num[0]=tok[0]; num[1]=tok[1]; if ((!is_ok(num[0])) || (!is_ok(num[1]))) { puts("Please input strings like: a1,b1,05,c3,d2,f3"); exit(0); } tofind[lentofind++]=16*nibble(num[0])+nibble(num[1]); tok=strtok(NULL, "\t ,\n"); } tofind[lentofind]=0; } void main() { unsigned int i; int j,found=0; unsigned char tst[80]; char inpt[120]; fixmatrix(); printf("Windows 95 Screen Saver Cracker.\nMade by Lonely Hawk.\n\n"); printf("Give me the codes, separated by commas (in hex):\n >"); gets(inpt); for(i=0;i ÿÿÿÿThis kind of stupid Microsoft coding makes me think a little. What would be the ideal way to hide these passwords? The reason I cracked Microsoft's code is NOT because I have SoftIce. The reason is because the algorithm is ridiculous. The way I see it, to do real cryptography, you must use an algorithm that cannot be reversed, but cannot also be cracked by brute force. Take the UNIX algorithm for instance: everyone has the code for it, but no one can reverse it. And to brute force it, you need a supercomputer running for ages. If Microsoft used such an algorithm, I would have to crack the system to get in: alter the code to do a jnz instead of a jz. And if the code is only deletable from administrative accounts, I would not be able to do anything. Or at least, that's what I would let them think... :) Lonely Hawk |
|||||||||||||||||||||||||||||
·µ»Ø | |||||||||||||||||||||||||||||
%¡¾³õѧÌìµØ¡¿
|
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
·µ»Ø | |||||||||||||||||||||||||||||
O¡¾ÎÊÌâ´ðÒÉ¡¿
|
|||||||||||||||||||||||||||||
jin:how to crack winzip password? | |||||||||||||||||||||||||||||
Hi, there ÿÿÿjin£¬Äã¿ÉÒÔʹÓÃÊÕ´°À¹½Ø·¨À´×·×ÙËüÊÔÒ»ÊÔ£¬Éèbpx lockmytask£¬ºóµ±³öÏÖ´íÎó´°¿Úʱ£¬µã»÷OKºó£¬½«±»À¹ÏÂÀ´£¬ÕâʱÄã¿ÉÒÔÌøµ½Ö÷³ÌÐòÖвéÕÒ¿ÉÒÔÌøµ½³ö´íµØ·½µÄcall»òje£¬jneµÈ£¬ÕâÖ»ÊÇÒ»¸ö·½·¨£¬²»Ò»¶¨³É¹¦¡£Èç¹û´ó¼ÒÓÐʲô¸üºÃµÄ½¨Ò飬¿ÉÒÔÏòÎÒµÄÐÅÏäдÐÅ¡£ |
|||||||||||||||||||||||||||||
·µ»Ø | |||||||||||||||||||||||||||||
4¡¾ÍøÕ¾½éÉÜ¡¿
|
|||||||||||||||||||||||||||||
windµÄ°²È«ÍøÕ¾£ºhttp://biggow.8u8.com | |||||||||||||||||||||||||||||
ÿÿÿÿwind--·ç£¬Ò»¸öºÜºÃÌýµÄÃû×Ö£¬ÏóÒ»¸öÅ®º¢×ÓµÄÃû×Ó£¬ËûµÄÍøÕ¾¾ÍÈçËûµÄÃû×ÖÒ»ÑùÓÐ×ÅÈÃÄãÐĶ¯µÄµØ·½¡£ÎÒͬwidÍøÕ¾µÄ°ßÖñ´Ó²»Ïàʶµ½ÏàÖª£¬ÕâʹÎÒ¸ü¶àµÄÁ˽âËûµÄÍøÕ¾¡£½ñÌìÏò´ó¼ÒÍƼöÕâ¸ö½âÃÜÍøÕ¾ÖµµÃ´ó¼ÒÈ¥¿´Ò»¿´¡£Ê×ÏÈÕâ¸öÍøÕ¾µÄÄÚÈÝËäÈ»²»Èç¹ûÆäËü±È½Ï³öÃûµÄ½âÃÜÕ¾µãµÄÈ«¶ø¶à£¬µ«ÊÇËýÈ´ÓÐ×ÅÒ»ÖÖÄêÇàµÄ³¯Æø¡£ÒòΪËýµÄ°ßÖñÊÇÒ»¸öÕýÔÚÉÏѧµÄѧÉú¡£Èç¹ûÄãÏë²éÕÒij¸öÈí¼þµÄ×¢²áÂë»òÊÇ×¢²á»úµÄ»°£¬ÄãÒ»¶¨ÒªÈ¥Õâ¸öÍøÕ¾£¬ÒòΪËûרΪ¸÷λÌṩÕâ·½ÃæµÄÍøÕ¾£¬¶øÎÒµÄÍøվȴÊǽÌѧÍøÕ¾¡£µ±ÄãÐèҪע²áÂë»ò×¢²á»úʱ£¬²»·ÁÈ¥ÕâÀÏàÐÅËýÒ»¶¨²»»áÈÃÄãʧÍûµÄ¡£ |
|||||||||||||||||||||||||||||
·µ»Ø | |||||||||||||||||||||||||||||
,¡¾ÔÓÖ¾ÐÅÏä¡¿
|
|||||||||||||||||||||||||||||
Ͷ¸åÐÅÏ䣺discoveredit@china.com | |||||||||||||||||||||||||||||
´ðÒÉÐÅÏ䣺discoveranswer@china.com | |||||||||||||||||||||||||||||
°ßÖñÐÅÏ䣺programhunter@china.com | |||||||||||||||||||||||||||||
·µ»Ø | |||||||||||||||||||||||||||||