PDA

Просмотр полной версии : dll


mira
27.07.2011, 00:47
возникла необходимость написать длл-ку без user32
редствами делфи как я понимаю это не сделать, там рантайм походу всеравно импортирует ГетКейбордТип и МеаджБокс.

как это можно провернуть кто знает.
в длл посути ваще нет нифига одна единственная несложная функция

xkor
27.07.2011, 00:51
mira, ну а чисто на асме? ты его вроде знаешь.

mira
27.07.2011, 00:58
я уже лет 7 не компилил ниче на асме хватало всегда инлан на делфе =) даже компилятора нет. кроме асма варианты есть? с делфи не получитса адназначна рантайм там не выкинуть)

xkor
27.07.2011, 01:22
mira, ну может на С++ получиться, он вроде меньше пихает в пустое приложение

mira
27.07.2011, 01:40
лано попробую на фасме, качну побырику мб получитса замутить хук =)

xkor
27.07.2011, 02:42
инжектор вот как то на MASM (вроде) писал, очень коротко получилось)
include 'win32ax.inc'

.code
start:
invoke CreateProcessA,"L2WalkerWMX.exe",NULL,NULL,NULL,FALSE,0,NULL,NULL,addr sinfo,addr pinfo
invoke Sleep,3000
invoke GetModuleHandle,"kernel32.dll"
invoke GetProcAddress,eax,"LoadLibraryA"
invoke CreateRemoteThread, [pinfo.hProcess], 0, 0, eax, 55CB68h, 0, 0
invoke ExitProcess,0

.end start

pinfo PROCESS_INFORMATION <> ; Это Инфа о процессе
sinfo STARTUPINFO <> ; Это инфа о запуске

mira
27.07.2011, 10:14
инжектор вот как то на MASM (вроде) писал, очень коротко получилось)
include 'win32ax.inc'

.code
start:
invoke CreateProcessA,"L2WalkerWMX.exe",NULL,NULL,NULL,FALSE,0,NULL,NULL,addr sinfo,addr pinfo
invoke Sleep,3000
invoke GetModuleHandle,"kernel32.dll"
invoke GetProcAddress,eax,"LoadLibraryA"
invoke CreateRemoteThread, [pinfo.hProcess], 0, 0, eax, 55CB68h, 0, 0
invoke ExitProcess,0

.end start

pinfo PROCESS_INFORMATION <> ; Это Инфа о процессе
sinfo STARTUPINFO <> ; Это инфа о запуске

у меня дллка должна загрузитса и хукнуть одну функцию в процессе.
Код типа того в ентрипойнте

;до этого все гладко
invoke GetProcАddress, eax, [fname]
mоv [faddr], eax
invoke VirtualProtect,eax, 16,PAGE_EXECUTE_READWRITE,[lastprot]
mov eax, [faddr]
mov [eax], 0ffh ;тут ошибка

xkor
27.07.2011, 14:08
mira, а VirtualProtect успешно срабатывает?

mira
27.07.2011, 17:23
Вот его результат я его какраз и непроверил. Поидее он не может сфейлить, если я канечно lastprоt не засунул в какуюнет read only PE- секцию. У меня он в .data вроде.
Ошибка 0xC0000005 В приложении

Добавлено через 6 минут
Ну понятно функция из кернел32 так как другие длл в ентрипойнте микрософт предостерегает юзать, типа работать то будет но потом при определенном сложении созвездий и фазе луны будут возникать ошибки непонятной природы и будете их полгода ловить ниче не понимая.

Добавлено через 1 час 21 минуту
LastError после ВПротекта - invalid access to memory location
ФАСМ такой ФАСМ

xkor
27.07.2011, 17:47
ФАСМ такой ФАСМруки такие руки)))
ЗЫ тока без обид, на правах шутки

mira
27.07.2011, 19:53
канечно руки мы ведь сначало делаем а если чтото не получаетса ищем примеры и читаем матчасть Ж)
указатели неверно передавал в параметры

ща все норм ставит хук отрабатывает и снимает его. 3кб получилась
ниче лишнего не грузит, тока 5 используемых функций кернел32