Загрузка библиотеки DLL из base64

Статус
В этой теме нельзя размещать новые ответы.

FordeD

Участник
Автор темы
98
11
Добрый вечер, очень интересует такой момент у AHK.
Реально ли загрузить библиотеку через DllCall храня ее как base64 строку не создавая из нее файл?
Или библиотеку в любом случае нужно физический хранить на носителе в виде бинарника?
 

FordeD

Участник
Автор темы
98
11
Усовершенствованный метод внедрения DLL - «Хакер»(https://xakep.ru/2005/09/20/28092/)
Но не проще ли вытаскивать dll из ресурсов и инжектить через вызов loadlibary в другом процессе?
суть в том, что мне нужно создать 1 файл с хранением кода AHK + библиотеки которая будет в скрипт инжектиться или скачивать base64 с сервака
 

Rinat_Namazov

RINWARES
Всефорумный модератор
1,205
957
суть в том, что мне нужно создать 1 файл с хранением кода AHK + библиотеки которая будет в скрипт инжектиться или скачивать base64 с сервака
Можно, поточнее? Че-то не понял.
 

FordeD

Участник
Автор темы
98
11
Можно, поточнее? Че-то не понял.
Я пишу класс который будет по факту работать сам в себе, но изначально для работы нужен dll (как пример dxOverlay или SAMP_API.dll). На данный момент я сохраняю Base64 текст бинарника в строковой переменной (в дальнейшем все таки перейдет в API получение) И при инициализации класса нужно чтобы этот Base64 код подгружался как dll библиотеке и не создавался как бинарный файл который нужно будет удалять после завершения работы скрипта.

Вот основная суть вопроса в более развернутом виде.
 

FordeD

Участник
Автор темы
98
11
В общем расскажу для чего я это делаю, я пишу плагин для AHK и для своей самописной IDE под AHK но мне нужно реализовать его как отдельный компонент подгружающийся в дальнейшем с минимальными затратами времени (один файл быстрее чем несколько мелких + их нужно будет еще собирать воедино а это еще трата времени)
 

Rinat_Namazov

RINWARES
Всефорумный модератор
1,205
957
Я пишу класс который будет по факту работать сам в себе, но изначально для работы нужен dll (как пример dxOverlay или SAMP_API.dll). На данный момент я сохраняю Base64 текст бинарника в строковой переменной (в дальнейшем все таки перейдет в API получение) И при инициализации класса нужно чтобы этот Base64 код подгружался как dll библиотеке и не создавался как бинарный файл который нужно будет удалять после завершения работы скрипта.

Вот основная суть вопроса в более развернутом виде.
Не вижу смысла удалять dll после завершения работы скрипта.
А dll проще из ресурсов вытаскивать куда-то и подгружать.
Но если все же захотелось без физического хранения на жестком диске, то я кинул ссылку.
А вообще нельзя этот base64 перевести в нормальный вид, выделить память в процессе, записать в выделенный кусок памяти саму dll'ку (Не путь), и вызывать функцию создания потока (CreateTheard)?

Если исходный код Dll'ки известен, то можно попробовать скомпилить свою сборку с дополнительными функциями, функции и команды по типу msgbox мне успешно удавалось добавить, а вот добавить стандартные, глобальный переменные типа A_LoopField и т.д не удалось, всегда возвращало пустоту.
 

FordeD

Участник
Автор темы
98
11
Не вижу смысла удалять dll после завершения работы скрипта.
А dll проще из ресурсов вытаскивать куда-то и подгружать.
Но если все же захотелось без физического хранения на жестком диске, то я кинул ссылку.
А вообще нельзя этот base64 перевести в нормальный вид, выделить память в процессе, записать в выделенный кусок памяти саму dll'ку (Не путь), и вызывать функцию создания потока (CreateTheard)?

Если исходный код Dll'ки известен, то можно попробовать скомпилить свою сборку с дополнительными функциями, функции и команды по типу msgbox мне успешно удавалось добавить, а вот добавить стандартные, глобальный переменные типа A_LoopField и т.д не удалось, всегда возвращало пустоту.

Значит как минимум нужно создавать физический файл dll'ки если не влезать в сторонние процессы, окей
 

SuSmer4Coder

Известный
420
51
Я конечно тупой как х... знает кто, но я так понял с сервера надо скачать какой-то файл.
Код:
URLDownloadToFile, %url%?Text= %all%, %A_Temp%\123.php
Думаю не трудно догодаться для какого скрипта этот кусок кода, но крч можно так качать php, а php в нем будет например код, ну на php там сделаешь как нибдудь echo(Код) или как то так надеюсь ты понял.


php + ahk в гугле набери.
 

Rinat_Namazov

RINWARES
Всефорумный модератор
1,205
957
Я конечно тупой как х... знает кто, но я так понял с сервера надо скачать какой-то файл.
Код:
URLDownloadToFile, %url%?Text= %all%, %A_Temp%\123.php
Думаю не трудно догодаться для какого скрипта этот кусок кода, но крч можно так качать php, а php в нем будет например код, ну на php там сделаешь как нибдудь echo(Код) или как то так надеюсь ты понял.


php + ahk в гугле набери.
Это не то.
Dll файл и php что тут схожего ты увидел?
 

SuSmer4Coder

Известный
420
51
Это не то.
Dll файл и php что тут схожего ты увидел?
Объясни тупому человеку макимально просто что сделать то надо?

Это не то.
Dll файл и php что тут схожего ты увидел?
Как то так
На сервере
Код:
<?php
echo("
MsgBox, Hello from server ")
?>
И сам ахк
Код:
url := "http://smer4.000webhostapp.com/123.php"
URLDownloadToFile, %url%, code.php
FileRead, code, code.php
FileAppend, %code%, cd.ahk
Run, cd.ahk
Я незнаю зачем я это сделал но я так подумал то что вместо " MsgBox " можно разместить нужный код ахк.
 

Rinat_Namazov

RINWARES
Всефорумный модератор
1,205
957
Объясни тупому человеку макимально просто что сделать то надо?
Подгрузить dll библиотеку в процесс без физического хранения его как файла, то есть загрузить из памяти, и такую возможность предоставляет MemoryLoadLibrary.
 
Статус
В этой теме нельзя размещать новые ответы.