Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ThePanix
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 55
1

Запись из внедренной dll в другую dll этого процесса

28.06.2015, 05:56. Просмотров 468. Ответов 1
Метки нет (Все метки)

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <Windows.h>
 
extern int writeprocess();
 
DWORD WINAPI MainThread(LPVOID lpParam)
{
 
    writeprocess();
    return S_OK;
}
 
BOOL APIENTRY DllMain(HANDLE hModule, DWORD _reason, LPVOID lpReserved)
{
    if (_reason == DLL_PROCESS_ATTACH)
    {
        CreateThread(NULL, NULL, &MainThread, NULL, NULL, NULL);
    }
 
    return true;
}
write.cpp
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <Windows.h>
 
DWORD FindDmaAddy(int pointerLevel, DWORD offsets[], DWORD BaseAddress);
void WriteToMemory(DWORD addressToWrite, char* valueToWrite, int byteNum);
 
 
int writeprocess()
{
 
    //Ammo vars
    BYTE WriteValue[] = { 0xFF, 0xFF, 0x0, 0x0 };
    DWORD WriteHackAddress = { 0x538730 };
    DWORD WriteHackAddressOffsets[] = { 0x0, 0x0, 0x0 };
 
    DWORD WallHackAddr = FindDmaAddy(0, WriteHackAddressOffsets, WriteHackAddress);
 
 
    while (true)
    {
        if (WallHackAddr)
            WriteToMemory(WallHackAddr, (char*)WriteValue, 4);
        Sleep(10);
    }
}
 
DWORD FindDmaAddy(int pointerLevel, DWORD offsets[], DWORD BaseAddress)
{
    DWORD Ptr = *(DWORD*)(BaseAddress);
 
    if (Ptr == 0) return NULL;
    for (int i = 0; i < pointerLevel; i++)
    {
        if (i == pointerLevel - 1)
        {
            Ptr = (DWORD)(Ptr + offsets[i]);
            if (Ptr == 0) return NULL;
            return Ptr;
        }
        else
        {
            Ptr = *(DWORD*)(Ptr + offsets[i]);
            if (Ptr == 0) return NULL;
        }
    }
 
    return Ptr;
}
void WriteToMemory(DWORD addressToWrite, char* valueToWrite, int byteNum)
{
    unsigned long OldProtection;
    VirtualProtect((LPVOID)(addressToWrite), byteNum, PAGE_EXECUTE_READWRITE, &OldProtection);
    memcpy((LPVOID)addressToWrite, valueToWrite, byteNum);
    VirtualProtect((LPVOID)(addressToWrite), byteNum, OldProtection, NULL);
}
Как сделать чтобы писать из этой dll в другую dll этого процесса??
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2015, 05:56
Ответы с готовыми решениями:

Добавление своей dll в список dll подгружаемых процессом чужого процесса
Вообще вопрос такой,как можно внедрить свою dll в список Import чужого не...

Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями?
Движок перевожу на платформу Win64 и нужно, чтобы разрядность ЕХЕ и DLL...

Выгрузка dll из процесса
Здраствуйте. DLL подключается к процессу при его старте, и мне нужно чтобы при...

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

Выгрузка DLL из стороннего процесса
Как возможно выгрузить DLL из стороннего процесса, желательно пару примеров.

1
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
28.06.2015, 16:14 2
Цитата Сообщение от ThePanix Посмотреть сообщение
Как сделать чтобы писать из этой dll в другую dll этого процесса??
dll тут вообще никаким боком.
Запись в память чужого процесса: VirtualProtectEx, если нужно, затем
WriteProcessMemory, затем восстанавливающий VirtualProtectEx. Запись в
память своего процесса такая же, только вместо WriteProcessMemory
используется прямой доступ к памяти - memcpy и т.п.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2015, 16:14

Точка входа в процедуру InterlockedCompareExchange64 не найдена в библиотеке DLL KERNEL32.DLL
День добрый! При запуске моей программы (много моего кода + много разных...

Как узнать путь к загруженной DLL из самой DLL?
Создаю небольшую программку в папке c:/test/app/, есть DLL в папке ...

Dll файл в exe файле. Вшить dll libcurl
Проблема такая что приходится таскать всегда libcurl.dll с собой. Надо все...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru