All streams
Search
Write a publication
Pull to refresh
1
0
Перикл Фемиди @pfemidi

Домосед

Send message
Естественно «null pointer assignment» говорилось только после выхода из программы, а не при самом присваивании, GPF ведь в те времена не ловили. Так что ни конкретной переменной, ни конкретной функции, ни номера строки в которой произошла эта «бяка» узнать было невозможно, озвучивался только сам факт что «где-то вот кто-то по нулевому указателю что-то нагадил». И естественно таким образом детектировалась только запись в NULL, а не чтение оттуда.

И ещё чего вспомнил. В те времена всякие кракеры да релизеры частенько специально «портили» строчку «Turbo C++ — Copyright 1990 Borland Intl.» или «MS Run-Time Library — Copyright © 1990, Microsoft Corp», прописывая туда строку типа "-=~ Brought to ya by VeryC00l Team ~=-", а вместо строки «Null pointer assignment» вставляли какой-нибудь «Released by !M0n$teR!», в результате при штатном завершении игры CRT проверяла контрольную сумму копирайта, она само собой не совпадала и CRT выводила «Released by !M0n$teR!», чем вероятно сильно повышало ЧСВ кракера или релизера.
В результате раздел данных начинается с адреса (данных) 0. Резервирование двух байтов в начале адресного пространства позволяет обеспечить то, что ни переменную, ни что-то другое в разделе данных нельзя расположить по адресу 0.


А в досе можно было положить. И на этот случай в борландовском Turbo C по этому адресу лежала строчка копирайта Borland International. А в досовском Quick C лежала строчка копирайта Microsoft. И при выполнении выхода из main CRT подсчитывало контрольную сумму этой строчки и при несовпадении жаловалось на «null pointer assignment», тем самым сообщая что где-то в программе произошло присваивание по адресу NULL (никакого защищённого режима в те времена естественно не было и никто никакие GPF и прочие иксепшены прямо в рантайме не умел).

Во какой я старый, во чего я помню!
Кстати, x64dbg и x32dbg в принципе хорошее развитие, только они пока ещё не дошли до стабильности того же OllyDbg первой версии, полностью 32-битного ещё. Я слежу за развитием x64dbg и x32dbg, но пока что нет. Близко уже, но пока что нет.

Сразу же одна весьма изматывающая особенность: если в OllyDbg первой версии нажать F12 для останова внутри отлаживаемой программы то OllyDbg первой версии останавливается именно внутри отлаживаемой программы, а x32dbg терминирует отлаживаемую программу полностью без возможности дальнейшего продолжения. Не всегда, но в 50% случаев. И это не есть хорошо. Поэтому как бы ни были хороши x64dbg и x32dbg, но пока они не дойдут в стабильности до OllyDbg первой версии они только красивые внешние подобия OllyDbg первой версии, не пригодные для реального использования на программах сложнее «Hello, world!» (образно говорю).
Отвечу так: «и почему ты упорото экстраполируешь свою узенькую направленность на всё человечество?»

Если тебе, лично тебе так прельстивы и любовны именно 64-битные приложения, то не надо говорить за всех. Я говорю не конкретно за себя, я говорю про огромную базу тех, кто пользуется и продолжает пользоваться именно 32=битными программами. Ты же говоришь только за себя и пытаешься свои хотелки выдать за хотелки всех.
Это у тебя слишком узколобое представление. Моя сфера деятельности не использовать готовые программы, а писать программы. И заказывают почему-то 32-битные. Потому что клиентам надо именно такие. И деньги мне платят именно за 32-битные программы. И ни разу никто не хотел 64-битную версию.

Всё, разговор на эту тему заканчиваю, ты непробиваем.
Ты автор Adobe, Avid, Steinberg, Blackmagic Design, Colorfront, The Foundry, Quantel, Fraunhofer, In2Core, MTI? Или компания в которой ты работаешь автор Adobe, Avid, Steinberg, Blackmagic Design, Colorfront, The Foundry, Quantel, Fraunhofer, In2Core, MTI? Нет? Тогда какого рожна?..

Говорю последний раз: я существую в продакшене, в котором надо поддерживать уже существующие версии, которые, сюрприз, 32-битные! И речи о том чтобы перевести их на 64 бита не идёт — это слишком затратно, долго по времени и просто невыгодно, понимаешь, НЕВЫГОДНО для бизнеса. Свои pet-проекты можешь делать какие угодно, это твоё право. Но в бизнесе, который уже давно выпускает своё ПО, так же давно сложилась своя ниша, которую менять только из-за прихоти какого-то ALF_Zetas никто не будет. Ты не поверишь может быть, но существуют годами работающие программы, которые требуют, понимаешь, требуют для своей работы Windows XP и не выше. Или вообще голый DOS.

Так что я живу не в дыре, а в реальном мире, а ты в каком-то выдуманном мирке, который существует только у тебя в голове и с реальным миром не имеет ничего общего. И это ты выкручиваешься, а не я, это ты всё пытаешься натянуть сову на глобус, оправдывая всеми возможными, а в принципе уже невозможными способами глупость, которую ты сказал несколько дней ранее.
Я не придумал, я вижу что вокруг. А вот ALF_Zetas явно придумывает какие-то ему одному ведомые вещи. 32-битных приложений, именно приложений, а не OS, сейчас пока что большинство. Так что хватит уже откровенную чушь молоть, надоело, ей-богу.
Не надо уходить от ответа, хотя понимаю: прижали к стенке и крыть нечем, поэтому и начали выдумывать всяких сферических коней в вакууме. Но всё же повторю вопрос: если Themida поверх 32-битного приложения (а таких пока что большинство)?
1) Слабо декомпилировать в IDA какой-нибудь .exe, закрытый сверху Themida? Вообще без OllyDbg? Если ответ утвердительный, тогда прилюдно съем свою шляпу после того как мне это покажут (хотя я шляпы не ношу, но специально куплю по такому случаю и съем её).

2) Не зная куда в каком месте ответвится программа упреешь смотреть на результат декомпиляции какого-нибудь .exe весом, скажем, 10 мегов и он подгружает ещё custom dll в общей сложности мегов на 15-17 (это реальный размер того, чего я в данный момент смотрю в OllyDbg) — жизни не хватит понять что там да как.
Ну если свои pet-проекты называть «продакшн» то верю, вполне такое может быть. А если это именно продакшн, в котором надо поддерживать уже существующие версии — тогда не верю, это не «продакшн», а так, фигня какая-то.
Не всегда по декомпилированному в IDA/Ghidra коду можно понять логику «с лёту», иногда требуется и пошаговая трассировка. Пример — подключение какого-нибудь внешнего устройства USB. При пошаговой трассировке прекрасно видно что происходит, какие пакеты приходят, какие уходят. В IDA/Ghidra это тоже можно посмотреть, но там получается куча веток для других возможных устройств, а нужно посмотреть только для конкретного. Упреешь в IDA/Ghidra искать именно нужную ветвь. В этом случае OllyDbg даёт фору IDA/Ghidra на сто шагов вперёд.
Я тоже не шастаю. Говорю только про то, что используется в продакшене, официально.
А что, абсолютно весь софт сейчас 64 бита? «А мужики-то и не знали!» © Лично я из софта, который сейчас мне попадается, вижу процентов 80 32 бита и лишь 20 процентов чистый 64 бита (речь не об OS, а о прикладных программах).
Да, блин… Фильмы я вообще-то не смотрю, специально их скачивал с торрентов только для того, чтобы узнать какие цифры сегодня надо добавлять к адресу сайта, 22 или 33 чтобы не было проблем с доступом к Джой Казино… И как я теперь буду жить без этой информации?

PS: это был ответ на самый первый комментарий, промахнулся с веткой.
А если официально разлочить бутлоадер (последние модели самсунгов позволяют сделать это официально, через меню), то Knox уходит безвозвратно? И его после уже никак не вернуть?
Да, привычки, согласен. Но раз в массовость вошло, раз с младых ногтей учат что приёмник слева, а источник справа, то это значит что это уже лет с пяти как минимум именно интуитивно. Не знаю как там у тех кто пишет справа налево (арабы, евреи и т.д.), но у всех остальных интуитивно «i = 5», а не «5 = i».
Ну да, согласен. Про int 18h я как-то забыл уже. Посыпаю голову пеплом.
Либо грузит OS, либо пишет «Press any key to reboot...», ждёт любую клавишу и делает jmp 0xf000:0xfff0. Просто зависать ему негоже.
Вот именно, на интуитивном уровне. Интуитивно как раз и ожидается что «i = 5», а не «5 = i».

Information

Rating
4,846-th
Location
Москва и Московская обл., Россия
Registered
Activity