Size: a a a

2020 February 14

T

Thatskriptkid in DC7495
Thatskriptkid
да это не так и сложно. выносишь все функции в отдльную библиотеку. вместо выделения памяти создаешь своб функциб, типа my_malloc, в своей либе делаешь if win - heapalloc, if lin - malloc и т.д.
я так одну программу писал, и под вин и под линь одновременно, без зависимостей (не малварь!:))
источник

T

Thatskriptkid in DC7495
только там еще сложнее было, типа если вин то надо было юзать iocp, а в лине кажется epoll или тип того
источник

T

Thatskriptkid in DC7495
но на самом деле, такие вещи быстрее и проще писать на Го. там кроскомпиляция и не надо париться над этим
источник

ph

priest@zer0:~# heil -S atan in DC7495
Ну и бинарь пообъёмнее будет
источник

T

Thatskriptkid in DC7495
да, огромный
источник

T

Thatskriptkid in DC7495
на го мегов 6 кажется весил, на си 72 Кб как помню
источник

ph

priest@zer0:~# heil -S atan in DC7495
*жду энтузиаста Rust*
источник

ph

priest@zer0:~# heil -S atan in DC7495
Я ведь правильно помню, что в си инлайн-ассемблер использует те же регистры с поинтерами, что и остальной код?
источник

ph

priest@zer0:~# heil -S atan in DC7495
Просто, а можно ли закинуть указатель на начало того кода в регистр и туда jmp прописать?
источник

T

Thatskriptkid in DC7495
priest@zer0:~# heil -S atan
Я ведь правильно помню, что в си инлайн-ассемблер использует те же регистры с поинтерами, что и остальной код?
да, конечно
источник

HG

Hollow Grain in DC7495
priest@zer0:~# heil -S atan
Просто, а можно ли закинуть указатель на начало того кода в регистр и туда jmp прописать?
если код в exec памяти находится
источник

T

Thatskriptkid in DC7495
priest@zer0:~# heil -S atan
Просто, а можно ли закинуть указатель на начало того кода в регистр и туда jmp прописать?
можно, но память должна быть исполняемой, там где буфер лежит. и чем ты это сделаешь, Си или асм, разницв нет
источник

ph

priest@zer0:~# heil -S atan in DC7495
Hollow Grain
если код в exec памяти находится
Это манипулируется ведь?
Либо мувнуть бинарь на место ориг бинари в памяти, при условии что выделено...
А возможно выделить на саму бинарь больше exec-памяти, чем ей необходимо?
источник

HG

Hollow Grain in DC7495
priest@zer0:~# heil -S atan
Это манипулируется ведь?
Либо мувнуть бинарь на место ориг бинари в памяти, при условии что выделено...
А возможно выделить на саму бинарь больше exec-памяти, чем ей необходимо?
у тебя есть доступ к бинарю на диске? или он только в памяти?
источник

ph

priest@zer0:~# heil -S atan in DC7495
Бинарь на диске
источник

ph

priest@zer0:~# heil -S atan in DC7495
В ней ещё одна
источник

ph

priest@zer0:~# heil -S atan in DC7495
Можно конечно скостылить и сделать стаб с мёртвым кодом
источник

ph

priest@zer0:~# heil -S atan in DC7495
И потом туда перемещать то, что надо выполнить
источник

HG

Hollow Grain in DC7495
не ну если ты можешь к оригинальному бинарю добавить еще один сегмент, то да, у тебя будет больше exec памяти
источник

ph

priest@zer0:~# heil -S atan in DC7495
То есть, можно создать бинарь большую, чтоб иметь нужное количество exec
источник