Пожалуйста, обратите внимание, что пользователь заблокирован
Понадобилось написать шеллкод, который будет работать в R-X памяти (т.к. чтение-исполнение, без записи). На Ассемблере, т.к. Сишный компилер врядли поможет. Соответственно, встал вопрос о переменных, т.к. теперь нельзя просто взять и объявить что-то вида alloc_fn dq ? и туда писать.
Регистров, понятно дело, на всё не хватает. На 32 бит проблема решается достаточно легко, с помощью стека - т.е. push pop регистры. На 64 бит стек это головная боль, кто кодил тот знает, кто нет, то объяснять долго. В общем, как быть? Пока наметил для себя три варианта:
1. выделять память через хип, и там размещать все нужные структуры и переменные;
2. экспериментировать со стеком, т.к. оно не так сложно, просто нужна внимательность и отладка;
3. пусть RX шеллкод выделит RWX память и туда запишет следующий, уже "нормальный" ШК; который можно закодить на Си без всех извратов.
Регистров, понятно дело, на всё не хватает. На 32 бит проблема решается достаточно легко, с помощью стека - т.е. push pop регистры. На 64 бит стек это головная боль, кто кодил тот знает, кто нет, то объяснять долго. В общем, как быть? Пока наметил для себя три варианта:
1. выделять память через хип, и там размещать все нужные структуры и переменные;
2. экспериментировать со стеком, т.к. оно не так сложно, просто нужна внимательность и отладка;
3. пусть RX шеллкод выделит RWX память и туда запишет следующий, уже "нормальный" ШК; который можно закодить на Си без всех извратов.