• XSS.stack #1 – первый литературный журнал от юзеров форума

Кастомная точка входа

cppjunior

ripper
КИДАЛА
Регистрация
25.05.2022
Сообщения
57
Реакции
3
Гарант сделки
2
Пожалуйста, обратите внимание, что пользователь заблокирован
Пожалуйста, обратите внимание, что пользователь заблокирован
Как реализовать кастомный энтри поинт. Как здесь.
С/С++? Отключить сишный рантайм, как, например, показано здесь: https://xss.pro/threads/76417/
 
Пожалуйста, обратите внимание, что пользователь заблокирован
С/С++? Отключить сишный рантайм, как, например, показано здесь: https://xss.pro/threads/76417/
Это понятно, я спрашивал немного про другое, в скрине выше в функции старт высчитывается адрес смещение а потом прыжок по этому адресу, и вопрос как это реализовать) Спасибо.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я не понимаю проблемы, берешь адрес функции, добавляешь смещение, вызываешь:
C:
typedef void (*PEntry)();

void start() {
    PEntry entry = start;
    entry = entry + 31337;
    entry();
}
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я не понимаю проблемы, берешь адрес функции, добавляешь смещение, вызываешь:
C:
typedef void (*PEntry)();

void start() {
    PEntry entry = start;
    entry = entry + 31337;
    entry();
}
Сори за глупый вопрос. Но как узнать адрес функции заранее без использования метопрограммирования и добиться такого же результата как в первом посте этой темы.

1673362296426.png
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Сори за глупый вопрос. Но как узнать адрес функции заранее без использования метопрограммирования и добиться такого же результата как в первом посте этой теме
Ну какой у функции будет адрес знает линкер. Ты можешь, условно, написать что-то типа "(void*)my_func" и получить адрес функции. Не совсем понимаю, что значит заранее.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не совсем понимаю, что значит заранее.
Заранее узнать адрес моей функции. Или возможно задать этот самый адрес. Вкратце, заранее получить адрес функции "обфусцировать" (xor) и потом jmp по этому адрес, возможно такое?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Заранее узнать адрес моей функции. Или возможно задать этот самый адрес
В общем случае ты не можешь знать адрес, как число, компилятор этого не знает, линкер связывает символ с адресом. Ты можешь оперировать только символом.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Если я правилно понимаю то с помощью метакодинга нельзя получить адрес моей функции ее знает только линкер. Тогда как это реализовано в nighthawk c2, это уже готовый бинарник патчили (брали адрес нужной функции, мат операции и jmp по адресу)?

https://xss.pro/attachments/46746/
 
Пожалуйста, обратите внимание, что пользователь заблокирован
В общем случае ты не можешь знать адрес, как число, компилятор этого не знает, линкер связывает символ с адресом. Ты можешь оперировать только символом.
выше написал, забыл нажать "ответить". Спасибо за ответ.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Тогда как это реализовано в nighthawk c2, это уже готовый бинарник патчили (брали адрес нужной функции, мат операции и jmp по адресу)?
Ну я не знаю, как конкретно это было сделано там. Может и патчили бинарник, может на уровне ассемблера это делали. На уровне языка Си не уверен, что прям так можно сделать.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
DildoFagins цепочка ROP гаджетов такое можно сделать? тоесть тем же макаром как байпасят KASLR.
Не пинайте особо, я не специалист далеко.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх