Tải bản đầy đủ (.pdf) (6 trang)

Cracker Handbook 1.0 part 189 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (749.91 KB, 6 trang )



Mở Winhex, Ctrl + N, chọn 1 byte, OK,



Ctrl + V, Yes, OK, chọn ASCII Hex, OK :



Chọn byte đầu tiên (00), nhấn delete, Yes :



Save lại với tên CodeSPTable.bin,

Các bác còn nhớ:
DS:[00AC9230]=01300000
EAX=00BAB014

Vậy là spliced code được đ
ặt tại 01300000, trong dump window, Ctrl + G, 01300000, Bôi trắng
toàn bộ, binary => binary copy, vô Winhex paste, save lại với tên CodeSPCode.bin.

He`, sắp kết thúc rồi. Bây giờ mở ArmTools:



Trong ô đầu tiên link đến file CodeSPTable.bin, trong ô thứ 2 link đến CodeSPCode.bin, trong
ô thứ 3 link đến file dumped_.exe. Ấn Parchar. Done.



Tóm lại em ko thích cách của bác Tomo này chút nào, trâu bò bỏ xừ.

Như em đã nói ở trên còn có 1 cách fix IAT elimination nữa trong tut của bác Tomo, dạo này
em hơi bận, ko có điều kiện đọc, bác nào đọc rồi thì hoàn thiện giúp em cái tut này với. Thanks
các bác trước nha.






Crack ASPR 2.x bằng Hook API

Chào mọi người trong box.
Mình post lên đây tut crack ASPR 2.x / 2.12 SDK bằng Hook API. Hiện tại vấn đề
unpack thằng này đang được thảo luận bên Unpack box, các bạn có thể tham khảo
tại để tìm hiểu về soft
này.
1. Giới thiệu về soft: Nó được pack bằng Aspr 2.0 / 2.12 SDK (theo hac nho).
Hiện tại unpack thằng này là cả một vấn đề lớn ! Nhưng ta hoàn toàn có thể
crack nó bằng hook API mà không cần unpack.
- Nguyên tắc hoạt động của soft : trong quá trình upack, nó load code lên một
memory được cấp động và chạy luôn check license tại đó, nếu đúng thì unpack
tiếp. Quá trình check license bao gồm :
+ Đọc Hardware ID bằng DeviceIOControl, mã hoá lấy 1 dword , mã hoá thành 13
bytes
+ Đọc reg key mã hoá lấy $80 bytes
+ Mã hoá $80 bytes này trong một vòng decode khủng khiếp (link
at: và decode với

Hardware ID để lấy $80 cấu hình cho soft run.(xem link trên cùng).
Ta đã biết $80 byte này lên hoàn toàn có thể crack nó.

2. Đặt vấn đề crack.
- Ta đã biết sau khi load code, soft phải đọc Hardware ID (2 lần) để lấy thông số
tại các địa chỉ xác định. Do đây là code được load lên có địa chỉ phần thấp xác định
và lúc này đã qua hết các đoạn check Int3 nên ta chọn Hook DeviceIoControl để
công việc xử lý là ít nhất ( có thể chọn RegOpen / RegQuery nhưng ta phải
"chuốt" code nhiều hơn).
- Ta không thể dùng make loader do soft cần vài arg để chạy và quan trọng hơn nó
có Anti debug trong khi unpack soft và cả trong dll nữa (cũng bị pack gần như
vậy).
- Vì vậy tôi chọn hook DeviceIoControl theo các lý do nêu trên.

3. Tạm gọi là kỹ thuật Hook.
- Để hook được nó ta viết một dll gọi là Mydll cho dễ gõ(code dll này mô tả sau).
Trong dll này có một function AutoLoad(Dllhandle: THandle) : boolen đặc biệt
dùng để kiểm tra hook có thành công hay không và lấy Handle của chính Mydll
khi được load - dùng để gọi FreeLibrary.
Để load Mydll, ta lợi dụng luôn code của soft để load nó vào cùng process để hook
cho đơn giản. Bạn để ý nhé, tại 401000 của soft có opcode :
push 46xxxx
call 46yyyy
ret
Thực chất đây chỉ tương ứng jmp 46xxxx thôi. Ta lợi dụng luôn hàm Call 46yyyy
này để load Mydll. Bạn tìm đoạn byte trống trong code, khoảng $50 và nhét
"Mydll", "AutoLoad" và đoạn code sau vào đó :
push @"Mydll" //đ/c chuỗi "Mydll"
call LoadLibraryA // đ/c hàm này ở trong Import Table.
push eax -> cất handle , mình đã bỏ qua đoạn test eax, eax

push @"AutoLoad"
push eax
Call GetProcAddress
Call eax -> call autoload (Handle)
test eax, eax
je _OK
push handle of Mydll
Call eax -> nếu error, AutoLoad = @FreeLibrary
_OK : ret

×