|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Обход защиты чтения памяти
Задача подключиться и читать данные из программы.
Все было хорошо, пока не поставили блок на подключение к процессу. Изменение привилегий читающей программы не помогло. openprocess возвращает 0. Возможна оплата готового решения, писать в ЛС. Последний раз редактировалось Colombo, 03.05.2013 в 15:56. |
#2
|
||||
|
||||
А вот это (см. прикреплённый архив) снимает блокировку с процесса? Если не снимает, то подключение тогда вообще не возможно.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 09.05.2013 в 12:21. |
#3
|
|||
|
|||
Цитата:
Попробую, отпишусь. |
#4
|
|||
|
|||
Цитата:
Немного подробностей по проблеме читаю процесс так Код:
procedure TForm2.ConnectGame; var WndHndl: THandle; PID, BytesCount, ipbuf: size_t; begin WndHndl := findwindow('ArmA 2 OA', nil); GetWindowThreadProcessId(WndHndl, @PID); hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ or PROCESS_VM_OPERATION, False, PID); if hProcess = 0 then begin BitBtn1.Caption := ('error'); BitBtn1.Font.Color := clRed; end else begin BitBtn1.Caption := ('connected'); BitBtn1.Font.Color := clGreen; end; if hProcess <> 0 then try Девятая возвращает 0. Это происходит именно когда срабатывает блокировка на открытие/чтение процесса, потому что если ее обойти (есть временный вариант), то все работает. |
#5
|
|||
|
|||
Какова разрядность процесса, который читаете?
Права админа у вас есть? Отладочные привилегии? В чем заключается этот временный метод? |
#6
|
|||
|
|||
Цитата:
2- программа, которая читает, запускается с правами администратора 3- пробовал ставить, не помогло, хотя возможно что криво ставил Он заключается в том, что если открыть процесс на чтение в самом начале, как только загрузилась программа из которой читаем, то он открывается и остается открытым и все работает. А вот если его попытаться открыть в процессе использования программы, из которой читаем, то он уже не откроется. А нужно, что бы его можно было открыть, на чтение, в любой момент. |
#7
|
||||
|
||||
Вероятнее всего работает какой-нить антидебаг как защита от кряка. Знаю пару методик, которые фиг обойдешь.
Решение - пиши свой Soft-Ice. Ну или просто драйвер, читающий из процессов, забивая на винду. Другого решения придумать не могу. jmp $ ; Happy End! The Cake Is A Lie. |