|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Фев 26, 2004 16:39:23 кто имеет реальные практические продвижения в этом вопросе напишите please: 1) как получить доступ к процессу, защищённому этим протектором на запись в память процесса. 2) желательно кусок решения оформить в виде исходника или хотя бы указать алгоритм решения (перечислить подробно как разлочить память процесса и как эти уроды её закрыли). VirtualProtectEx не катит... |
|
|
Дата: Фев 26, 2004 17:13:30 А ты не пробовал поиграться с моим дампером, он может подгрузить длл'ку в удалённый процесс. Попробуй, мне интересно что получится. |
|
|
Дата: Фев 26, 2004 17:46:48 · Поправил: Baron Gede Скинь плиз линк на твой дампер и доку, а я доложу ситуацию. (тестить буду под W2003 и W98SE2) только не пойму чем мне поможет подгрузка dll-ки в удалённый процесс.. Мне exe-шник интересно пропатчить в памяти или хотя бы доступ в принципе получить (pid и разлочить некую область памяти, например 500177..50017b) |
|
|
Дата: Фев 26, 2004 18:08:27 · Поправил: Asterix Дампер лежит на этом сайте, более того у меня уже почти готова более свежая версия, которая позволяет загружать и выгружать длл'ку, а в эту длл'ку можно запихнуть любой код, даже написать патчер, главное что мы уже в процессе протектора. http://www.wasm.ru/tools/6/Dumper.zip |
|
|
Дата: Фев 26, 2004 21:00:41 спасибо, дампер скачал. Так как мне написать патчер - предлагаешь сделать inject DLL в контекст target process'а и только затем патчить ? Разъясни трюк с трэдами плиз (или как там у тебя)... :) |
|
|
Дата: Фев 26, 2004 21:02:16 · Поправил: Baron Gede и вообще приму в дар исходники на асме :))) инкогнито и нераспространение гарантирую (ежели хочешь чтобы идею не увели) |
|
|
Дата: Фев 26, 2004 21:24:13 · Поправил: Baron Gede Попробовал, как и обещал протестить под Windows 2003 Standart Edition. Результат нулевой. Скриншоты того, что получил при попытке дампить прилагаю. пардон: аттач не поместился - могу на мыло скинуть. Так что старый трюк с The CreateRemoteThread & LoadLibrary техникой провалился HANDLE hThread; char szLibPath[_MAX_PATH]; // The name of our "LibSpy.dll" module // (including full path!); void* pLibRemote; // The address (in the remote process) where // szLibPath will be copied to; DWORD hLibModule; // Base address of loaded module (==HMODULE); HMODULE hKernel32 = ::GetModuleHandle("Kernel32"); // initialize szLibPath //... // 1. Allocate memory in the remote process for szLibPath // 2. Write szLibPath to the allocated memory pLibRemote = ::VirtualAllocEx( hProcess, NULL, sizeof(szLibPath), MEM_COMMIT, PAGE_READWRITE ); ::WriteProcessMemory( hProcess, pLibRemote, (void*)szLibPath, sizeof(szLibPath), NULL ); // Load "LibSpy.dll" into the remote process // (via CreateRemoteThread & LoadLibrary) hThread = ::CreateRemoteThread( hProcess, NULL, 0, (LPTHREAD_START_ROUTINE) ::GetProcAddress( hKernel32, "LoadLibraryA" ), pLibRemote, 0, NULL ); ::WaitForSingleObject( hThread, INFINITE ); // Get handle of the loaded module ::GetExitCodeThread( hThread, &hLibModule ); // Clean up ::CloseHandle( hThread ); ::VirtualFreeEx( hProcess, pLibRemote, sizeof(szLibPath), MEM_RELEASE ); ------------------------------- // Unload "LibSpy.dll" from the target process // (via CreateRemoteThread & FreeLibrary) hThread = ::CreateRemoteThread( hProcess, NULL, 0, (LPTHREAD_START_ROUTINE) ::GetProcAddress( hKernel32, "FreeLibrary" ), (void*)hLibModule, 0, NULL ); ::WaitForSingleObject( hThread, INFINITE ); // Clean up ::CloseHandle( hThread ); ---------- ещё есть The CreateRemoteThread & WriteProcessMemory техника тока енто не я такой умный, а инет :))) ни черта не работает эта шняга имхо |
|
|
Дата: Фев 26, 2004 21:38:27 Ты не написал dll'ка грузится в процесс или драйвер мешает ей, если грузится то попробуй сдампить (дамп==0х1000h*количество страниц) ;-) По поводу патчера, мне кажется что такой протектор должен контролировать свой код и наверно патчить не даст, может какие-нибудь ещё имеются трюки с проверкой CRC например, можешь написать свою dll'ку и поэкспериментировать, код который должен выполняться пихай в DllMain. Про трюк с тредами читай тут: _http://www.codeproject.com/useritems/winspy.asp Исходники пока распространять не планировал ;-) |
|
|
Дата: Фев 26, 2004 21:40:25 Вобщем пока я писАл ты статью уже нашёл ;-) Опиши словами что было при попытке сдампить. |
|
|
Дата: Фев 26, 2004 21:47:03 · Поправил: Baron Gede я её ещё месяц назад нашёл если не больше :))) ___ так я чем только не пробовал дампить - не дампится у меня. Я не спорю, что под W98 может и сдампится - не пробовал. даже и не знаю как быть. Мне именно патчить надо, а не дампить даже вообще-то. А там какая-то хитрая карусель - проверяет целостность своего кода видимо. Я дампер пробовал и под админом и под простым юзером запущать - глухо. Если дампить не адресно, то это, думаю, под W98 надо. Под XP там жо** какая-то. :( |
|
|
Дата: Фев 26, 2004 21:48:45 а было просто: "Не могу открыть процесс" написал дампер. скрины могу послать на мыло. |
|
|
Дата: Фев 26, 2004 22:05:34 Значит PID не правильный, ты его откуда брал? |
|
|
Дата: Фев 26, 2004 22:18:06 В драйвере стоит антидамповая защита - защита от OpenProcess, патчить или дампить можно только от имени процесса. После первого вызова DeviceIoControl запакованному приложению открывается доступ к IDT и всем портам ввода-вывода, таблицы страниц патчаться. В остальных вызовах DeviceIoControl просто передаётся адрес памяти, куда драйвер управление передаёт, так что не поисследовать, если softice стоит, то комп перезагружается. |
|
|
Дата: Фев 26, 2004 22:23:10 Скрины кстати лучше в PNG сохранять или сжимать специальной прогой :-) , но в винде начиная кажется с XP можно сохранять из Paint'а в PNG, хотя и не очень оптимально :-) |
|
|
Дата: Фев 27, 2004 01:57:07 Скачал себе эту хрень но он у меня почему-то вообще не запускается (win98). |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.054 |