Тема: L2 PTS
Показать сообщение отдельно
Непрочитано 20.08.2016, 22:02   #18
Аватар для n3k0nation
Antihero

По умолчанию Re: L2 PTS

Цитата:
Сообщение от Sojang Посмотреть сообщение
Блин, что то не доходит до меня
asm:
Свернуть ↑Развернуть ↓

Как можно заюзать это из с++?
А нафига Вы компилите под 386й?)

Качаете, например, fasm и пишите чето типа этого:
Код:
use64
push 0x7fffffff
ret
Компилите это:
Код:
fasm tramp.asm tramp.bin
Открываете в хексе аутпут и видите чето типа этого:


Берем эти замечательные байты и пихаем в сишную прогу. Должно получится чето типа:
Код:
unsigned char trampTemplate[ ] = {
0x68, //push
0x00, 0x00, 0x00, 0x00 //address
0xc3 //ret
};
Адрес кодируется, как беззнаковое 4х байтовое слово. В общем, через костыль и жопу, грубо говоря (вместо того, чтобы дать нормальную поддержку push 8bytes). Пляшем с бубном, вычисляем наш адрес.
Готовим трамплин (псевдокод):
Код:
unsigned char* tramp = new unsigned char[6];
memcpy(tramp, trampTemplate, 6);
((DWORD*)(&tramp[1]))* = adr;
А далее, как обычно, даем через VirtualProtect права на запись куска памяти, где будем переписывать код и пишем наш трамплин туда.
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Сказали спасибо: