[Ответить в тред] Ответить в тред

09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!
30/09/16 - BREAKING NEWS ШОК АБУ ПРОДАЛСЯ МЭЙЛУ (на самом деле нет)
25/09/16 - Персональное обращение Абу - СБОР ПОЖЕРТВОВАНИЙ НА ДВАЧ



Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 17 | 1 | 4
Назад Вниз Каталог Обновить

Мамкин погромист-фрилансер итт. Вкатился на Аноним 01/10/16 Суб 22:10:30  849076  
14753490303310.jpg (40Кб, 650x958)
Мамкин погромист-фрилансер итт.
Вкатился на freelancer.com и первым заданием получил создание функции для существующего проекта на C# (хер его знает что там за проект, школоруткит может какой-то), суть такова: функция должна принимать имя процесса и результатом своей работы являть скрытие его из списка процессов в диспетчере задач, как минимум на Windows 7 x64. Я оч долго думал и в итоге пришел к следующему:

- На Detours у меня денег нет, а бесплатный Detours не умеет в 64бит. Решений для C# вообще негусто оказалось - и правильно, он же не в нативный код а в MSIL собирает, как там хукать вообще?

- Функции, с которыми надо работать (интернет советует NtQuerySystemInformation, мол это функция, которая получает инфу для таскмана, и если перехватить её вызов, сравнить аргумент с целевым именем, то в случае чего можно прервать её работу) в основном WinAPI-шные, C# с ними работает крайне неохотно (пробовал ShowWindow через DLLImport встроить, так там ещё enum SW_... потребовалось руками писать, ну или у меня руки из жопы просто), и лучше написать всё на плюсах, а потом встроить плюсовую библиотеку в код Windows.Forms на шарпе, из которого вызывать написанную мной функцию допустим void HideProc(string ProcName).


Реквестирую всякую инфу по перехвату вызова функции, поскольку я тут курю интернет и понимаю, что нихуя не понимаю - ну хорошо, предположим в начале большинства WinAPI функций, в т.ч. нужной, есть инструкция, эквивалентная NOP, и туда можно вставить jmp [адрес-моего-обработчика-вызова] , но опыта и понимания, как это должно выглядеть, у меня нет - ну хорошо, taskman вызывает функцию NtQuerySystemInformation, из неё управление переходит в мою InterceptThis функцию, которая достает из стека предназначавшийся для NtQuery аргумент (имя процесса), сравнивает его с требуемым, и если они совпадают - то что тогда? Каким образом перехватчик прервет выполнение NtQuery?
В общем нужна помощь знающих людей. С меня найденные в интернете сиськи.

Аноним 01/10/16 Суб 22:18:27  849081
>>849076 (OP)
бамп
Аноним 01/10/16 Суб 22:30:52  849087
mhook
Аноним 01/10/16 Суб 23:09:11  849098
>>849087
Большое спасибо. Под восьмеркой только что попробовал - на примере вылетела ошибка времени компиляции, мол неизвестная платформа, на восьмерке mhook работать не будет?
Аноним 01/10/16 Суб 23:59:11  849113
>>849081
бамп
Аноним 02/10/16 Вск 00:48:05  849129
>>849076 (OP)
Короче я не осилю это, собираюсь использовать сплайсинг для хука. Внимание вопрос - не возникнет ли у меня проблем на 64бит?
Аноним 02/10/16 Вск 01:40:36  849145
>>849129
Надо пояснить. Нашел как получить адрес NtQuerySystemInformation, тыры-пыры, так вот у неё по идее вначале 40 бит свободных, в 32-битных системах их хватает на jmp[адрес], а в 64?
Аноним 02/10/16 Вск 01:44:33  849146
>>849098
Все там работает. Вопрос в том, что инжектить тяжело.
Аноним 02/10/16 Вск 01:51:22  849148
>>849146
Но как же уместить адрес в этих 5 байтах вначале функции? Извини, просто не понимаю ничего в этом.
Аноним 02/10/16 Вск 02:30:52  849164
>>849146
Только что попробовал перезаписать нулевой байт NtQuery... NOP'ом - ошибка сегментации. ЧЯДНТ?
Аноним 02/10/16 Вск 08:46:55  849188
>>849076 (OP)
бамп
Аноним 02/10/16 Вск 12:23:51  849293
>>849076 (OP)
бамп
Аноним 02/10/16 Вск 14:57:04  849337
>>849164
VirtualProtect?
Аноним 02/10/16 Вск 15:33:38  849365
>>849337
Нет, просто я не знаю, как получить адрес процесса, например сидит этот taskmgr.exe в памяти, у него по нулевому адресу 4D5A, заголовок то бишь, чуть после него заглушка "This program cannot be run in DOS mode", так вот я не знаю как мне всё это прочитать.
Аноним 02/10/16 Вск 17:42:51  849442
>>849337
Господи, что за хуету сморозил. В общем откопал статью на хабре https://habrahabr.ru/post/178393/ пытаюсь не запутаться.
Аноним 02/10/16 Вск 17:43:57  849443
>>849337
Просто оказалось, что это был не нулевой адрес, а хунта какая-то непонятная.
Аноним 03/10/16 Пнд 02:05:11  849773
>>849076 (OP)
Пздц я даун. Прогресс таков:
- сделал нахождение таскмана через tlhelp32'ные снапшоты процессов
- открытие процесса с привилегиями на запись работает из-под администратора
- успешно записал какую-то херню ему в виртуальное пространство, предварительно выделив там 100 килобайт (думаю этого хватит).
Аноним 03/10/16 Пнд 15:52:32  850017
>>849773
Написал DLL в пару строк, пытаюсь встроить в процесс. Всё ещё выделяю в нём память.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 17 | 1 | 4
Назад Вверх Каталог Обновить

Топ тредов
Избранное