Chủ đề: Inject Code on the fly by benina
-
20-03-2010, 09:58 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Inject Code on the fly by benina
Hi các bạn!
Hôm nay tôi sẽ mô tả một kỹ thuật inject code vào trong 1 process đang runtime mà không sử dụng dll để inject code. Kỹ thuật này sẽ inject một thread mới vào trong một process on the fly và cho resumethread. Đặc điểm của code chạy thread mới này là do ta cấp phát vùng nhớ cho process target chứ không dùng code của một dll được load lên process.
Thật ra phương pháp này có lâu rồi, và đã được Thomas Kruse mô tả chi tiết trong bài viết “Processless Applications - Remotethreads on Microsoft* Windows 2000, XP and 2003” rất nổi tiếng. Trong bài viết trên, tác giả coding các ví dụ mô tả bằng ngôn ngữ masm. Hôm này tôi sẽ thực hiện pp này trên VC++ 6.0 để các bạn yêu thích ngôn ngữ C++ có một template code sử dụng sau này. Đồng thời nó cũng là một bài lưu trữ cho tôi khi sau này cần nhớ lại.View more random threads:
- Sử dụng DLL files trong Visual C++ 2005
- Hướng Dẫn Cách Sử Dụng WTL wizards trong VS 2008
- Hướng dẫn viết một game đơn giản trong DirectX từ A - Z
- Cách lấy System Info trong lập trình Win32 API
- Memory tracker
- Inject Code Cave
- Cách tạo và sử dụng Tab Control trong ứng dụng Dialog-Based
- [Game Advanced Tetris và mã nguồn] - Những vấn đề xoay quanh CFW, API, MFC, CLR
- Làm quen với lập trình MFC - VS2008
- Một số hàm thao tác chuỗi hay dùng trong VC++
-
20-03-2010, 10:16 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Sorry, Có một lỗi trong source, chỉnh lại như sau:
ThreadCodeAddr=VirtualAllocEx(hProcess, NULL, _sizeofcode_, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
ThreadDataAddr=VirtualAllocEx(hProcess, NULL, _sizeofdata_, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
DWORD _BytesWritten;
hThread = CreateRemoteThread(hProcess, NULL, NULL,(LPTHREAD_START_ROUTINE)ThreadCodeAddr, ThreadDataAddr,CREATE_SUSPENDED, &_dwThreadID);
_dwThreadHandle= (DWORD) hThread;
WriteProcessMemory (hProcess, ThreadCodeAddr, fnInject, _sizeofcode_, &_BytesWritten);
WriteProcessMemory (hProcess, ThreadDataAddr, &_dwThreadID, _sizeofdata_, &_BytesWritten);
ResumeThread(hThread);
CloseHandle(hProcess);
Đây là bản ver 1.1
http://www.mediafire.com/?miz0lnjne1q
-
04-04-2010, 03:46 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Phần 2: Không có asm
http://www.mediafire.com/?jhhcroj5mnu
Dưới ánh nắng mặt trời đang lên, những đống pallet nhựa An Giang trải dài mênh mông như những bức tranh tự nhiên đầy sắc màu. Mỗi chiếc pallet nhựa không chỉ là một vật dụng thông thường mà còn là...
Pallet nhựa An Giang giao hàng...