eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: zombi-vadim (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› "To long (recursive?) SEH chain" OllyDBG
Посл.ответ Сообщение

Ранг: -1.9 (нарушитель)
Статус: Участник

Создано: 30 июня 2019 17:26 New!
Цитата · Личное сообщение · #1

Здравствуйте, уважаемые!
Есть простенький скриптик по ASProtect, работает но накапливается что-то типа "варнинга", что ли...на строках
Code:
  1. MOV eip,eipFoundedCall
  2. RUN
, где-то после 110-120 подходов.
Пишет "To long (recursive?) SEH chain".
С чем это связано, как этого избежать в будущем?

{ Атач доступен только для участников форума } - ASProtect.txt


Ранг: 149.4 (ветеран)
Статус: Участник

Создано: 1 июля 2019 08:47 · Поправил: -=AkaBOSS=- New!
Цитата · Личное сообщение · #2

по-моему, EOB надо ставить до того, как программа будет отпущена через RUN
+ вынести её за пределы цикла, туда, где бряк ставится

ADDED
Тему закрыли, допишу сюда значит
В общем говоря, этот фонтан говна меня забрызгал сильнее, чем хотелось бы.
И вместо того, чтобы послать эту тему куда стоило бы, я чутка погуглил и поковырялся в отладчике.

В эталонном скрипте файл называется "UnPackMe_ASProtect.2.3.04.26.a.exe", и он же упоминается в туторах Нарвахи
Урок нубу №1 - если это не приват, выкладывай цель сразу.

Константы в скриптах совпадают, но лишь частично:
оригинал
mov base_aspr,[46C048]
add base_aspr,3B02E

нубский аналог
MOV eipInfoCall,[0046C048]
ADD eipInfoCall, 39869

Это, значит, берётся хэндл аспротовой дллки и смещение в ней для бряка.
Нуб выбрал другое смещение, на более глубоком уровне вложенности вызовов. Просто запомним это.


Я вставил вывод в лог найденного адреса, ESP до вызова и ESP на бряке
log1.txt - лог оригинального скрипта. Видно, что стэк исчерпывается по 0xF4 байт за вызов. Баг же, как и предполагалось.
4271B0 dir: 00401112
4271B0 esp: 0018FF34
33B02E esp: 0018FE40
33B02E dir: 004011E8
33B02E esp: 0018FE40
33B02E esp: 0018FD4C
33B02E dir: 00401CE9
33B02E esp: 0018FD4C
33B02E esp: 0018FC58
33B02E dir: 00401DC0
33B02E esp: 0018FC58
33B02E esp: 0018FB64

log2.txt - лог нубского скрипта. ESP улетает по 0x2A4 байт за вызов. Тот же баг, только жирнее.
4271B5 eipFoundedCall: 00401112
4271B5 esp: 0018FF70
569869 esp: 0018FCCC
569869 eipFoundedCall: 004011E8
569869 esp: 0018FCCC
569869 esp: 0018FA28
569869 eipFoundedCall: 00401CE9
569869 esp: 0018FA28
569869 esp: 0018F784
569869 eipFoundedCall: 00401DC0
569869 esp: 0018F784
569869 esp: 0018F4E0


seh1.txt - цепочка сехов после отработки оригинальным скриптом - 161 повтор двух обработчиков, и в итоге работы имеем 161 обработанную функцию.
seh2.txt - цепочка сехов после того как нубский скрипт вызвал ошибку - 117 повторов из четырёх обработчиков, и потом скрипт заткнулся.
seh3.txt - цепочка сехов после моего скрипта. такая длинная, что я её здесь целиком приведу:
SEH chain of main thr3@d
Address SE handler
0018FFC4 ntdll_12.770B4DCD

Итого имеем, как я уже писал ранее, сорванный стэк и, так или иначе, недоработанный скрипт.
При соответствующем количестве прохеренных функций даже оригинал вызовет ошибку, работает только за счёт того что это унпакми.
При всём уважении к Нарвахе и его вкладу в дело просвещения масс неразумных - он всего лишь человек.
Даже тысяча программистов может не заметить ошибку, что уж говорить об одном человеке на минном поле в памяти протектора.
Урок нубу №2: авторитеты тоже могут ошибаться. Думай головой.

Упомянутые логи, крякмис и мой вариант скрипта - в аттаче. Скрипту теперь нужен FS текущего потока.
Я реально хз как это на оллискрипте сваять, поэтому вписывай руками или доделывай сам.

{ Атач доступен только для участников форума } - __.7z

Ранг: -1.9 (нарушитель)
Статус: Участник

Создано: 1 июля 2019 11:24 New!
Цитата · Личное сообщение · #3

Вот аналогичный скрипт из тутора - рекурсии нету, выполнен аналогично.

{ Атач доступен только для участников форума } - (Rus) Script ASProtect 2.3.04.26.a.osc


Ранг: 149.4 (ветеран)
Статус: Участник

Создано: 1 июля 2019 11:48 · Поправил: -=AkaBOSS=- New!
Цитата · Личное сообщение · #4

PEvgen пишет:
рекурсии нету, выполнен аналогично.

нет ошибки, связанной с рекурсией? а на своей цели уже проверяли?
разница между простеньким унпакми и реальной целью в том, что в унпакми иат будет гораздо меньше, а значит и рекурсия могла прерваться до момента исчерпания лимитов

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

Добавлено спустя 54 минуты
выдержка из манов

Code:
  1. EOB label
  2. ---------
  3. Transfer execution to some label on next breakpoint.


То есть эта команда однозначно должна выполниться до того момента, как программа будет отпущена на поиски бряков. На рекурсию хз, вроде не влияет.. но в скрипте точно баг.

Ранг: -1.9 (нарушитель)
Статус: Участник

Создано: 1 июля 2019 13:29 New!
Цитата · Личное сообщение · #5

-=AkaBOSS=- пишет:
То есть эта команда однозначно должна выполниться до того момента, как программа будет отпущена на поиски бряков.
Из написаного в мануале можно только догадаться, что в какой последовательности должно идти и то только по аналогии с BPGOTO...но работает и так и так)
-=AkaBOSS=- пишет:
На рекурсию хз, вроде не влияет.. но в скрипте точно баг.
то есть это не исправимо и не стоит на этом заморачиваться, раз отрабатывает полноценно?


{ Атач доступен только для участников форума } - Безымянный.png


Ранг: 149.4 (ветеран)
Статус: Участник

Создано: 1 июля 2019 13:39 New!
Цитата · Личное сообщение · #6

Почитал сорцы - при бряке без EOB просто перейдёт к следующей после RUN инструкции, так что всё это особого смысла не имеет.


По логике скрипта:
ставится бряк на eipInfoCall, ищутся вызовы EtalonAddres
когда находится вызов, программа отпускается до бряка, получая раскодированный адрес,
обрабатывает его, переходит к поиску следующего вызова.

Вероятно, что в этом промежутке ставится SEH обработчик, и при определённом количестве таких вызовов длина цепочки увеличивается. Так можно и стэк вычерпать.

Добавлено спустя 2 минуты
Соответственно, верным решением будет сохранять текущее состояние seh цепочки и указатели на стэк, а потом восстанавливать их перед следующей итерацией

Ранг: -1.9 (нарушитель)
Статус: Участник

Создано: 1 июля 2019 14:19 New!
Цитата · Личное сообщение · #7

-=AkaBOSS=-Почему в скрипте из тутора этого не происходит?

Добавлено спустя 0 минут
Там никто ничего не подчищает


Ранг: 149.4 (ветеран)
Статус: Участник

Создано: 1 июля 2019 14:33 · Поправил: -=AkaBOSS=- New!
Цитата · Личное сообщение · #8

Так стоп. Скрипт из тутора на вашей цели работает без ошибок или как?

Ок. Вопросов больше нет. Предположений тоже.


Ранг: 149.4 (ветеран)
Статус: Участник

Создано: 1 июля 2019 15:14 New!
Цитата · Личное сообщение · #9

PEvgen пишет:
100% твин Дефексакова....

да прям вообще

сам-то откуда такой нарисовался?
пришёл с каким-то бажным скриптом: "разберитесь за меня, почему сбоит"
из инфы - нихрена кроме невнятного мессаджа который хз вообще откуда вылез.
никакой инфы о том что сам пробовал, откуда адреса брал и вообще.
В твоём скрипте - если между точкой где выполняется RUN и точкой бряка стэк сдвигается, то ошибки будут, и это естественно. Но телепатически это не увидеть.

глючит - возьми и разберись! расставь паузы на начало итераций и последи что меняется в программе.
если падает сама олька - знач дебаж её, аналогично: найди в плагине точку-обработчик паузы и пронаблюдай как меняется стэк.

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



Ранг: 302.4 (мудрец)
Статус: Участник

Создано: 1 июля 2019 15:18 New!
Цитата · Личное сообщение · #10

-=AkaBOSS=-

У него это вторая тема, в предыдущей я за него всю работу выполнил, а он говном кидать начал. С тобой тут тоже самое начинается


Ранг: 211.9 (наставник)
Статус: Участник

Создано: 1 июля 2019 15:19 New!
Цитата · Личное сообщение · #11

Я хз что делать если после сообщения too long seh chain что-то остается непонятным. Словарь почитай чтоли.

Ранг: -1.9 (нарушитель)
Статус: Участник

Создано: 1 июля 2019 15:37 New!
Цитата · Личное сообщение · #12

Я когда был молод (в смысле мал) - сочувствовал ребятам, которых трахали отцы (или мамки с дедками и бабками, не важно), а сейчас считаю, что это минимум что с вами они должны были сделать!
Если ваше божественное состояние говна, из которого вы состоите, мешает вам адекватно работать с людьми только что начавшими изучать реверс - идите в жопу, ваше место там!
Спасибо за внимание!
Впредь, лиц подвергшихся инцесту в юности, убедительная просьба - не беспокоить! Мне вас шизоидов и в реальной жизни более чем хотелось бы...
Еще раз спасибо за внимание!
ПОЗОРИЩА!


Ранг: 211.9 (наставник)
Статус: Участник

Создано: 1 июля 2019 15:41 New!
Цитата · Личное сообщение · #13

PEvgen пишет:
убедительная просьба - не беспокоить!

Так это ты пришел со своими кривыми скриптами из туториалов, с нулевым пониманием что это и как это. Человек вообще-то искренне пытался помочь, но говорят у жертв инцеста проблемы с социализацией.

Ранг: -1.9 (нарушитель)
Статус: Участник

Создано: 1 июля 2019 15:58 New!
Цитата · Личное сообщение · #14

f13nd пишет:
Так это ты пришел со своими кривыми скриптами из туториалов, с нулевым пониманием что это и как это

1. Увы...на просторах интернета это единственное место, где можно расспросить про реверс, жаль что населено гоботами...
2. А вам бы хотелось чтобы я пришел поделится с вами чем-то шедевральным? На форум новичков? Серьезно? Купите диклофенак - мазь....говорят вашим помогает, или в армию сходите еще разик....

f13nd пишет:
но говорят у жертв инцеста проблемы с социализацией.
Вы поймите, когда таких как вы 70-80% проблем с социализациец быть не должно, хотя разное бывает, бывают и гомики людьми нормальными....но это так к слову, не про вас, в общем) вы вон как кодлом на защиту рваного очка коллеги кинулись!!! хорошо хоть не с вилами! а то от смелости в десятером на одного могли бы и вилы похватать...)

ЗЫ - вы наверное третья ипостасия вышеоговоренного персонажа, не хило так психика отстреливает
ЗЫЗЫ - хотели бы помочь - помогли бы. Прити посрать != помочь.

Быудьте здоровы, кушайте голубцы!

Добавлено спустя 46 минут
На всякий случай привожу пример как выглядит помощь кому либо..."своему", наверное...--> Link <--

Добавлено спустя 48 минут
Срок давности правда 13 лет, но не может же быть что люди вымерли за это время, а осталось только говно божественно уподобляющее себя


Ранг: 302.4 (мудрец)
Статус: Участник

Создано: 1 июля 2019 23:03 New!
Цитата · Личное сообщение · #15

dma

Так а что тут понимать. ТС пытается завести скрипт предназначенный для другой версии аспра. При этом не вкуривая как он работает и никакой работы своей не выполняя, просто хочет что бы за него всё сделали. Между делом кидая говном. Аспра есть разные версии, вот например та что на их сайте вообще не юзает tsc, а в туторе с этим сражаются через какие то драйвера, так как версия старая. ТС должен быть вначале пройти отладчиком захваченные протектором апи, что бы понять как они устроены. Он это конечно же не сделал, тупо пытаясь завести какой то скрипт без понятия.

Ранг: 290.1 (наставник)
Статус: Модератор
CrackLab

Создано: 1 июля 2019 23:36 New!
Цитата · Личное сообщение · #16

PEvgen
отдохни пока что с месяц, и научись уважать других участников форума. п.5 правил форума.
Тема закрыта за нарушение п.9 + п.13 правил форума.

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

 eXeL@B —› Вопросы новичков —› "To long (recursive?) SEH chain" OllyDBG
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS