0040119C 6E ED D4 77 BB D7 D4 77 7C B5 D4 77 0B 05 D8 77 n w w| w w 004011AC B2 02 D7 77 54 05 D5 77 9F F2 D6 77 54 00 B0 00 wT w wT 004011BC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 004011CC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 004011DC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 004011EC 60 00 B0 00 37 97 80 7C 29 B5 80 7C 2D FF 80 7C ` 7 |) | | 004011FC 2F FE 80 7C D4 05 91 7C AE 30 82 7C 29 29 81 7C / | |®0.|)).| 0040120C 10 11 81 7C 3D 04 91 7C B9 8F 83 7C E4 00 B0 00 |= | | 0040404A CALL DWORD PTR DS:[4011EC] DS:[004011EC]=00B00060 00404EF2 CALL DWORD PTR DS:[40119C] USER32.CallNextHookEx 00404F89 CALL DWORD PTR DS:[4011F0] kernel32.GetCurrentThreadId 00404C66 CALL DWORD PTR DS:[4011A0] USER32.GetDesktopWindow 00404019 CALL DWORD PTR DS:[4011F4] kernel32.GetModuleHandleA 00404C7F CALL DWORD PTR DS:[4011A4] USER32.GetWindowRect 004057CE CALL DWORD PTR DS:[4011F8] kernel32.GlobalAlloc 00405614 CALL DWORD PTR DS:[4011FC] kernel32.GlobalFree 00404622 CALL DWORD PTR DS:[401204] kernel32.HeapCompact 00404453 CALL DWORD PTR DS:[401208] kernel32.HeapCreate 00404584 CALL DWORD PTR DS:[40120C] kernel32.HeapDestroy 00404326 CALL DWORD PTR DS:[401214] kernel32.lstrcatA 00404FC9 CALL DWORD PTR DS:[4011A8] USER32.MessageBoxA 004045EF CALL DWORD PTR DS:[401200] ntdll.RtlAllocateHeap 0040463E CALL DWORD PTR DS:[401200] ntdll.RtlAllocateHeap 004046DD CALL DWORD PTR DS:[401210] ntdll.RtlFreeHeap 00404FA4 CALL DWORD PTR DS:[4011AC] USER32.SetWindowsHookExA 00404C17 CALL DWORD PTR DS:[4011B0] USER32.SystemParametersInfoA 00404FDB CALL DWORD PTR DS:[4011B4] USER32.UnhookWindowsHookEx Duy chỉ có một loại là “code 40”, tôi đã trace lời gọi đó khác với ở trên và dó chính là ExitProcess. (các bạn nên làm bằng tay như tôi). Finish. Chúc các bạn may mắn. Thanks. Toolcracking Unpack and crack CodingWorkshop Ringtone Convert V5.24 Reverse Engineering Association Armadillo v3_78 Manual Unpacking Standard protection Target ……… : CodingWorkshop Ringtone Convert V5.24 Website ……. : http://www.codingworkshop.com/ Protection … : Armadillo v3.78 Standard protection Difficulty … : Easy Tool Needed : 1. OllyDBG - The best config debugger for Armadillo unpacking by hacnho. 2. LordPE Deluxe, or PETools 1.5RC5 3.Import REConstructor 1.6 Final Trước hết em xin cảm ơn loạt tut unpack Arm của anh Hacnho, đọc loạt tut này tuy em không hiểu nhiều lắm nhưng cũng có thể unpack bằng tay một số soft Arm Standar Protection( Em hơi bị stupid mà). Hôm nay em xin mạn phép viết thử một bài unpack Arm nếu có gì sơ xuất hay mạo phạm xin các pác bỏ qua cho em. Ah em làm cả film tut nữa( hi vọng các Mod cho em thêm 20 point hi' hi' hi'): http://rapidshare.de/files/7984042/Arm_Unpack.rar.html Phần 1: Unpacking Load soft lên Olly ta ở đây: Code: 008A4000 > 60 PUSHAD==> We’re here 008A4001 E8 00000000 CALL cwtone.008A4006 008A4006 5D POP EBP 008A4007 50 PUSH EAX 008A4008 51 PUSH ECX 008A4009 0FCA BSWAP EDX 008A400B F7D2 NOT EDX 008A400D 9C PUSHFD 008A400E F7D2 NOT EDX 008A4010 0FCA BSWAP EDX 008A4012 EB 0F JMP SHORT cwtone.008A4023 008A4014 B9 EB0FB8EB MOV ECX,EBB80FEB 008A4019 07 POP ES ; Modification of segment register Như thường lệ với loại Standar chúng ta tìm và fix Magic Jum trước sau đó vào Memory Map Set bp memory on access hoặc Set break on access đều được. Không biết máy của em bị sao hay do soft này mà khi fix magic jum, set bp xong nhấn hoài mà nó không thèm nói năng gì và không thể đến được OEP, hic hic máy với chả móc!!!! Vì khi fix magic jum xong thì không cần phải tìm và sửa IAT thằng nào invalid cut thunk hết.Thôi em đành phải làm bằng tay vậy Nhấn Alt+M vào Memory map set bp memory on access tại Section .text Code: Memory map Address Size Owner Section Contains Type Access Initial Mapped as 00400000 00001000 cwtone PE header Imag R RWE 00401000 00458000 cwtone .text Imag R RWE==> set BP here 00859000 0000B000 cwtone .data Imag R RWE Nhấn Shift + F9, hiện lên một thông báo mình quên chưa đưa Money cho nó, cứ nhấn đại OK ta tới luôn OEP của soft roài : Code: 00412360 68 F47F4300 PUSH cwtone.00437FF4 ; ASCII "VB5!6&*"===> OEP 00412365 E8 F0FFFFFF CALL cwtone.0041235A Tại đây nếu dump ngay thì khi mình nhấn fix Dump thì ImportREC báo ngay lỗi “ Can’t at any session”, em thử rồi các pác không tin thử là thấy liền, may quá anh Nho đã chỉ cho em cách để bypass nó (Thankx nhiều). Mở một Olly khác lên nhấn Alt + M: Double kick vào Contains PE Header chọn Copy=> Select All, sau đó chọn tiếp Binary Copy, close lại. Quay lại với Olly cũ nhấn Alt + M: Double kick vào Contains PE Header chọn Copy=> Select All, sau đó chọn Binary Paste. Oki đến đây ta có thể Dump được roài. Mở PE Tool lên, chọn Dump Full. Tiếp tục mở Iport REC lên chọn Process Cwtone.exe, điền OEP: 00012360 nhấn Iat Autosearch, get Import , show invalid. -Có 6 em Invalid: +00001048 +000013A0 +000013A8 +000013AC +000013AB +000013B4 -Anh em ơi ta xem hàng từng em một ha: -Quay lại Olly Nhấn Ctrl + B, gõ FF25 Ok, ta tới đây: Code: 00411DF0 - FF25 60114000 JMP DWORD PTR DS:[401160] ; MSVBVM60.__vbaChkstk -Nhấn tiếp Ctrl + F: 1, JMP DWORD PTR DS:[401048] ( 001048+ 400000= 401048) nhấn Find R-click, chọn New origin here F7 ta đến đây: Code: 01178B72 55 PUSH EBP 01178B73 8BEC MOV EBP,ESP 01178B75 6A FF PUSH -1 01178B77 68 40271901 PUSH 1192740 01178B7C 68 30181901 PUSH 1191830 ; JMP to msvcrt._except_handler3 01178B81 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] 01178B87 50 PUSH EAX 01178B88 64:8925 0000000>MOV DWORD PTR FS:[0],ESP 01178B8F 83EC 10 SUB ESP,10 01178B92 53 PUSH EBX 01178B93 56 PUSH ESI 01178B94 57 PUSH EDI 01178B95 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP 01178B98 33F6 XOR ESI,ESI 01178B9A 68 107B1901 PUSH 1197B10 ; ASCII "MSVBVM60.DLL" 01178B9F FF15 04211901 CALL DWORD PTR DS:[1192104] ; kernel32.GetModuleHandleA 01178BA5 85C0 TEST EAX,EAX 01178BA7 74 0E JE SHORT 01178BB7 01178BA9 68 047B1901 PUSH 1197B04 ; ASCII "__vbaEnd"=>Note 01178BAE 50 PUSH EAX Vậy là ta tìm được hàm __vbaEnd Quay lại Import REC, tại dòng 00001048 Kick đúp chuột trái ta thấy một bảng Import Editor. Ta gõ vào ô name: __vbaEnd nhấn tiếp ok Vậy là xong một em!! Còn lại mấy em kia Tìm không thấy => Cut hết Fix Dump Bây giờ đến giai đoạn quan trọng nhất, run thử chạy tốt rồi nhưng vào Help About thì thấy báo lỗi thiếu file Armaccess.dll, ok bo cho nó luôn!!!!! Phù unpack xong rồi!!!! Phần 2: Cracking: Khi run soft các pác có thấy dòng Status : Trial Copy không??? Dùng plugin Utra String Reference: Find UNICODE Sau đó tìm string: “Status: Trial Copy”, ta ở đây: Code: 0068993F 68 A8FB4400 PUSH cwtoneup.0044FBA8 ; UNICODE "Status: Trial Copy" 00689944 8B85 ACFEFFFF MOV EAX, DWORD PTR SS:[EBP-154] 0068994A 8B00 MOV EAX, DWORD PTR DS:[EAX] 0068994C FFB5 ACFEFFFF PUSH DWORD PTR SS:[EBP-154] 00689952 FF50 54 CALL NEAR DWORD PTR DS:[EAX+54] Nhìn lên chút xíu thấy : Code: . 00 4 01 1 CC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4 01 1 DC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4 01 1 EC 60 00 B0 00 37 97 80 7C 29 B5 80 7C 2D FF 80 7C ` 7 |) | | 00 4 01 1 FC. 00 4 01 1 9C 6E ED D4 77 BB D7 D4 77 7C B5 D4 77 0B 05 D8 77 n w w| w w 00 4 01 1 AC B2 02 D7 77 54 05 D5 77 9F F2 D6 77 54 00 B0 00 wT w wT 00 4 01 1 BC 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 . here 00 8A 40 01 E8 00 000 000 CALL cwtone .00 8A 400 6 00 8A 400 6 5D POP EBP 00 8A 400 7 50 PUSH EAX 00 8A 400 8 51 PUSH ECX 00 8A 400 9 0FCA BSWAP EDX 00 8A 400 B F7D2 NOT EDX 00 8A 400 D 9C PUSHFD 00 8A 400 E F7D2