![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. Ну или просто драйвер, читающий из процессов, забивая на винду. Другого решения придумать не могу. |
|
#8
|
|||
|
|||
|
Цитата:
Моего уровня на это не хватает, поэтому и обратился к знатокам) Как уже писал, в первом посте, возможна оплата за готовое решение или за консультацию и помощь в процессе написания этого "Soft-Ice" или драйвера. |
|
#9
|
|||
|
|||
|
А если попробовать заморозить основной поток программы жертвы, затем попробовать "внедриться" и разморозить его. Или может есть поток, который постоянно "держит" ваш процесс/файл дабы к нему не было внешнего доступа ?
|
|
#10
|
||||
|
||||
|
Человек уже решил проблему, так что тему можно закрывать)
|