Re: L2 PTS
Возник вопрос о работе на 64 бит приложениях
В 32бит приложении вызов хукнулся и все окей, а в 64бит приложении все через попу.. Как видно на скрине в коде появляется несуществующий адрес, который не относится к моей dll Есть у кого мысли по этому поводу?:) Скрин:Развернуть ↓Код:Развернуть ↓ |
Re: L2 PTS
У x64 адреса длиннее. kappa
Попробуйте чето типа этого: Код:
;если надо, то делаем lea rax,[adr_param] вместо мува Код:
48 b8 //mov rax |
Re: L2 PTS
Цитата:
Цитата:
UDP: Беру слова назад. То что по ссылке это не 64 бит длл. Однако как тогда реализовать это на плюсах?На си++ никогда не кодил и вот ток ща опыта набираюсь |
Re: L2 PTS
Цитата:
Если не нравится метод через jmp, то можно через возврат: Код:
push adr |
Re: L2 PTS
Цитата:
asm:Развернуть ↓Как можно заюзать это из с++? |
Re: L2 PTS
Вот так:
__asm { push adr ret } |
Re: L2 PTS
Цитата:
|
Re: L2 PTS
Цитата:
Качаете, например, fasm и пишите чето типа этого: Код:
use64 Код:
fasm tramp.asm tramp.bin http://image.prntscr.com/image/dfbcb...8c11352eb4.png Берем эти замечательные байты и пихаем в сишную прогу. Должно получится чето типа: Код:
unsigned char trampTemplate[ ] = { Готовим трамплин (псевдокод): Код:
unsigned char* tramp = new unsigned char[6]; |
Re: L2 PTS
Цитата:
но чет я кажись кривой и он пишет в память не push адрес ret а бред полный код:Развернуть ↓ |
Re: L2 PTS
все еще актуально..........
|
Текущее время: 13:38. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot