С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
Студент
 Аватар для MickeyBlueEyes
121 / 132 / 39
Регистрация: 07.04.2011
Сообщений: 503

CreateRemoteThread или же Dll инжект

14.01.2013, 18:36. Показов 3384. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привествую про )

Вот есть тестовая dll из банальным содержимим которая при загрузке создаcт файл на диске "C":

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <windows.h>
 
//#define DLL_API __declspec(dllexport)
 
 
void APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved){
    
    FILE * fo;
    
    switch(fdwReason){ 
 
        case DLL_PROCESS_ATTACH:
     
            fo = fopen("C:\\test.txt", "w+");
            fclose(fo);
 
            break;
 
        case DLL_THREAD_ATTACH: break;
 
        case DLL_THREAD_DETACH: break;
 
        case DLL_PROCESS_DETACH: break;
    }
   
}
И есть сам инжектор, самые стандартные способы:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include "windows.h"
#include "string.h"
 
void main(){
 
    const wchar_t path[] = L"C:\\hack.dll";
 
    int pid = 2456;
    
    HANDLE Thread;
 
    HMODULE ll = GetModuleHandle(L"kernel32.dll");
 
    FARPROC func = GetProcAddress(ll, "LoadLibraryW");
 
    HANDLE op = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
 
    LPVOID arg_address = VirtualAllocEx(op, 0, wcslen(path),  MEM_COMMIT, PAGE_EXECUTE_READWRITE);
 
    WriteProcessMemory(op, arg_address, path, wcslen(path), 0);
 
    Thread = CreateRemoteThread(op, 0, 0, func, arg_address, 0, 0);
 
    if(Thread == NULL){
        printf("Thread not started!");
    } else {
        printf("Thread started.");
    }
    
    getchar();
 
}
Результат "Thread started", всё хорошо, но потом походу не выполняется, файл не создаётся.
Проводил банальный тест dll через LoadLibraryW(), то всё загружается, если поменять LoadLibraryW на LoadLibrary, то любое приложение завершается с ошибкой, от калькулятора до чего-то по серьёзней и файл тоже не создаётся. После каждой строчки проверял на ГетЛастЕррор и по нулям, единственный варнинг:
C
1
Thread = CreateRemoteThread(op, 0, 0, func, arg_address, 0, 0);
\main.c(23) : warning C4113: 'FARPROC' отличается в списках параметров от 'LPTHREAD_START_ROUTINE'

Буду признателен за любую помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.01.2013, 18:36
Ответы с готовыми решениями:

Инжект кода CreateRemoteThread
Решил побаловаться с инжектом. Получилось вызвать функции чужой программы (создал поток с помощью CreateRemoteThread), но немогу записать в...

Инжект без dll
В общем рассказал мне препод способ как он делал инжект без динамической библиотеки и даже показывал его в деле. И я вроде как даже вдел...

инжект кода(не dll)
писал на борланде 6. вылетает на функции CreateRemoveThread , в чём ошибка? ...

2
840 / 347 / 67
Регистрация: 20.11.2012
Сообщений: 809
14.01.2013, 19:19
Не забывай про нуль-терминатор. Как LoadLibrary определит конец строки по твоему?
Цитата Сообщение от MickeyBlueEyes Посмотреть сообщение
wcslen(path)+2
1
Студент
 Аватар для MickeyBlueEyes
121 / 132 / 39
Регистрация: 07.04.2011
Сообщений: 503
14.01.2013, 19:36  [ТС]
Цитата Сообщение от WhiteP Посмотреть сообщение
Не забывай про нуль-терминатор. Как LoadLibrary определит конец строки по твоему?
Точно ) попробывал добавить, результат тот же. Варнингов нет.

Добавлено через 4 минуты
Всё биг спс, поменял на LoadLibraryA, и +1 к длине и всё заработало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.01.2013, 19:36
Помогаю со студенческими работами здесь

DLL инжект в браузер
здравствуйте. помогите осуществить DLL инжект в браузер. если можно то подкиньте код или сам проект. за ранее огромное спасибо. ...

Инжект DLL в процесс
Сделал тестовую длл ну и заинжектил ее в процесс только как я понимаю мне должна была открыться ссылка но ничего нет. Код самой длл: ...

Инжект Dll в сторонний процесс
Цель: Есть игра на Unity (простенькая, сам писал). Нужно сделать так, чтобы каждые 10 секунд в окне игры вылезало msgbox. Я знаю что...

Инжект Dll, убивающей процесс
Здравствуйте, мне нужно создать Dll библиотеку, при инжекте которой в другой процесс, закрывался бы целевой процесс. Иными словами, нужна...

Создание спящего (suspended) процесса и инжект dll-библиотеки
Здравствуйте. Есть некий процесс, который нужно запустить в спящем режиме, a затем подключить к нему dll-библиотеку. Можете,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru