eXeL@B —› Вопросы новичков —› "To long (recursive?) SEH chain" OllyDBG |
Посл.ответ | Сообщение |
|
Создано: 30 июня 2019 17:26 · Личное сообщение · #1 Здравствуйте, уважаемые! Есть простенький скриптик по ASProtect, работает но накапливается что-то типа "варнинга", что ли...на строках Code:
Пишет "To long (recursive?) SEH chain". С чем это связано, как этого избежать в будущем? f690_30.06.2019_EXELAB.rU.tgz - ASProtect.txt |
|
Создано: 01 июля 2019 08:47 · Поправил: -=AkaBOSS=- · Личное сообщение · #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 текущего потока. Я реально хз как это на оллискрипте сваять, поэтому вписывай руками или доделывай сам. bf51_02.07.2019_EXELAB.rU.tgz - __.7z |
|
Создано: 01 июля 2019 11:24 · Личное сообщение · #3 Вот аналогичный скрипт из тутора - рекурсии нету, выполнен аналогично. 288b_01.07.2019_EXELAB.rU.tgz - (Rus) Script ASProtect 2.3.04.26.a.osc |
|
Создано: 01 июля 2019 11:48 · Поправил: -=AkaBOSS=- · Личное сообщение · #4 PEvgen пишет: рекурсии нету, выполнен аналогично. нет ошибки, связанной с рекурсией? а на своей цели уже проверяли? разница между простеньким унпакми и реальной целью в том, что в унпакми иат будет гораздо меньше, а значит и рекурсия могла прерваться до момента исчерпания лимитов не мешало бы обозначить каким плагином и отладчиком всё это тестируется, с версиями. Добавлено спустя 54 минуты выдержка из Code:
То есть эта команда однозначно должна выполниться до того момента, как программа будет отпущена на поиски бряков. На рекурсию хз, вроде не влияет.. но в скрипте точно баг. |
|
Создано: 01 июля 2019 13:29 · Личное сообщение · #5 -=AkaBOSS=- пишет: То есть эта команда однозначно должна выполниться до того момента, как программа будет отпущена на поиски бряков. Из написаного в мануале можно только догадаться, что в какой последовательности должно идти и то только по аналогии с BPGOTO...но работает и так и так) -=AkaBOSS=- пишет: На рекурсию хз, вроде не влияет.. но в скрипте точно баг. то есть это не исправимо и не стоит на этом заморачиваться, раз отрабатывает полноценно? c9f7_01.07.2019_EXELAB.rU.tgz - Безымянный.png |
|
Создано: 01 июля 2019 13:39 · Личное сообщение · #6 Почитал сорцы - при бряке без EOB просто перейдёт к следующей после RUN инструкции, так что всё это особого смысла не имеет. По логике скрипта: ставится бряк на eipInfoCall, ищутся вызовы EtalonAddres когда находится вызов, программа отпускается до бряка, получая раскодированный адрес, обрабатывает его, переходит к поиску следующего вызова. Вероятно, что в этом промежутке ставится SEH обработчик, и при определённом количестве таких вызовов длина цепочки увеличивается. Так можно и стэк вычерпать. Добавлено спустя 2 минуты Соответственно, верным решением будет сохранять текущее состояние seh цепочки и указатели на стэк, а потом восстанавливать их перед следующей итерацией |
|
Создано: 01 июля 2019 14:19 · Личное сообщение · #7 |
|
Создано: 01 июля 2019 14:33 · Поправил: -=AkaBOSS=- · Личное сообщение · #8 |
|
Создано: 01 июля 2019 15:14 · Личное сообщение · #9 PEvgen пишет: 100% твин Дефексакова.... да прям вообще сам-то откуда такой нарисовался? пришёл с каким-то бажным скриптом: "разберитесь за меня, почему сбоит" из инфы - нихрена кроме невнятного мессаджа который хз вообще откуда вылез. никакой инфы о том что сам пробовал, откуда адреса брал и вообще. В твоём скрипте - если между точкой где выполняется RUN и точкой бряка стэк сдвигается, то ошибки будут, и это естественно. Но телепатически это не увидеть. глючит - возьми и разберись! расставь паузы на начало итераций и последи что меняется в программе. если падает сама олька - знач дебаж её, аналогично: найди в плагине точку-обработчик паузы и пронаблюдай как меняется стэк. | Сообщение посчитали полезным: difexacaw |
|
Создано: 01 июля 2019 15:18 · Личное сообщение · #10 |
|
Создано: 01 июля 2019 15:19 · Личное сообщение · #11 |
|
Создано: 01 июля 2019 15:37 · Личное сообщение · #12 Я когда был молод (в смысле мал) - сочувствовал ребятам, которых трахали отцы (или мамки с дедками и бабками, не важно), а сейчас считаю, что это минимум что с вами они должны были сделать! Если ваше божественное состояние говна, из которого вы состоите, мешает вам адекватно работать с людьми только что начавшими изучать реверс - идите в жопу, ваше место там! Спасибо за внимание! Впредь, лиц подвергшихся инцесту в юности, убедительная просьба - не беспокоить! Мне вас шизоидов и в реальной жизни более чем хотелось бы... Еще раз спасибо за внимание! ПОЗОРИЩА! |
|
Создано: 01 июля 2019 15:41 · Личное сообщение · #13 |
|
Создано: 01 июля 2019 15:58 · Личное сообщение · #14 f13nd пишет: Так это ты пришел со своими кривыми скриптами из туториалов, с нулевым пониманием что это и как это 1. Увы...на просторах интернета это единственное место, где можно расспросить про реверс, жаль что населено гоботами... 2. А вам бы хотелось чтобы я пришел поделится с вами чем-то шедевральным? На форум новичков? Серьезно? Купите диклофенак - мазь....говорят вашим помогает, или в армию сходите еще разик.... f13nd пишет: но говорят у жертв инцеста проблемы с социализацией. Вы поймите, когда таких как вы 70-80% проблем с социализациец быть не должно, хотя разное бывает, бывают и гомики людьми нормальными....но это так к слову, не про вас, в общем) вы вон как кодлом на защиту рваного очка коллеги кинулись!!! хорошо хоть не с вилами! а то от смелости в десятером на одного могли бы и вилы похватать...) ЗЫ - вы наверное третья ипостасия вышеоговоренного персонажа, не хило так психика отстреливает ЗЫЗЫ - хотели бы помочь - помогли бы. Прити посрать != помочь. Быудьте здоровы, кушайте голубцы! Добавлено спустя 46 минут На всякий случай привожу пример как выглядит помощь кому либо..."своему", наверное... Добавлено спустя 48 минут Срок давности правда 13 лет, но не может же быть что люди вымерли за это время, а осталось только говно божественно уподобляющее себя |
|
Создано: 01 июля 2019 23:03 · Личное сообщение · #15 dma Так а что тут понимать. ТС пытается завести скрипт предназначенный для другой версии аспра. При этом не вкуривая как он работает и никакой работы своей не выполняя, просто хочет что бы за него всё сделали. Между делом кидая говном. Аспра есть разные версии, вот например та что на их сайте вообще не юзает tsc, а в туторе с этим сражаются через какие то драйвера, так как версия старая. ТС должен быть вначале пройти отладчиком захваченные протектором апи, что бы понять как они устроены. Он это конечно же не сделал, тупо пытаясь завести какой то скрипт без понятия. ----- vx |
|
Создано: 01 июля 2019 23:36 · Личное сообщение · #16 PEvgen отдохни пока что с месяц, и научись уважать других участников форума. п.5 Тема закрыта за нарушение п.9 + п.13 | Сообщение посчитали полезным: difexacaw |
eXeL@B —› Вопросы новичков —› "To long (recursive?) SEH chain" OllyDBG |
Эта тема закрыта. Ответы больше не принимаются. |