Сейчас на форуме: Kybyx, user99 (+2 невидимых)

 eXeL@B —› Оффтоп —› Xakep жжот
Посл.ответ Сообщение


Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 08 сентября 2011 14:52
· Личное сообщение · #1

Попался в руки журнальчик, сижу читаю:
Это значит, что 8 байт из стека уйдут, и указатель esp опустится на 8 байт выше. А восемью байтами ниже, по правилам игры, должен находиться указатель на наш переписанный SEH-заголовок, только на четыре байта выше, где должен быть указатель на следующее звено SEH-цепочки. Таким образом, retn возьмет указатель на наш переписанный указатель и вернет ему управление, то есть eip будет указывать на переписанный нами стек на то место, где должен быть указатель на следующий SEH. Поэтому вместо указателя надо писать туда инструкцию JMP +0x12 (это для того, чтобы перепрыгнуть указатель на SEH-дескриптор, который у нас четырьмя байтами дальше).

Я не шарю в сплойтах?

-----
Yann Tiersen best and do not fuck


| Сообщение посчитали полезным: diver1991


Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 08 сентября 2011 14:55
· Личное сообщение · #2

ЗЫ в тему: http://www.youtube.com/watch?v=96yDkzAfubc

-----
Yann Tiersen best and do not fuck





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 09 сентября 2011 01:32 · Поправил: Isaev
· Личное сообщение · #3

При таком описании, даже если знал, можно запутаться

ps: видео да, как раз в тему )))

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 09 сентября 2011 19:37
· Личное сообщение · #4

даа видео мегазачотное! как и цитата

-----
[nice coder and reverser]




Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 11 сентября 2011 01:44
· Личное сообщение · #5

PE_Kill пишет:
Это значит, что 8 байт из стека уйдут, и указатель esp опустится на 8 байт выше. А восемью байтами ниже, по правилам игры, должен находиться указатель на наш переписанный SEH-заголовок, только на четыре байта выше, где должен быть указатель на следующее звено SEH-цепочки. Таким образом, retn возьмет указатель на наш переписанный указатель и вернет ему управление, то есть eip будет указывать на переписанный нами стек на то место, где должен быть указатель на следующий SEH. Поэтому вместо указателя надо писать туда инструкцию JMP +0x12 (это для того, чтобы перепрыгнуть указатель на SEH-дескриптор, который у нас четырьмя байтами дальше).

перечитываю уже в который раз...это увлекательно!



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 11 сентября 2011 19:48
· Личное сообщение · #6

киньте пруф на журнал




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 12 сентября 2011 07:10
· Личное сообщение · #7

SReg http://www.xakep.ru/magazine/xa/150/default.asp "0day своими руками"

пока онлайн версии нет

-----
Yann Tiersen best and do not fuck





Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 12 сентября 2011 19:46
· Личное сообщение · #8

PE_Kill пишет:
пока онлайн версии нет


оффлайн
http://www.netbook.perm.ru/hacker.html

-----
127.0.0.1, sweet 127.0.0.1




Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 12 сентября 2011 20:12
· Личное сообщение · #9

http://www.mediafire.com/?s3tvzqqdlg3gl2v




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 12 сентября 2011 21:32
· Личное сообщение · #10

херасе эзотерика) кстати, я тоже чего-то про эксплоиты писал в хакер лет стопиццот назад.

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 15 сентября 2011 15:36
· Личное сообщение · #11

Crawler пишет:
кстати, я тоже чего-то про эксплоиты писал в хакер лет стопиццот назад.

знаем-знаем, читали

например вот не так уж и давно




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 15 сентября 2011 23:35
· Личное сообщение · #12

Попытался как можно более понятно написать, кстати... люди даже на почту потом писали, мол, статья нравится ;) приятно, хоть и мелочь.

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 17 сентября 2011 18:26 · Поправил: ARCHANGEL
· Личное сообщение · #13

Та, это всё - цветочки. Выпуск 06 (149) 2011. Программерские типсы и триксы.


Мало того, что аффтор не понимает, что такое форвардинг, так он ещё и новый способ обхода ядерной SeSinglePrivilegeCheck придумал из юзермода. Уже б хоть проверяли, что пишут. Куда там цензура смотрит, это же могут прочесть дети!

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 18 сентября 2011 08:26
· Личное сообщение · #14

Это пиздец. ARCHANGEL ты выиграл.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 18 сентября 2011 23:45 · Поправил: bowrouco
· Личное сообщение · #15

> Инструкции Sysenter и Int хотя являются процедурными ветвлениями(Sysenter и Int 0x2e вызывают Nt-процедуру в ядре, выполняя некоторый
механизм вызова, иные Int вызывают ISR, по этому являются процедурными ветвлениями), но в данной модели графа(базовый граф) рассматрива
ются как линейные инструкции по той причене, что они возвращают управление на следующую за ними инструкцию(Sysenter выполняет возврат на
адрес, определённый в USD), не содержат непосредственно адреса процедуры, не привязаны к расположению в адресном пространстве(можно коп
ировать как линейный блок) и не изменяют флажки(при возврате из сервисов EFlags восстанавливается). Иначе потребуется вводить новый тип
описателя, либо использовать описатели процедурных ветвлений, помечая их как закрытые ветвления.

> Учитывая что Cx-ветвление Jecxz не изменяет регистры, то может использоваться также, как не Cx-ветвление(например Jz). Для этого услов
ие J.BRANCH_CX_FLAG и J.Condition = !Ecx. В описателе условие определено в KitFlags(маска JCC_TYPE_MASK): KitFlags & JCC_TYPE_MASK = 3(
JCC_ECXZ). Так как установлен флаг BRANCH_CX_FLAG, то база для формирования опкода JCX_OPCODE_BASE(0xE0), таким образом, опкод 0xE3. Для
инструкции Jz условие: KitFlags & JCC_TYPE_MASK = 4(JCC_Z). База выбирается в зависимости от типа ветвления(Short/Near, определяется фла
гом BRANCH_SIZE_MASK). Если ветвление короткое, то база JCC_SHORT_OPCODE_BASE = 0x70 и соответственно опкод 0x74. При использовании преф
икса 0x67 (флаг JCC_X16_MASK) условие(мнемоника Jcxz) в инструкции Jecxz изменится(ветвление если !Cx, старшее слово в регистре Ecx не
проверяется). Очевидно, что условие, при котором выполняется переход, определяется не опкодом, а набором флагов в описателе.

> Сервисный шлюз KiFastSystemCall() загружает в регистр Edx ссылку на аргументы сервиса и исполняет инструкцию Sysenter. Возврат из серв
иса выполняется на адрес ntdll!KiFastSystemCallRet(), по которому находится инструкция Ret, возвращающая управление в Zw-стаб. Так как
адрес KiFastSystemCallRet находится за инструкцией Sysenter, то возврат выполняется на следующую за Sysenter инструкцию:
KiFastSystemCall:
mov edx,esp
sysenter
KiFastSystemCallRet:
ret
Очевидно, что такое расположение точки выхода KiFastSystemCallRet() делает инструкцию Sysenter линейной. При ином расположении следующая
за Sysenter инструкция не будет исполнена, поэтому Sysenter завершает ветвь.

> Так как граф не изменяется(положение описателей относительно начала графа постоянно, в данном случае относительно втор
ого описателя блока примитивов в CxReplaceTable), а перемещается в памяти(в конец графа для которого выполняется морфинг)
, то каждая из локальных ссылок(это например ветвление jz @f в блоке $Loopdne) вставляемого блока изменяется на одинако
вое значение. Доказательство:
Пусть I – ссылка на копируемый описатель в графе с базой G. Аналогично I’ – ссылка на вставляемый описатель в графе с
базой G’(описатель, который адресуется ссылкой I в графе G копируется в граф G’ по адресу I’). Пусть смещение базы графа
G' относительно графа G равно Delta, тоесть G’ = G + Delta. Смещение описателя I относительно начала графа G равно I -
G. Так как граф, описывающий копируемый блок не изменяется, то I - G = I' - G’. Таким образом I - G = I’ - (G + Delta).
Отсюда I' = I + Delta. Прибавление константы не нарушит равенство I' + sizeof(Gp) = I + Delta + sizeof(Gp). Так как сле
дующий за I описатель J находится в линейном графе, то J = I + sizeof(Gp). Учитывая предыдущее равенство, заключим что
J' = J + Delta, тоесть разница смещений описателей в двух графах равна смещению баз графов. Для каждой ссылки выполняется
поправка I’.Flink = I.Flink + Delta. Тоже и для обратной ссылки Blink и ссылки на ветвь BranchLink.

GCBE engine, (c) Indy, 2011.

Но вы ведь все желаете знать эту матчасть, не смотря на слишком подробное обьяснение



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 сентября 2011 00:00
· Личное сообщение · #16

ARCHANGEL
Ксакеп детекдет




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 сентября 2011 03:20
· Личное сообщение · #17

Клерк, что за хуйня постом выше? Тут вроде как жгучий топик, а не умный.

-----
Yann Tiersen best and do not fuck





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 19 сентября 2011 22:48
· Личное сообщение · #18

bowrouco
Что-то я тож не вкурил - вы отсылали свои статьи в ксакеп, а это - вырезка из них, что ли? Сомневаюсь, что ваше творчество когда-либо попадёт в этот "мега-крутой" журнал. А если серьёзно, то проверьте ЛС.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 20 сентября 2011 01:30
· Личное сообщение · #19

ARCHANGEL
Нее, это у вас на скрине с ксакепа пага, видно по шрифту в заголовке




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 20 сентября 2011 10:09
· Личное сообщение · #20

Вообще то в этом топике обсуждают перлы из ксакепа. Ваш Капитан Очевидность.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 20 сентября 2011 20:47 · Поправил: bowrouco
· Личное сообщение · #21

PE_Kill
Я понимаю почему вам утверждение из первого поста вызывает усмешку. Относительно сложный технический материал, написанный не техническим языком, разбавленный левыми фразами сложен для восприятия. Разум пытается осознать смысл, причём изза длинных фраз, в которых много левых слов и вообще построенные не на техническом языке он входит в своеобразный ступор, иногда говорят про "разрыв шаблона". Такое обычно вызывает ответную реакцию, в виде усмешки. Это намеренное или нет отвлечение, призванное сделать чтение комфортным, но мешает пониманию. Именно по этому я например стараюсь как можно более короткими делать высказывания.

> указатель esp опустится на 8 байт выше. А восемью байтами ниже, по правилам игры, должен находиться указатель на наш переписанный
Я знаю эти механизмы фактически досконально, но не понимаю что имеет ввиду автор, именно изза кривого построения предложений. В школу пусть идёт русский язык учит




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 20 сентября 2011 21:39
· Личное сообщение · #22

Так епта, я даже не вникал в суть. Просто увидел бессвязное повествование и запостил. Неважно, про стек это или про стиральные машины, это же оффтоп, просто прикол. А ты как то серьезно подходишь к этому.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 20 сентября 2011 23:28
· Личное сообщение · #23

PE_Kill
Вы не ставите себя на место автора, вот и всё. Если почистить текст, то возможно выйдет что то связанное.

> ты как то серьезно подходишь к этому.
У меня нету пока травы, будет чтонить прущее тогда я тоже шутку вкину. Хотя обычно за мои шутки банят..




Ранг: 568.2 (!), 465thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 21 сентября 2011 06:21
· Личное сообщение · #24

bowrouco пишет:
У меня нету пока травы

bowroucoскурил всю траву пока писал ответ семи постами выше

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 21 сентября 2011 10:31
· Личное сообщение · #25

bowrouco
Пользуясь случаем, хотелось бы уточнить термины.

Граф (связный) - множество вершин, соединённых между сосбой множеством ребёр. Задаётся, как правило, матрицей смежности, инцедентности или Киргхофа.

Ссылка - указатель, разыменовываемый неявно.

Описатель - номер элемента в некотором заранее заданном массиве объектов.

Пусть I – ссылка на копируемый описатель в графе с базой G
Что значит граф с базой?
Правильно ли я понял фразу: указатель, разыменовываемый неявно, который указывает (косвенно) на копируемый объект в графе, начало которого расположено по некоему адресу, который называется базой?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 21 сентября 2011 19:30
· Личное сообщение · #26

Я так понял без травы продолжать уже не стОит.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 21 сентября 2011 21:41 · Поправил: bowrouco
· Личное сообщение · #27

ARCHANGEL
Всё гараздо проще. Граф в данном случае это код без ветвлений. Ветвления представляют собой узлы графа, тоетсь это просто список, где имеются простые операции(mov eax,ebx etc.). Он может быть сложным(не базовый граф), тогда конструктор является декомпилятором и это уже весьма сложная задача. В таком случае граф описывает не машинные команды, в отличае от базового графа, а псевдокод - это примитивы, как например запись/чтение памяти в форме, зависящей от модели графа.

Я просто скопипастил выше несколько примечаний из одного дока, не думал что возникнут вопросы. Вообще не следует это изучать, без полного текста этот кусок не имеет смысла.


 eXeL@B —› Оффтоп —› Xakep жжот

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати