Hôm nay chúng ta sẽ luyện 1 món nửa tà nửa chánh .Đó là ẻm “MoleBox Pro 2.6.0.2375 Trial” .Do kế thừa các trò ma giáo từ đám đàn anh Mole 2.5x nên việc tiêu diệt em này ko được suôn sẻ c
Trang 1I.Introduction
Chào các bạn, các bác và các lão Dạo này giang hồ dậy sóng nhiều quá ,trick sức yếu nên đành buông kiếm “gút” lui Nhưng do bị 1 băng đảng toàn cao thủ truy sát ,buộc trick phải múa kiếm tự vệ Hi vọng 1 đường kiếm này có thể giúp trick giải quyết nợ máu giang hồ Không thì đành chịu chết thôi
Hôm nay chúng ta sẽ luyện 1 món nửa tà nửa chánh Đó là ẻm “MoleBox Pro 2.6.0.2375 Trial” Do kế thừa các trò ma giáo từ đám đàn anh Mole 2.5x nên việc tiêu diệt em này ko được suôn sẻ cho lắm Mong rằng qua bài viết này ,chúng ta có thể nói DONE với MoleBox Hãy đề thăng công lực lên đi ,cuộc chiến sẽ khá dài nên những ai dai sức mới trụ lại được Nào, bắt đầu …
II.Bypass ASProtect Layer
Ngộ thay, ngay cả nhà phát triển Mole cũng ko tự tin với chính Packer của các lão Layer mà chúng ta gặp phải lại là ASProtect 2.2 SKE:
Ấy ấy, chớ vội hoang mang ,bình tĩnh nghe trick trình bày tí
Trang 2Trong khi đó, ASProtect SKE nổi tiếng nhất ở chỗ : Hide/Eliminate IAT Nếu
nó ở layer thứ 2 (hay n != 1) thì chẳng có gì đáng sợ cả Thực nghiệm cho thấy Mole luôn được pack bằng chính nó Do đó ASProtect chắc chắn ko phải layer đầu tiên Vậy thì chúng ta cùng thịt nó đi
Động tác quen thuộc với các Exception trong Olly khi đụng ASProtect 2.x :
Việc pack nhiều layer có thể xem là hay ,đồng thời cũng bộc lộ nhiều cái dở
.Hay ở chỗ làm run tay các bác yếu tim và hạn chế các Tool unpack chuyên
dụng
Còn dở thì lại nhiều hơn cả cái hay Ta hãy xét lại các tính năng cơ bản của đa
số các packer là:
- Encrypt Code
- Hide/Eliminate IAT
- Destroy Relocation (DLL/OCX)
- Compress Resource Khi pack nhiều layer ,các công việc trên đều do layer đầu tiên kiêm nhiệm.Các
layer sau chỉ đơn giản là encrypt “nhẹ” thêm 1 section code của loại packer đó
(nếu có) nhằm hide EP của các layer trước Và tận dụng các Anti-Debug của
Trang 3Nhiều bạn lại hay thắc mắc là “tại sao cứ phải Uncheck Ignore Exception như thế ? Máy móc quá đi mất“ Đúng thế ,hầu như trong rất rất nhiều tut, chỉ nêu phương pháp chứ chưa hề đả động đến vấn đề “tại sao” Thậm chí người viết đôi khi cũng cóc biết nó là cái quái gì ,có thể họ lười giải thích hoặc đơn giản chỉ là 1 script kiddy làm theo ào ạt Vậy thì ta tạm ngưng để dạo qua 1 vài định nghĩa :
Bây giờ load file vô đi các bạn ,ta dừng ở EP của ASProtect 2.x:
Shift-F9 n lần cho đến khi target chạy hoàn toàn Tốt nhất để ko bị detect là bạn
ko được set bất kì memory BP nào nhé vì ASProtect sẽ tạo ra Thread để check các
BP đấy , mỗi lần làm lại ,nên check trong cửa sổ BP xem em nào có thì xóa hết đi trước rồi hãy RUN Trên máy trick thì 31 lần Shift-F9 là target run ,nên Ctrl-F2 để restart và chỉ thực hiện lại 30 lần để đến đây :
Exception là các lỗi phát sinh trong quá trình Runtime Để ngăn ngừa chương trình
bị crash khi gặp các lỗi này ,người lập trình cố gắng ghi lại để xử lý Nếu xử lý thành
công thì chương trình có thể tiếp tục chạy bình thường Ngược lại thì sẽ gửi thông
báo loại lỗi gì và gọi Exit Process để thoát chương trình Cách làm những thao thác
trên chính Handle Exception (tạm dịch là điều khiển lỗi)
Có nhiều phương pháp để handle exception ,phổ biến là SEH (Structured
exception handling) SEH có thể dùng để xử lý cả 2 loại lỗi :exception cứng và mềm
Exception cứng thường phát sinh trong quá trình tính toán :như lỗi chia không
,tràn bộ đệm Exception mềm như lỗi truy xuất con trỏ null ,các tham số ko hợp
lệ …
SEH ban đầu chỉ để dùng trong các chương trình code bằng C ,nhưng về sau thì
cho cả C++ , MFC mặc dù theo lời khuyên của các chuyên gia thì : C++ exception
handling nên dùng cho C++ và MFC exception handling nên dùng cho MFC (các
bạn tự tìm hiểu thêm nhé)
Trang 4Ta đang ở trong vùng code do ASProtect tạo ra ,Alt-M mở Memory Map ,”Set
memory breakpoint on access”(MBOA) lên section code ở 432000:
Tiếp tục Shift-F9 lần chót ,và ta Break tại :
Đây ko phải là OEP của file trước khi pack đâu nhé ,nó chính là EP của layer tiếp theo : MoleBox Pro Bạn thích Dump file riêng ra thì tùy : (nếu lười, bạn có thể dùng Stripper để unpack cũng sẽ ra được layer này)
Trang 5III.Unpacking MoleBox Pro Layer
A – Find OEP ,Fix Hide IAT & Extract 2 module :
Ở đây trick sẽ mần tiếp từ điểm này luôn ,xóa MBOA đi bạn nhé Giờ bạn có thể dùng phương pháp unpack ở ASPack hay UPX để tìm tới OEP Đó là Trace F7 qua câu lệnh PUSHAD Follow in Dump thanh ghi ESP Break on access các Byte
…
Nhưng Mole thì khá dễ tìm OEP theo 1 cách khác Ta Enter vào lệnh CALL thứ 2:
Sẽ tới đây :