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.. Hiện
Trang 1Mở Winhex, Ctrl + N, chọn 1 byte, OK,
Trang 2Ctrl + V, Yes, OK, chọn ASCII Hex, OK :
Chọn byte đầu tiên (00), nhấn delete, Yes :
Trang 3Save 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:
Trang 4Trong ô đầ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
Trang 5Chà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 http://www.reaonline.net/forum/showthread.php?t=2646 để 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:http://www.reaonline.net/forum/showthread.php?t=2649) 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 :
Trang 6push 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