All streams
Search
Write a publication
Pull to refresh
39
0.6

Пользователь

Send message
Как вариант, можно реализовать в виде плагина, в нем установить свой VEH обработчик и при возникновении исключения делать дамп.

Непонятно, почему автор OllyDbg не обернул все обращения из хоста в плагины в __try ... __except и сам не сделал какого-нибудь аварийного автосохранения в фильтре необработанных исключений. Даже VirtualDub имеет какой-то нестандартный top-level хендер для исключений, показывающий и контекст потока, и дизасм проблемного места, хотя, казалось бы, мультимедийной утилите такой функционал не обязателен, а вот в коде отладчика уже есть многий инструментарий для реализации подобной плюшки, но самой плюшки и вообще хоть какого-то аварийного процессинга исключений внутри самого себя — нет.


Вообще, писать подобный плагин-автодампер для себя я не вижу особого смысла. У меня есть пара утилит, упомянутых в статье: memdumper.exe и extractor.exe. В случае проблемы достаточно вызвать


memdumper 12345
extractor ./ > emerg-dump.txt

У этого подхода есть один неоспоримый плюс: спасительные утилиты находятся вне зоне поражения сошедшего с ума кода. А вот плагин-спасатель может сам оказаться повреждён, ведь он разделяет с умирающим отладчиком одно адресное пространство.


Не знаю как в первой версии, а во второй функция сохранения в udd принимает указатель на t_module

А в первой версии такой API нет вообще. Но даже если бы была, я ведь упомянул, что есть за OllyDbg грешок тихо портить UDD при сохранении.

поэтому искать Васю Пупкина они не будут.
Ровно эту мысль я и пытался донести до juramehanik, который написал следующее:
Можете попробовать залезть в сферу ремонта более узконаправленной электроники, от сигнализаций до всяких промышленных контроллеров,
>Это уже интересная, но невыгодная работа.
Если под рукой УЗИ-аппарат за десятки тысяч долларов?
Это уже другой уровень проблемы. Когда нет никакой документации, но есть голова, руки, приборы и страсть к реверс-инжинирингу и анализу — такая ситуация не только раззадоривает на поиск решения, но и может стать конкурентным преимуществом, потому что других людей руки опускаются или скиллов не хватает.

А вот когда к вам просто не обращаются с такими задачами, потому что у вас нет «опыта», а «опыта» нет, потому что не обращаются, и вы сидите без работы — это совершенно другая, грустная история.
С такими устройствами встаёт проблема «яйца и курицы». Допустим, вы хотите переключиться на ремонт УЗИ-аппаратов. Обращаясь к вам, вас спросят, занимались ли раньше ремонтом этой модели аппаратов. А узнав, что не занимались вообще никакими, скорее всего от обращения к вам откажутся. Вы же, попав в этот порочный круг, так никогда и не получите свой первый заказ.

Это на ширпотребной электронике вроде телефонов, телевизоров, компьютеров можно набраться «стажа» и уверенности в себе, переремонтировав сначала всю мертвую технику себе, своим друзьям и друзьям друзей.

Причём, я прекрасно понимаю, что 90% отказов в том же УЗИ-аппарате будет на уровне «в тактильной кнопке панели управления обломался и закоротил выводы подвижный контакт» или «в блоке питания пробило диод», которые по сложности и уровню знаний, требуемых для починки, вообще ничуть не сложнее типичных отказов телевизоров и мобильных телефонов.

Но вашему заказчику важен ваш опыт в ремонте именно УЗИ-сканеров. Да и вам самим может быть немного страшно впервые браться за устройство стоимостью с новый автомобиль.
Термин «замкнутая электрическая цепь», честно говоря, немного нелеп и подобен маслу масляному, потому что электрическая цепь, по которой течёт установившийся ток, — априори замкнутая (как следствие закона Кирхгофа, а точнее закона сохранения заряда).
Очень приятная статья. Я думал, я одинок в своих взглядах на то, насколько катастрофична и печальна ситуация в отрасли, но статья и одобрительные комментарии прямо подняли настроение.

К сожалению, всё сложнее и сложнее найти заказчика и работодателя, который позволил бы тебе работать правильным образом.
Всегда поражали подобные вопрошения к толпе: «зачем вы там сидите»? Наверное, у людей есть причина сидеть, раз сидят.

Я, к примеру, являюсь админом ряда тематических групп: группы для инженеров-электронщиков, группы по ремонту и обслуживанию автомобилей кое-какой марки/модели, и нескольких групп, посвящённых музыкальным исполнителям. Всё это родилось на свет задолго до того, как сложилась такая опасная политическая обстановка. Очень большой объём сил и энергии был вложен в эти группы, чтобы сделать их интересными и привлекательными. Да и сама «общественная жизнь» в этих группах стала немаловажной частью жизни, без которой будет весьма тоскливо. И вы предлагаете взять и бросить всё это?

Кроме того, если отбросить таких инициативных людей, у которых есть потребность создавать свои «уютные» и интересные местечки, а не довольствоваться чужими, для большинства социальная продолжает выполнять свою первоначальную функцию — позволять людям делиться информацией с неким предопределённым кругом лиц.

Я давно начал ловить себя на мысли, что я, время от времени, вынужден рассказывать сначала одному человеку о каком-нибудь интересном событии, случае или какой-то эпопее (например, о нетривиальной починке какой-нибудь техники, сломавшейся абсолютно не вовремя) — пересказывать историю, разбавляя текстовый рассказ чередой фотографий, а спустя день-два уже другой человек просит поделиться подробностями, и ты опять рассказываешь ту же историю, скидываешь те же фотографии. Невольно задумываешься: было бы хорошо один раз сделать рассказ+фотоотчёт и предоставить возможность его читать всем тем, кому это может быть интересно. К сожалению, я не могу использовать для этого «стену» из-за отсутствия per-post настройки приватности — приходится довольствоваться личными сообщениями с тамошней возможностью скопировать и переслать диалог некоему новому собеседнику вместе со всеми картинками и вложениями.
12 ...
38

Information

Rating
1,865-th
Location
Петропавловск, Северо-Казахстанская обл., Казахстан
Registered
Activity

Specialization

Software Developer, Embedded Software Engineer
Pure C
Assembler
X86 asm
Win32 API
Visual Basic
MySQL
Git
OOP
Electronics Development
Reverse development