004151CC |. 40 ||INC EAX 004151CD |. 83F8 04 ||CMP EAX,4 004151D0 |.^ 7C F1 |\JL SHORT dialogbl.004151C3 004151D2 |. A1 F4FC6D00 |MOV EAX,DWORD PTR DS:[6DFCF4] ; <== 0x67BB54 004151D7 |. 83FF 02 |CMP EDI,2 004151DA |. 7D 32 |JGE SHORT dialogbl.0041520E 004151DC |. 8945 10 |MOV [ARG.3],EAX 004151DF |. 51 |PUSH ECX 004151E0 |. 8D45 10 |LEA EAX,[ARG.3] 004151E3 |. 68 08BE6C00 |PUSH dialogbl.006CBE08 ; ASCII "%08lX-" 004151E8 |. 50 |PUSH EAX 004151E9 |. C645 FC 03 |MOV BYTE PTR SS:[EBP-4],3 004151ED |. E8 9E9C0B00 |CALL dialogbl.004CEE90 004151F2 |. 8B45 10 |MOV EAX,[ARG.3] 004151F5 |. 83C4 0C |ADD ESP,0C 004151F8 |. 8B48 F8 |MOV ECX,DWORD PTR DS:[EAX-8] 004151FB |. 50 |PUSH EAX ; /Arg2 004151FC |. 51 |PUSH ECX ; |Arg1 004151FD |. 8D4D 0C |LEA ECX,[ARG.2] ; | 00415200 |. E8 0B8E0B00 |CALL dialogbl.004CE010 ; \dialogbl.004CE010 00415205 |. C645 FC 02 |MOV BYTE PTR SS:[EBP-4],2 00415209 |. 8D4D 10 |LEA ECX,[ARG.3] 0041520C |. EB 30 |JMP SHORT dialogbl.0041523E 0041520E |> 8945 10 |MOV [ARG.3],EAX 00415211 |. 51 |PUSH ECX 00415212 |. 8D45 10 |LEA EAX,[ARG.3] 00415215 |. 68 00BE6C00 |PUSH dialogbl.006CBE00 ; ASCII "%08lX" 0041521A |. 50 |PUSH EAX 0041521B |. C645 FC 04 |MOV BYTE PTR SS:[EBP-4],4 0041521F |. E8 6C9C0B00 |CALL dialogbl.004CEE90 00415224 |. 8B45 10 |MOV EAX,[ARG.3] 00415227 |. 83C4 0C |ADD ESP,0C 0041522A |. 8B48 F8 |MOV ECX,DWORD PTR DS:[EAX-8] 0041522D |. 50 |PUSH EAX ; /Arg2 0041522E |. 51 |PUSH ECX ; |Arg1 0041522F |. 8D4D 0C |LEA ECX,[ARG.2] ; | 00415232 |. E8 D98D0B00 |CALL dialogbl.004CE010 ; \dialogbl.004CE010 00415237 |. C645 FC 02 |MOV BYTE PTR SS:[EBP-4],2 0041523B |. 8D4D 10 |LEA ECX,[ARG.3] 0041523E |> E8 08BEFEFF |CALL dialogbl.0040104B 00415243 |. 47 |INC EDI 00415244 |. 83C6 04 |ADD ESI,4 00415247 |. 83FF 03 |CMP EDI,3 0041524A |.^ 0F8C 6FFFFFFF \JL dialogbl.004151BF === TraceInto III === 004152CC |. 8365 FC 00 AND [LOCAL.1],0 004152D0 |. 8D45 0C LEA EAX,[ARG.2] 004152D3 |. 50 PUSH EAX 004152D4 |. 8BCE MOV ECX,ESI 004152D6 |. E8 559E0B00 CALL dialogbl.004CF130 ; <== Fake Serial 004152DB |. 8BF0 MOV ESI,EAX 004152DD |. 8D45 08 LEA EAX,[ARG.1] 004152E0 |. 8D4D 10 LEA ECX,[ARG.3] 004152E3 |. 50 PUSH EAX 004152E4 |. C645 FC 01 MOV BYTE PTR SS:[EBP-4],1 004152E8 |. E8 439E0B00 CALL dialogbl.004CF130 ; <== Real Serial 004152ED |. 56 PUSH ESI 004152EE |. 50 PUSH EAX 004152EF |. C645 FC 02 MOV BYTE PTR SS:[EBP-4],2 004152F3 |. E8 D782FFFF CALL dialogbl.0040D5CF ; <== Compare === TraceInto II === === TraceInto I === - Tương tự như thế, quá trình tạo chuỗi Serial thực thứ hai được dưa trên một chuỗi mặc định khác : “Anthemion Software DialogBlocks and HelpBlocks" : 00413E93 . E8 C8140000 CALL dialogbl.00415360 ; <== Real Serial II - Như vậy quá trình mã hoá của SoftWare này chỉ là quá trình tạo chuỗi MD5Hash dựa trên sự kết hợp giữa U nhập và một chuỗi mặc định . Với hai chuỗi mặc định của chương trình, ta có hai chuỗi Serial thực tương ứng . /*/*/*/ - SERIAL tương ứng : User : REA-cRaCkErTeAm Serial : 889B3D8D-C5F77D80- 05A17F78 Serial : N/A III – KeyGen : /Section 1/- Thực hiện CharLower(User), và kết hợp với một trong hai chuỗi mặc định . /Section 2/- Tính MD5hash . /Section 2/- Kết hợp 3 đoạn đầu tiên của chuỗi này theo định dạng “%08X- %08X-%08X” IV – End of Tut : - Finished – August 09, 2004 - Thank to my family, Computer_Angel, Zombie_Deathman, Littleboy all REA‘s members, HacNho, RongChauA, Deux, Infinity, all my friend, and YOU. REVERSE ENGINEERING ASSOCIATION http://www.reaonline.net Reverse Engineering Association SoftWare Homepage : http://www.dumeter.com Production : Hagel Technologies. SoftWare : DU Meter 3.07 Build 192 Copyright by : Copyright © 1997-2004 Hagel Technologies. All Rights Reserved. Type : Name / Serial Packed : N/A Language : Borland Delphi 6.0 - 7.0 Crack Tool : OllyDbg 1.09d, PEiD 0.92, kWdsm 10 Unpack : N/A Request : Correct Serial / KeyGen DU Meter 3.07 Build 192 DU Meter is an award winning utility from Hagel Technologies that provides an accurate account of the data which is flowing through your computer's network connection at any given moment. This readout is presented in both numerical and graphical format, in real time. DU Meter includes extensive logging facility, flexible events system, and more. It supports Windows 95/98/NT4/2000 and XP! DU Meter works with virtually all types of network connections: phone modems, DSL, cable modem, LAN, satellite, and more. I – Information : - Dùng PEiD kiểm tra biết chương trình không bị PACK và biết chương trình được viết bằng Borland Delphi 6.0 - 7.0 - Chạy thử chương trình với User và Fake Serial ta nhận được "NAG" . Tuy nhiên, ta không thể tìm thấy chuỗi này trong quá trình tìm kiếm . Nhưng ta nhận thấy chương trình có khoảng thời gian dừng trước khi xuất hiện NAG . Ta truy đến hàm kernel32.Sleep . Ta tìm được hàm này tại địa chỉ : 004937D3 |. E8 0CBBF7FF |CALL <JMP.&kernel32.Sleep> ; \Sleep - Dò ngược lên trên và đặt BreakPoint tại lệnh CALL đầu tiên của FUNCTION này : 004937C7 |. E8 F44FFEFF CALL DUMeter.004787C0 ; <== Set BreakPoint here II – Cracking : - Load chương trình lên, chạy chương trình với User và Fake Serial, chương trình dừng lại tại điểm đặt BP . Trace xuống chút : 00493848 |. E8 1764FCFF CALL DUMeter.00459C64 ; <== LenS 0049384D |. 837D E4 00 CMP [LOCAL.7],0 ; <== Must be input 00493851 |. 74 14 JE SHORT DUMeter.00493867 00493853 |. 8D55 E0 LEA EDX,[LOCAL.8] 00493856 |. 8B83 74030000 MOV EAX,DWORD PTR DS:[EBX+374] 0049385C |. E8 0364FCFF CALL DUMeter.00459C64 ; <== LenU 00493861 |. 837D E0 00 CMP [LOCAL.8],0 ; <== Must be input 00493865 |. 75 33 JNZ SHORT DUMeter.0049389A - Trace tiếp ta đến : 0049399D |. E8 9AD1FFFF CALL DUMeter.00490B3C ; <== Trace Into === Trace Into === 00490B78 |. FF16 CALL DWORD PTR DS:[ESI] ; <== Trace Into === Trace Into === 0049DD11 . 8BF0 MOV ESI,EAX ; <== U 0049DD13 . 8BD6 MOV EDX,ESI ; <== U 0049DD15 . B8 D0DD4900 MOV EAX,DUMeter.0049DDD0 ; ASCII "D3" 0049DD1A . 59 POP ECX ; <== Fake Serial 0049DD1B . E8 16FEFEFF CALL DUMeter.0048DB36 ; <== Encrypt & Compare === Trace Into === === Trace Into === - Tiếp tục Trace Into ta đến quá trình mã hoá chính : 0048DB6A |. E8 2DFDFFFF CALL DUMeter.0048D89C ; <== LenS 0048DB6F |. 83F8 18 CMP EAX,18 ; <== LenS must be 24 charts 0048DB72 |. 74 07 JE SHORT DUMeter.0048DB7B ; <== Continue check 0048DB74 |. 33C0 XOR EAX,EAX 0048DB76 |. E9 C5000000 JMP DUMeter.0048DC40 0048DB7B |> 803E 61 CMP BYTE PTR DS:[ESI],61 0048DB7E |. 7C 08 JL SHORT DUMeter.0048DB88 0048DB80 |. 803E 7A CMP BYTE PTR DS:[ESI],7A 0048DB83 |. 7F 03 JG SHORT DUMeter.0048DB88 0048DB85 |. 8006 E0 ADD BYTE PTR DS:[ESI],0E0 0048DB88 |> 803E 20 CMP BYTE PTR DS:[ESI],20 0048DB8B |. 74 15 JE SHORT DUMeter.0048DBA2 0048DB8D |. 8A16 MOV DL,BYTE PTR DS:[ESI] ; <== U[0] 0048DB8F |. 3A13 CMP DL,BYTE PTR DS:[EBX] ; <== if ( U[0] == "D" ) 0048DB91 |. 75 08 JNZ SHORT DUMeter.0048DB9B ; <== Continue check 0048DB93 |. 8A4E 01 MOV CL,BYTE PTR DS:[ESI+1] ; <== U[1] 0048DB96 |. 3A4B 01 CMP CL,BYTE PTR DS:[EBX+1] ; <== if ( U[1] == "3" ) 0048DB99 |. 7E 07 JLE SHORT DUMeter.0048DBA2 ; <== Continue check - Trace tiếp ta đến quá trình phân cách chuỗi Serial nhập thành 4 đoạn . Đoạn thứ nhất gồm 3 ký tự U[3][4][5] Đoạn thứ hai gồm 8 ký tự U[7][8][9][10][11][12][13][14] Đoạn thứ 3 cũng gồm 8 ký tự U[16][17][18][19][20][21][22][23] Đoạn cuối cùng gồm 16 ký tự U[0][1][2][3][4][5][6][7][8][9][10][11][12][13][14][15] 0048DBA2 |> \8D53 03 LEA EDX,DWORD PTR DS:[EBX+3] 0048DBA5 |. 8D45 F4 LEA EAX,[LOCAL.3] 0048DBA8 |. B9 03000000 MOV ECX,3 ; <== 3 charts 0048DBAD |. E8 14FDFFFF CALL DUMeter.0048D8C6 ; <== SecI 0048DBB2 |. C645 F7 00 MOV BYTE PTR SS:[EBP-9],0 0048DBB6 |. 8D53 07 LEA EDX,DWORD PTR DS:[EBX+7] 0048DBB9 |. 8D45 E8 LEA EAX,[LOCAL.6] 0048DBBC |. B9 08000000 MOV ECX,8 ; <== 8 charts 0048DBC1 |. E8 00FDFFFF CALL DUMeter.0048D8C6 ; <== SecII . ECX,[ARG.2] ; | 00 415 200 |. E8 0B8E0B 00 |CALL dialogbl .00 4CE 01 0 ; dialogbl .00 4CE 01 0 00 415 205 |. C645 FC 02 |MOV BYTE PTR SS:[EBP-4],2 00 415 209 |. 8D4D 10 |LEA ECX,[ARG.3] 00 415 20C |. EB 30 |JMP SHORT. 83FF 02 |CMP EDI,2 00 415 1DA |. 7D 32 |JGE SHORT dialogbl .00 415 20E 00 415 1DC |. 8945 10 |MOV [ARG.3],EAX 00 415 1DF |. 51 |PUSH ECX 00 415 1E0 |. 8D45 10 |LEA EAX,[ARG.3] 00 415 1E3 |. 68 08 BE6C 00. dialogbl .00 415 23E 00 415 20E |> 8945 10 |MOV [ARG.3],EAX 00 415 211 |. 51 |PUSH ECX 00 415 212 |. 8D45 10 |LEA EAX,[ARG.3] 00 415 215 |. 68 00 BE6C 00 |PUSH dialogbl .00 6CBE 00 ; ASCII " %08 lX"