Size: a a a

Ассемблер

2021 September 29

E

Entusiast in Ассемблер
Нет, я вообще про смешивания всего этого. На ассемблере это делается без заморачивания с всякими флагами, выравниваниями и т.п
источник

/

/bin/cat in Ассемблер
Я уже не говорю об обработке ошибок
источник

E

Entusiast in Ассемблер
А зачем писать функции WinAPI? Если что, ты можешь импортировать библиотеку
источник

/

/bin/cat in Ассемблер
Мне нужно убрать импорты и сделать резолв в рантайме
источник

E

Entusiast in Ассемблер
Ну вот на ассемблере это делается без заморочек
источник

/

/bin/cat in Ассемблер
Чтобы call WriteConsoleW кодировался как E8 ?? ?? ?? ??. А его адрес будет ссылаться на мой trunk call
источник

И

Игорь in Ассемблер
да интересно
источник

E

Entusiast in Ассемблер
Хочешь сделать модификацию адресов функций в шеллкоде?
источник

И

Игорь in Ассемблер
открывай секцию кода на запись
источник

/

/bin/cat in Ассемблер
А как это потом поддерживать на чистом ассемблере? Я могу генерировать эти функции и отключить выравнивание для них
Смысл в том, чтобы писать 5% малваря на ассемблере, а не 100%
источник

/

/bin/cat in Ассемблер
Ну да. Только работать с этим нужно на уровне исходников, а не на уровне патча результатов
источник

E

Entusiast in Ассемблер
Но почему?
Легче выделить место в конце шеллкода (с помощью директивы times можно рассчитать размер, который нужно выделить, чтобы получилось статическое смещение), а потом туда записывать нужные тебе адреса, и так же брать:

call qword[addresses] ; call qword[addresses+4]

512-(total_addresses) = address 1
512-(total_addresses)+4 = address 2
По смещениям записываешь нужные тебе адреса

(То, что недописал)
Если честно, вообще до конца неясно, что тебе нужно... А сленг "резолв", "малварь", "trunk call" только всё усложняет.
источник

/

/bin/cat in Ассемблер
Пока не пробовал сделать это на c++, но на rustlang можно впихнуть свою версию GetStdHandle
источник

/

/bin/cat in Ассемблер
А если я хочу сделать новый шеллкод?
источник

E

Entusiast in Ассемблер
А в чём проблема?
Делаешь новый шеллкод, в конце так же вставляешь ту же самую структуру, пишешь туда адреса, и так же берёшь оттуда адреса
источник

/

/bin/cat in Ассемблер
Вот у меня изначально задача написать патчер в шеллкоде, а вдруг задача поменяется
источник

/

/bin/cat in Ассемблер
Допустим, теперь нужно сделать WriteConsoleW в stdout. Куда удобнее изменить это на уровне сорсов
источник

/

/bin/cat in Ассемблер
Т.е. сделать так, чтобы можно было писать шеллкод на c++ с winapi
источник

E

Entusiast in Ассемблер
Не понял.. Ты собираешься сделать патчер, который будет изменять исходный код шеллкода и компилировать это???
источник

/

/bin/cat in Ассемблер
Это не значит полное отсутствие билдеров, но они достаточно тривиальны
источник