Cracker Handbook 1.0 part 390 ppsx

5 78 1
Cracker Handbook 1.0 part 390 ppsx

Đang tải... (xem toàn văn)

Thông tin tài liệu

LPCTSTR lpCurrentDirectory, // pointer to current directory name LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION ); Tui nghĩ ko cần phải giải thích gì thêm nhé. 13. Nhấn "run" lần nữa và lần nữa, tất cả đều break ở WriteProcessMemory. Backtracing (chắc là trace wa nhiều lần RETN để về đoạn code chính), chúng ta thấy 1 lệnh nhảy : Code: The WriteProcessMemory function writes memory in a specified process. The entire area to be written to must be accessible, or the operation fails. BOOL WriteProcessMemory( HANDLE hProcess, // handle to process whose memory is written to LPVOID lpBaseAddress, // address to start writing to LPVOID lpBuffer, // pointer to buffer to write data to DWORD nSize, // number of bytes to write LPDWORD lpNumberOfBytesWritten // actual number of bytes written ); Xem thêm 1 vài hình nữa: Vậy là có cái nhìn tốt hơn rồi : WriteProcessMemory chỉ write vào 1 byte ở mỗi lần, ở địa chỉ bắt đầu là 429136 Vùng buffer lần lượt chứa 3 địa chỉ, ở mỗi lần sẽ ghi đè byte từ process này qua process kia. Bạn có thể dòm vào cửa sổ Dump để xem các byte nào được write nếu muốn. 14. Xóa BP ở WriteProcessMemory đi (Tui cũng đã đặt thêm vài BP, ví dụ như OpenProcess nhưng break ở đó ko có thêm thông tin gì nên tui xóa hết òi). Bấm F9 và break ở ResumeThread Code: The ResumeThread function decrements a thread's suspend count. When the suspend count is decremented to zero, the execution of the thread is resumed. DWORD ResumeThread( HANDLE hThread // identifies thread to restart ); Chắc ko cần giải thích thêm > nhấn F9 và game chạy. 15. Suy nghĩ tí nào. Điều này có thể hiểu là : loader "Sample Game.exe" sẽ chạy "Sample Game.exe.locked" và suspend thread. Bắt đầu patch vào ở 429136 cho đến khi hoàn thành thì resume thread và game run ngon lành 16. Ai đó có thể nghiên cứu thêm, nhưng giờ chúng ta hãy thử trong Olly. Load Sample Game.exe.locked và chọn > Go To > 429136 Chaaa ! tất cả đầu là byte 0, từ 429136 cho đến 429534. Ọc ọc, nhiều byte quá đi mất ! Nếu không có mấy byte ở đây, game sẽ crash . > trong quá trình bảo vệ, protector đã "cut" các byte này từ file gốc, rồi đổi tên nó thành "locked" ,sau đó tạo 1 loader để quản lý phần đăng kí và inject lại các byte đó vào khi file được bảo vệ cho phép. 17. Giờ hãy chạy game (ở ngoài Olly) rồi attach vào Olly file Sample Game.exe.locked. Goto tới 429136 > tất cả byte đã được nạp vào và code trông tốt hơn rồi đấy. 18. Tô đen tất cả các byte từ 429136 đến 429535 > chọn binary copy. Sau đó tắt hết đi. 19. Đổi tên ".locked" thành tên file gốc .exe rồi load nó vào Olly > Go to tới 429136 > Binary paste các byte đã copy vào. Save lại file đó. 20. Xóa file loader đi. Chạy game. Tất cả đầu tốt. Another one bites the dust ;) Phụ chú: Sau khi viết bài này, tui thử protect vài file nữa, và tốt rồi, tui đã protect được winasm studio executable > thành công ! Tui cũng thử protect RadAsm.exe của tui > ngon lành !!! Vậy là tui đã ko may mắn với các file kia? lol Tuy nhiên, Tui vẫn chưa hiểu cái option stolen bytes để làm gì nữa. Chọn hay ko chọn cũng như nhau àh. Nếu bạn muốn thử cái protector này thì hãy lưu ý là nó sẽ ghi đè lên file gốc khi tạo loader nếu option backup ko được check. Xem lại hình đầu tiên để biết site của protector này. << END OF TRANSLATION >> Big thanks to Lena151. Best regard. Trickyboy(reaonline.net) Bảo vệ resource của exe,dll file. I)Giới thiệu: Thông thường resource của một file exe hay dll nằm trong section .rsrc hoặc rsrc. Những resource này có thể được chỉnh sửa bởi 1 số chương trình như: ResHacker, ExeScope và TGT soft cũng có 1 chương trình chỉnh sửa resource(tui chưa thử), nghe nói có thể chỉnh sửa resource ngay cả khi chương trình đã được protect. Ngoài ra reverser hay cracker cũng có thể chỉnh sửa resource chỉ bằng 1 chương trình hex edtior. Mục đích của bài này là nói về cách thức để chống lại các chương trình như ResHacker, ExeScope Tiếp theo đó là chống lại việc chỉnh sửa resource bằng hexeditor. Phương pháp mà tui đề cập đến hiện đang được một số protector, compressor sử dụng như asprotect, upx Ở bài này tôi chỉ đề cập đến phương diện lý thuyết, nếu có thơi gian rảnh, tôi sẽ áp dụng vào lập trình để minh họa. Yêu cầu là bạn đã nắm 1 số kiến thức về PE file, đặc biệt là phần cấu trúc của resource. II)Cấu trúc của resource section: IMAGE RESOURCE DIRECTORY Type IMAGE RESOURCE DIRECTORY NameID IMAGE RESOURCE DIRECTORY Language IMAGE RESOURCE DATA ENTRY IMAGE RESOURCE DIRECTORY STRING Dữ liệu thực sự của các resource 1)IMAGE RESOURCE DIRECTORY Type: xác định xem có bao nhiêu lọai resource trong file, ta có thể biết resource gồm những loại nào dựa vào ID của nó. Xem hình bên dưới: Bạn có thể thấy tương ứng với Number ofID Entries là 8 sẽ có 8 loại resource ở đây. Ví dụ, với ID =3 có nghĩa đây là Icon resource, ID=4 là Menu resource 2)IMAGE RESOURCE DIRECTORY NameID Phần này sẽ xác định số lượng mỗi loại resource , ví dụ tương ứng với resource Icon thì chương trình có thể có 1 hay nhiều icon 3) IMAGE RESOURCE DIRECTORY Language: Phần này sẽ xác định thông tin của từng resouce cụ thể Ví dụ thông tin của ICON 1, ICON 2, ICON 3 rồi đến MENU 1, MENU 2 cho đến hết. . ngon lành 16 . Ai đó có thể nghiên cứu thêm, nhưng giờ chúng ta hãy thử trong Olly. Load Sample Game.exe.locked và chọn > Go To > 42 913 6 Chaaa ! tất cả đầu là byte 0, từ 42 913 6 cho đến. Goto tới 42 913 6 > tất cả byte đã được nạp vào và code trông tốt hơn rồi đấy. 18 . Tô đen tất cả các byte từ 42 913 6 đến 429535 > chọn binary copy. Sau đó tắt hết đi. 19 . Đổi tên ".locked". of bytes written ); Xem thêm 1 vài hình nữa: Vậy là có cái nhìn tốt hơn rồi : WriteProcessMemory chỉ write vào 1 byte ở mỗi lần, ở địa chỉ bắt đầu là 42 913 6 Vùng buffer lần lượt chứa 3

Ngày đăng: 03/07/2014, 18:20

Tài liệu cùng người dùng

Tài liệu liên quan