Перейти к содержанию

Потоки В Чужой Программе / Путь Подгрузки Dll


Рекомендуемые сообщения

Доброго времени суток.

 

1) Скажите, как получить список всех потоков в чужой программе? И, при необходимости, усыпить один из потоков? Именно - усыпить, добавить Sleep(1000) или больше. Ну или любые другие извращения с потоками.

 

2) Хочу написать инжектор-автомат, дабы тестить свои детища в формате dll. Однако, при кодинге инжектора необходимо указывать конкретный путь подгрузки dll.

Как сделать так, чтобы инжектор как бы сам сканировал свой путь?

К примеру C:\Users\Desktop\Coding\test.dll  Так вот, мой инжектор в папке Coding и чтобы он сам видел дллку с именем test.dll.

Как бы вот такая задумка.

Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

Привет! Отвечу пока что на второй вопрос. При запуске программе передаются
аргументы командной строки. Нулевой аргумент - это полный путь до исполняемого
файла. Еще можно, как вариант, положить dll рядом с исполняемым файлом игры или
в папку system32.
Ссылка на комментарий
Поделиться на другие сайты

Привет! Отвечу пока что на второй вопрос. При запуске программе передаются аргументы командной строки. Нулевой аргумент - это полный путь до исполняемого файла. Еще можно, как вариант, положить dll рядом с исполняемым файлом игры или в папку system32.

Аргументы командной строки? Okey, Keng: how can i use this information?

(папка system32 не совсем удачный вариант, т.к. я закину свой инжектор в папку с Release вариантом дллки и отправлю ярлык инжектора вниз к тулбарам или на раб.стол. Так удобнее...)

Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

You always can try [this] pretty effective method.

Yeah, i don't think about it. Thanks. :)

 

1 CreateToolhelp32Snapshot + TH32CS_SNAPTHREAD

Ладно, а как манипулировать этими потоками?

И... Как их вывести на экран?

Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

На форуме много тем по функции CreateToolhelp32Snapshot. Только в них указывается, как искать процесс и перебирать модули. Вот делай по аналогии с модулями, только перебирай потоки, как тебе выше написали.

Ссылка на комментарий
Поделиться на другие сайты

На форуме много тем по функции CreateToolhelp32Snapshot. Только в них указывается, как искать процесс и перебирать модули. Вот делай по аналогии с модулями, только перебирай потоки, как тебе выше написали.

Собственно, начал.

        HANDLE hSnap = NULL;	THREADENTRY32 te32;	hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);	if (hSnap != NULL)	{			}

А что дальше? Как вывести потоки конкретного процесса?

Ссылка на комментарий
Поделиться на другие сайты

Ты не дочитал [документацию]. Секция "TH32CS_SNAPTHREAD".

Ага, я понял что нужно юзать эту th32OwnerProcessID штуку.

Но как её использовать? Там примеры реализации не показаны. 

Всмысле, 

THREADENTRY32 te32te32.th32OwnerProcessID ... and?
Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

Ну ты такой снял снэпшот всех тредов, используя TH32CS_SNAPTHREAD, а потом побежал в цикле через Thread32First, которая возвращает тебе THREADENTRY32, у которой есть поле th32OwnerProcessID. Его-то ты и сравниваешь с идентификатором нужного тебе процесса. Там так и написано.
  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

Ну ты такой снял снэпшот всех тредов, используя TH32CS_SNAPTHREAD, а потом побежал в цикле через Thread32First, которая возвращает тебе THREADENTRY32, у которой есть поле th32OwnerProcessID. Его-то ты и сравниваешь с идентификатором нужного тебе процесса. Там так и написано.

MXD4N6k.png

Ok, let's make steps:

1. 

2. 

HANDLE hSnap = NULL;hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
for (Sleep(100)) {Thread32First(hSnap, &te32) {... and?}}
Ссылка на комментарий
Поделиться на другие сайты

Читать - это круто! Нет, правда.

Я знаю это) Мертвые души сейчас читаю) Мне нравится :)

Правда есть и обратная сторона медали - у меня появляются наклонности гуманитария. 

Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.