>>2241525 (OP) Продолжаю чтение книги Эндрю Таненбаума "Современные операционные системы" которую мне здесь осенью советовали. Уже добрался до главы про windows, надо же Эндрю Таненбаум говорит что windows vista пиздатая ось была просто производители железа и популярность ноутбуков в то время гавно ей в штаны залили. Честно говоря первый раз такую точку зрения слышу и она мне довольо понравилась, потому что все обычно тупо берут и хуесосят висту в духе "ряяя аптимизация никакущая" хотя таже семёрка потребляет +- столько сколько виста, да, она видимо просто обогнала своё время.
>>2253461 Всмысле своё ядро? У каждой версии ос своё ядро. У висты было NT ядро версии 6.0 вроде. Ну да типа новая версия NT ядра более безопасная, производительная, но т.к. в те годы популярность приобрели ноутбуки маломощные и производительность железа застопорилась в прогрессе её не оценили, а потом выпустили слегка переработанную семёрку но позже и она на ура зашла
>>2254097 Не гаранитрую что мои слова верны, но на сколько я знаю win32 api это api для ms dos ну для винды на базе доса 95-98.
У nt есть свой api но майкрософт стараются скрывать его и делать так чтобы люди им не пользовались, а юзали win32api сделано это для того чтобы прилы были совместимы как и с nt ядром так и с виндой построенной на базе msdos
Ну типа win32 api обеспечивает совместимость для приложений с разными версиями винды.
Для программ которые писали для win 95-98 использовать win32 api. win 95 и 98 это по сути ms doc на которой запускается графическая оболчка. Правильно? Правильно.
Для того чтобы драйвер работал в винде он должен быть подписаным специальным центром сертфицикации от микрософт. Хорошо ладно. А как тогда разработчики антивирусов живут? Ведь антивирь которые не работает в системе через собственные драйверы не антивирь. Вот доктор веб ладно, они вроде чисты, а как подзалупный каспеерский работает? Неужели им выдаются эти цифровые подписи?
>>2241525 (OP) Поясните мне плиз пожалуйста за архитектуру x86. Сколько их штук то?
x86 и x64? Часто про вижу ещё x86_64 так будто это тоже какая-то отдельная архитектура. Не понимаю как они разделяются(ассемблер ещё не начал изучать, т.к. щас дочитываю книги про ос, но уже заранее интересно)
>Сколько их штук то? Одна. Так же там имеется некоторое количество расширений. В т.ч. с разной разрядностью адресов, но при этом сохраняется полная обратная совместимость: X86 ⊃ IA-32 ⊃ AMD64=X86-64. Но эти расширения единовременно вместе не доступны (взаимоисключающие) - нужно переключать режимы.
>>2256443 >Неужели им выдаются эти цифровые подписи? Естественно выдаются, а хули нет. И вообще, драйвер может работать и без подписи, но это уже другая история.
>>2257760 >При чём тут вообще 95-98? При том что он в них использовался и то что win32 api был представлен вместе с выходом первого nt этого никак не отменяет.
>>2241525 (OP) К сожалению с введением облачной аутентификации (ключ шифрования клиент, ключ дешифрования сервер) и hash функций, ассемблеры и прочее становится абсолютно бесполезным для взлома. Если бы хотя бы эти hash суммы хранилиь в пределах одного пк можно было бы по прежнему что-то переписать где-то и поломать. А щас усё.
Uefi ещё этот ёбаный гавна в штаны залил с этими hash функциями, но это ещё посильно туда-сюда если детально разобраться то впринципе можно переписать этих hash значения на свои, т.к. всё локально расположено. А вот в клиент-серверных моделях это бесполезно, ну или надо супер наноёба тру хакеромъ работающим на цру, хотя даже црушники не заморачиваются а тупо бекдоры юзают
>>2259709 Пишешь исходники в текстовом редакторе, как и на любом ЯП. Затем, запускаешь программу ассемблера на них, она выдаёт объектный файл. Который ты подлинковываешь в бинарник. Всё!
>>2259675 >Не думал что asm тредик настолько непопулярный Всё потому, что мало его кто знает нынче. А если кто и знает - редко применяют. Очень уж специфичная штука.
>>2254097 >Ну типа вызов win32 api createprocess является оболочкой для вызова nt api ntсreateprocess. > >Это типа вызов NT API создаёт прцесс через вызов win32api так чтоли?
Обьясняю.
Win32 API который есть на MSDN, это API которые доступны для программистов, их ты должен и можешь использовать в своем коде.
NT API, это API, которые официально не документированы, т.е. скрыты от глаз обычных прогроммистов, естественно что Microsoft не рекомендует использовать эти API, потому что не может гарантировать что они не изменятся в будущем, или вообще убрать их.
Но так как за годы существования винды написаны тонны говно-кода, использующие все возможные и невозможные низкоуровненые трюки, то ничего не меняется. Microsoft-у нужно поддерживать совместимость, потому что дохуща всяких игрулек защищено говно-защитами типа Starforce, Denuvo и им подобным. Естественно что там используются такие низкоуровневые вещи, о существовании которых и в самом Microsoft знают, может с десяток человек.
А так ты всё правильно сказал WinApi CreateProcess это просто обертка под более низкоуровневые функции, имплементация которых официально скрыта от обычных программистов.
>>2256443 >Для того чтобы драйвер работал в винде он должен быть подписаным специальным центром сертфицикации от микрософт. Хорошо ладно. А как тогда разработчики антивирусов живут? Ведь антивирь которые не работает в системе через собственные драйверы не антивирь. Вот доктор веб ладно, они вроде чисты, а как подзалупный каспеерский работает? Неужели им выдаются эти цифровые подписи?
Подзалупность Касперского никто официально не доказал. Всё на уровне слухов. Для Microsoft Касперский это просто отдельная security-шарага, коих на сегодняшний момент сотни по всему миру. Не вижу проблем в выдаче им такого сертификата. Кстати он называется
Тем более что никаких санкций на Касперском нет, в отличие от других российских компаний.
Кстати не понятно про какой именно сертификат говоришь?
Extended Validation (EV) Code Signing Certificates - так называется сертификат для подписи драйверов WHQL - так называется расширенное тестирование, когда твой говнодрайвер тестируют во множествах конфигураций, чтобы понять что он не глючный Early Launch Antimalware (ELAM) - фича драйверов появившаяся в Windows 8, которая позволяет драйверу стартовать раньше других, чтобы иметь возможность быть неубиваемым. Чтобы получить возможность подписать такой драйвер, нужно иметь сертификаты от разных незавимисых тестеров антивирусных компаний что твой АВ это не фейк-АВ.
>>2260047 Спасибо ещё за такое подробное объяснение, оставайтесь в тредике и дальше, хорошо что здесь можно вопросы такие задавать и люди развёрнуто отвечают
>Кстати не понятно про какой именно сертификат говоришь? Я просто книге Э. Танненбаума щас про устройство современных ос читаю и там в разделе про винду он просто упоминул что драйвера подписываются, а что их несколько этих видов я там такого не видел. Спасибо, что расписал.
>>2253474 >патчгуард >>2253601 >Погоди, а разве обновления шинды не патчат ядро?
Путаете теплое с мягким.
Патчгуард это технология для защиты от изменений в коде/данных работающего ядра в памяти. Т.е. когда комп включен, винда не позволяет изменять код ядра другими словами "патчить его". Дело в том что раньше было дохуища руткитов, которые статровали вместе с Windows, патчили ядро и становились невидимыми для практически всего. Еще таким же баловались всякий security-софт, в том числе вышеупомянутая защита для игрулек.
В какой-то момент Microsoft сказала что патчи ядра запрещены, все кто патчит это говно-софт, которому даже сертификатов для подписи выдавать не будем. А если патч будет задетекчен с помощью технологии Patchguard, то тупо показывается синий экран смерти, чтобы неповадно было.
Кстати в iOS/OSX есть подобные технологии, которые называются KPP (Kernel Patch Protection) и KTTR (Kernel Text Readonly Region)
Так вот, когда ты скачиваешь обновления для своей ОС. Это обновления - "патч", ничего в памяти не патчит и никакой код там не изменяет. Обновление ОС тупо меняет бинарные файлики ядра на диске на более новые. Именно поэтому после обновления ядра тебе нужно перезагрузить комп, чтобы новое ядро загрузилось в память.
Обновление ОС c Patchguard не имееет ничего общего.
Кстати Patchguard обходится одним очень простым трюком.
>>2260087 Ещё раз спасибо, анон. Продолжай, если ещё в треде будешь видить какие-то вопросы или что кто-то неправильноп пишет поправляй и максимум развёрнуто, очень просто и информативно тебя читать
>>2260087 Теперь ясно, патчгард защищает от измнений ядра во время работа, а обновления шинды патчат исходники ядра и изменения становятся видны только после перезагрузки оси, то есть выгрузки и загрузки вновь её в память.
А порты которые используют программы, ну типа как в сетевых программах скан портов, закрыть порт. Эти порты являются механизмом для локального межпроцессного обмена ну когда 2 процесса запущенные на одном пк обмениваются данными?
>>2260174 Пошагово выполнять на компьютере? В смысле, x86?
Ну есть различные отладчики. Как правило, в обыкновенных ситуациях, ими можно пошагово выполнять инструкции процессора. В отладчике можно наблюдать содержимое регистров, памяти.
Но есть сложные, особые ситуации. Например, когда пишешь ассемблерный код, который только при загрузке операционки будет работать. Или при обработке прерываний. Тут уже всё куда сложнее. Кажется, есть такой SoftICE отладчик. Очень крутой. А так, вообще без отладчика, тупо пишешь крайне внимательно ассемблерный код, и в сложных условиях его запускаешь и смотришь - как оно работает. Можно сделать некий отладочный вывод. А вообще, можно ещё предварительно в мягких лабораторных условиях погонять и поотлаживать урезанный код, который бы делал почти то же самое, что и боевой. Ну а после, когда он будет готов, испытать боевой код в естественной среде.
>>2260747 Не забывай - кажется инструкция int 3 (или int 5) генерирует отладочное прерывание в windows. Т.е. можно ассемблерную программу написать, запустить под отладчиком, подождать пока сработает эта инструкция, и там уже отлаживать.
>>2260706 А что такое порты тогда? Какой части ос они принадлежат? Это чатсть какого-то сетевого интерефейс к которому может программа обращаться для получения данных извне?
У меня с сетями вообще беда прям, никогда их не любил.
>>2260898 Спасибо, я нихуя не понял, единственное что я понял что нужно будет ещё книжечку Танненбаума по компьютерным сетям навернуть, чтобы хоть поверхностное прдеставление иметь, иначе никак.
>>2260832 >А что такое порты тогда? Число, или параметр, если удобно. Параметр сетевых запросов, который даёт понять, какая программа делала запрос (например), чтобы дать ей ответ. Это грубо говоря, просто чтоб ты понял примерно. >У меня с сетями вообще беда прям, никогда их не любил. Ну тогда читай что-нибудь по ним, я вот возможно скоро таненбаума буду читать.
>я вот возможно скоро таненбаума буду читать. Same, нравится как он пишет. Да без сетей никуда, хотя компьютерные сети, роутеры, коммутаторы это то что меня интересует меньше всего, но без этого видимо никак, нужно хотя бы примерно понимать что это такое
>>2261648 Ассемблеры, С\С++, драйвера, всякий ввод\вывод, ядра осей, файловые системы, антивирусное по(которое в ядре ос работает, а не всякое почтовое, сетевое) как озу работает, эти страницы с виртуальной-физической память, как ресурсы процессору выделяют, как потоки ебашутся в процессоре, но только не сетевая хуйня с этими вланами, роутерами, адресами, dhcp, ip4, ip6 и т.д. Такое дрочево унылое. Хуже этих сетей только веб разработка вот это вообще невыносимое для меня дрочево, настолько что я даже когда про вёрстку в браузере сел читать меня чуть не вывернуло.
Но впринципе если сети нужны для лучше понимания осей(а это ведь их часть, всё таки этот стек tcp\ip часть всех соверменных осей. Надо хотя бы поверхностно знать, надо.
>>2262719 То что си заточен под низкооровневое взаимодействие с памятью, а без дма на си написать его невозможно. потому что нужно напрямую процессору давать команды на ввод вывод, указываеть регистры и т.д.
>>2262719 >>2262780 Но я на истинность не претендую, я ньюфаня и это то как я щас понимаю в данный момент если я не прав то поясни мне плиз как всё это работает на самом деле
>>2262790 >ДМА контроллер обеспечивает взаимодействие между устройство через озу >низкооровневое взаимодействие с памятью, а без дма на си написать его невозможно >драйвера устройств на си пишутся Что-то не могу я связать эти три пункта.
Насколько я понимаю DMA здесь ни при чём. Си для написания драйверов используют лишь потому, что это - ЯВУ со всеми причитающимися удобствами/свистоперделками.
>>2263822 Опыт подсказывает что важно не язык выдрачивать, а выдрачивать устройства и api тех программ\устройств\ос для которых ты пишешь, а язык это чисто 5%
>>2263877 Ну от того что ты язык подробно выдрочишь до мельчайших деталей ты кроме того что будешь отлично знать синтаксис языка и его библиотеки стандартные ничего более не сможешь.
Язык надо учить но читать книги в неск. домой на мой взгляд неразумно. лучше язык выучить что примерно понимать что там есть и что оно означает а далее делать упор на разработку драйверв\состав осей и т.д. Системной программирование это очень обширная тема, это тебе не в вебе на 5 этажных фремворках гавно клепать или в редакторе игровго движка модельки 3д мышкой тоскать это настоящее программирование, классическое куда хуй вкатишься и нужно реально быть задротом отмороженным.
Просто читай читай и со временем информация накопится до критической точки.
Я сам уже прочитал Д. Ритчи Язык С, Бьёрн Страуструп основны ООП на примере С++, архитектура пк(как процессоры делают), щас вот дочитай Э. Таннебаума где он своременные операционные системы описывает, потом ассемблеры буду читать, потом как компляторы\отладчики планирую, потом наверное буду более деатльно в структурах ОС Windows разбираться, буду русиновича читать, обязательно книжечку по сетям от Э. Танненбаума, надо бы ещё почитать как материнские платы устроены там...
Да короче читать, читать читать рано или поздно информация начнёт складываться. Ну и здесь фактор что я кайф неподдельный испытываю от этого, мне вот нравится эта низукорвневая тема, мне не важно есть работа, не работа, я просто позитивные эмоции получаю от этого и другого мне не надо.
>>2263884 Спасибо за ответ. Я в целом, уже работаю макакой на Сях, но хочется прокачаться в лоу-левел теме. Ломать и реверсить бинарники, паковать демки в 64кб и прочие крутые штуки.
>Ну и здесь фактор что я кайф неподдельный испытываю от этого, мне вот нравится эта низукорвневая тема, мне не важно есть работа, не работа, я просто позитивные эмоции получаю от этого и другого мне не надо. Сейм.
>>2263905 Это не так сложно как кажется. Сейчас хочу научиться хорошо писать на плюсах, выучить теорию типов и компиляторов, и попытаться попасть в МЦСТ. Уж больно хочется с нашими процессорами поработать. Там как раз пару вакансий на сайте висит, одна из которых - разработчик компилятора.
>>2263914 Ну тебя прям на самый низкий уровень тянет, мне больше интересны драйвера устройств, антивирусы и архитектура винды\линукс, что-то новое разрабатывать не охота. Желаю удачи, анон.
>драйвера устройств, антивирусы и архитектура винды\линукс, что-то новое разрабатывать не охота. С таким подходом не планировал в Касперский вкатиться? А потом, мб куда-нибудь и получше попадешь.
>>2263968 Не, даже не думаю. Я вообще дома сижу на материной шеи и не работаю, думаю туда и без меня хватит людей после вузка с дипломами + у них там математика всякая и алгоритмы, у доморощенных людей шансов нет, мне кажется
>>2264022 >У тебя небось вышечка есть профильная? Как ты узнал?
>Не, даже не думаю. Я вообще дома сижу на материной шеи и не работаю А какие планы на дальнейшую жизнь вообще, помимо РНН офк? Просто если тебе действительно интересна эта область и у тебя получается ее понимать, то есть немало шансов, что ты сделаешь что-то годное или найдешь работу. Ибо диплом кроме бумаги для работодателя нихрена не дает.
>>2264055 >Да не знаю, смысла даже загадывать нет всё равно жизнь не идёт как хочется человеку просто тупо делаю что нравится и голову не забиваю. Может быть у тебя какие-то свои идеи для проектов есть? Йоба-софт написать или редкую японскую инди игру крякнуть?
>>2264145 Анон, не надо. Я сам со своей позиции вижу куда мне идти, за заботу спасибо, но мне нормально и всё устраивает к тому же я ещё только учусь. Закрыли короче эту тему сидим дальше в тредике и обсасываем ньюфажные вопросы
>>2264562 Попробуй хром в режиме от админа позапускать ещё, статус аксцев валейшн обычно от недостатка прав идёт, ну к каким-то ресурсам отказано в доступе.
>>2262832 При дма обмен идет через память, а без дма нужно на ассемблере с регистров данные от устрайства считывать. Нет дма и на си ты драйвер не напишешь
>>2262832 >>2268524 Для обмена информацией между устройствами используются порты ввода этих самых устройств.
Ну допустим процессор для обмена информацией с жёстким диском имеет 8 регистров куда поступает инфа, различные флаги и состояния от жд. Для того чтобы взаимодействовать с этими портами нужно в драйвер ассемблерный код вставлять указывающий регистры куда что посылать и откуда что принимать.
А DMA минует процессор и отображает эти порты ввода вывода в физическую память. Поэтому при технологии dma можно напистаь драйвер целиком на си, т.к. порты ввода вывода находятся в памяти а в си есть средства для низкоуровневого взаимодействия с памятью, а вот средств для обращению к региструю процика нет. Надеюсь пояснил
>>2269138 >Для того чтобы взаимодействовать с этими портами нужно в драйвер ассемблерный код вставлять не в драйвер в смысле а в его исходнрик, можно и в си вставить ассемблеры. я проебался. ну короче суть вы должны понять
>>2271144 >думаю может купить да слить в общую раздачу Ну народ, скажите что думаете.
Вообще лично меня радует что ксакел еще жив и в журналах до сих пор много интересного пишут. А в этой серии статей еще есть статья от Криса Касперски (RIP) которая у них не выходила, но писал он.
>>2271527 А ну это норм, да. Я бы в будущем хотел уметь такое исполнять. Но сейчас у меня более ограниченные цели: освоить ассемблер, прочитать про устройство компиляторов на примере каокго-нибудь с\с++ и конечно же дебагерами научиться пользоваться.
>>2271541 >вот что означает это двоеточие результат помещается в пару регистров >зачем shr rax, 2? нафига компилятор тут делит на 4? чтобы установить зф
>>2271662 >результат помещается в пару регистров Точно? Я тут просто кое как нагуглил что таким образом обозначается адрес и оффсет (внутри этого адреса, если я правильно понял)
>>2272091 Ну а почему тогда просто не поместить результат в RAX какой нибудь вместо двух 32-bit'ных регистров? Или это уже просто логика компилятора и не надо гадать зачем он именно так сделал?
Только что дочитал книгу Эндрю Танненбаума про операционные системы, начал читать где-то в 20ых числах ноября, закончил только сегодня. Ну 2 месяца читал, читал вдумчиво разумеется, вникая и перечитвая, но упражнения и ответы на вопросы в конце глав я не делал, так наверное книга бы растнулась на пол года я думаю.
Теперь про ассемблеры читать начну с классической x86 и затем перейду к x86_64
Посоветуйте, пожалуйста, книгку по ассемблеру x86 желательно для ньюфань(ну я с\с++ хорошо знаю, но в ассемблерах вообще особо не ебу) чтобы там все подробности разжевали, а не тупо сразу синтаксис подали. Спасибо.
Книга Танненбаума мне понравилась, очень подробная годная
>>2241525 (OP) Ищу, непонятное что-то в инете пишут, конкретно регистр данных какую разрядность имеет? регистров общего назначения это и есть регистр данных? тогда тут 80 бит, и как это понимать
>>2273513 А что там не понятного? Там же написано что в одном регистре 80 разрядов. 1 байт = 8 разрядов. Следовательно 80 делим на 8 и получает 10 байт. Правильный ответ 10 байт в одном регистре.
>>2273513 С определениями я бы не заморачивался у одной только архитектуры x64 сколько названий только нет и путаницы дохуя, тыкай что 10 байт вот и всё, я думаю он пройдёт как правильный.
Аноны, а есть в x86 (или иных ISA), условного вызова функции? Т.е. в той же x86 было бы что вроде callz funct если zf=1, вызываем funct. Очевидно, что было бы сложно передавать параметры явно, но в многих ситуациях это было бы архиудобно, разве нет?
>>2273266 >>2273648 А вообще читать все эти книги по ОС и Сетям впрок, с непонятными целями смысла нет. Все повыветривается. Хотя может быть у тебя феноменальная память.
>>2273648 >А Танненбаум значит для нюфань? По ОС есть гораздо более годная книга. Ну например вот Спасибо, анон. А есть годные замены Таненбаума по архитектуре компьютера и сетям для ньюфань?
>>2273675 Блин, нет, нечего сходу посоветовать. Я такую литературу читаю когда надо понять как работает вот конкретная какая то штука. Обычно это какая то конкретная отдельная глава.
Но чтобы весь том, взять и просто прочитать, непонятно зачем так изъебываться. Для галочки только если.
>>2273691 >Я такую литературу читаю когда надо понять как работает вот конкретная какая то штука. Обычно это какая то конкретная отдельная глава. А мне тут сказали, что перед тем, как приступать к С++, нужно сначала знатно почитать про ОС, сети и архитектуру компьютера, и посоветовали Таненбаума. А тут смотрю, что знающие люди этого не читали, и спокойно практикуют. Я тут подумал - может, сразу пойти в синтаксис и производные, а вся CS-теория приложится по ходу?
Взял вебмку от анона из прошлого треда. Что он делает? Я так понял он устройство ввода поменял в системе что у него в блокнот как только он туда кликает вводится одна и та же фраза из какого-то файла? Что он примерно сделал?
>>2273780 > Я такую литературу читаю когда надо понять как работает вот конкретная какая то штука Более того, никто техническую литературу от корки до корки никогда не читает. Это тебе не Нейромант какой нибудь.
Ну прочитал ты за 2 месяца книгу которая рассчитана на год в универе. Ну красавчик. А понял хоть что нибудь? Ну, в голове что нибудь отложилось?
> А мне тут сказали, что перед тем, как приступать к С++, нужно сначала знатно почитать про ОС, сети и архитектуру компьютера
Здесь на дваче посоветовали? Или на ответах мейл ру и прочих хабрах?
Те кто это советуют, сами на эти книги убили очень много времени и пользовались когда надо было. Раньше, я тебе напомню, вообще советовали программирование начинать изучать с Кнута и на ассемблере.
На reddit'ах, quora'х и на всяких медиумах да даже в блогах крутых датасайентистов с PhD , нигде никогда подобных советов не видел. Короче что я хочу сказать ... Продвинутые европейцы и загнивающая америка практикуют нисходящий подход к обучению. Анализируй это.
Бля, на английском языке ежегодно выходит огромное количество классных книг по самым разным темам. Которые никогда на русский переведены не будут. Потому и Танненбаум, потому что английский у этих людей ну максимум A2 :D
>>2274025 Смысл в том, что в проге при нажатии F8 выполняется оконная процедура перепечатывания символов из txt-файла. Но так как эта процедура внутри этой проги, то и перепечатывать она будет пытаться в прогу. Но, если сделать окно проги поверх всех окон, потом сделать активным окно куда надо перепечатывать, а потом с зажатой F8 просто мышкой переместить фокус на окно проги, то всё работает.
>>2273666 Ну хрен его знает, я бы не сказал, что Танненбаум это что-то сложное. Это просто книги-введение в которых описывается много, но не очень глубоко, но в то же время достаточно, чтобы получить общее продставление о работе сетей, ОС, ЭВМ. Алсо, нужно совмещать теорию и практику. Тебе ничего не мешает читать и писать код одновременно. Такие языки как Асм, Си - это простые языки, там учить практически нечего, но чтобы что-то написать на них, необходимо разбираться в предметной области, поэтому нужно и читать книги и получать практический опыт одновременно.
>>2274295 Да дело не в сложности а в бесполезности.
Есть более ориентированные на практику книги на эту тему. При этом в которых объясняется все тоже самое. От компьютер сайентистов, а не от профессора получившего степень по физике в 1970х. Или даже 60х.
Просто Таненбаум овер разрекламирован у нас. Как раз за счёт того что это чуть ли не единственная книга по фундаментальным вещам, переведенная на русский.
А вообще Таненбаум получил такую широкую известность особенно после публичного срача с Торвальдсом. Когда он вдруг решил что Торвальдс делает всё не правильно и давай его поучать.
Что до предметной области, лично меня интересует reverse. Кто вообще сейчас пишет на асме, я тебя умоляю.
Ты кстати случайно не писал ничего на основе этих книг? Интересно даже.
С другой стороны ты прав конечно. Такие книги как practical malware analysis ведь надо как то читать и никто не спорит что асм знать необходимо, но писать на нем что то большое уже не приходится.
>>2274356 Связь есть, только я не знаю как правильно объяснить - в инструменте написанном на асме можно вставить пометку в виде какой-нибудь ненужной команды, типа ret. Потом в отладчике ставить там брейкпоинт и уже руками поправлять данные, если что-то пошло не так. Как бы можно даже до конца не дописывать этот инструмент.
>>2274271 спасибо, анон я из того что ты написал процентов 20 понял, но всё равно спасибо. сохранил пост на будущее потом перечитаю с уже другими знаниями может быть пойму
>>2274254 именно перепечатывает то есть подаёт как события от нажатых клавиш с клавы или просто копирует из файла?
>>2274271 >Но, если сделать окно проги поверх всех окон, потом сделать активным окно куда надо перепечатывать, а потом с зажатой F8 просто мышкой переместить фокус на окно проги, то всё работает. Почему так нахуй? Активное окно же поменялось и перехват всех событий должен идти туда соответственно(ну кроме всяких контрл альт плюс делит)
Поясните а чём такая проблема с запуском программ разной разрядности на одном процессоре? Ну я вот не понимаю.
У меня только с моим уровнем знаний есть догадка что типа допустим есть процессор с регистрами на 32 бита и тут идёт код от программы 16 битов и он рассчитан на 16 битные регистры и получает что типа инфа которая предназначена длял двух разных регистров на 16 бит записывается как инфа для одного регистра на 32 бита и в этом типа проблема и программ предстаёт некорректно. Это верно?
>>2274610 да это я знаю, я не говорю о возможности переключения режимо я имею в виду конкретно почему 16 битная программа не может выполняться на голой 32 архитектуре без режима совместимости? я правильно понимаю что потому что потому что программа на 16 бит рассчитана на регистры 16 бит а не на 32?
ну типа программа на 16 бит на 16 битном процессоре записывала 2 регистра по 16 бит. а на 32 битном без режима совместимости она значения из двух разных регистров пишет в 1 32 битный регистр и поэтому программа становится некорректной для проца типа?
>>2274526 >именно перепечатывает то есть подаёт как события от нажатых клавиш с клавы Да. >>2274556 Хз. Баг? Там просто наводишь курсор, если в это время не нажата F8, то выход из процедуры. Получается что активное окно остаётся в блокноте, а прога считывает F8 и начинает печатать в активное окно - блокнот.
>>2274212 Спасибо, анон. Только я не понял - как думаешь, нормально будет сразу начать ковырять плюсы, и в процессе или даже после читать теорию, или твоя мысль в том, что все равно лучше изучить основы перед языком, но по более практичным книгам, в т. ч. на ангельском?
>>2274683 Нахуй ты его слушаешь. Он хуйню городит, ты читать должен книги и у тебя в голове будет откладываться многое, даже если практики не будет это я по себе знаю. Потому что в книгах тупо показывают различные решения и способы фичи которые у тебя в голове откладывают типа "ага можно вот так сделать" и когда на пратике ты с чем-то сталкиваешься у тебя уже подсознательно в голове много вариантов всплывает что и как гуглить.
Я на одной работе был там такой же чел был который говорил что читать ни нужно а только делать это по мере необходимости, ну и он короче был нелпохим спецом т.к. на практике многим занимался, но у него были такие элементарнейшие проёбы уровня когда нужно было множество однотипчных команд уровня "create file 001 create file 002 ... create file 090" сделать он их брал блядь вставлялт в текстовый редактор, копировал там потом как-то менял там цифорки и копировал этот огромный текст назад в консоль. вместо тупо цикла с переменной.
и чел ещё баш кстати знал.
Вот и всё, а если бы он не ленился и тупо бы книжку хоть раз глазами пробежал хоть одну по программированию он бы такой бред не лепил.
Так что если чувствуешь что хочешь читать то читай и хуй забей, ты когда читаешь у тебя конечно идеально в голове ничего не останется без практики, но основы будут и база, читай про всё: компляторы, ассемблеры, архитектуру и похуй что никогда практики не будет для общего понимания хорошо крайне хорошо знать в общих чертах как всё устроено.
Знаешь в общих чертах == когда на практике что-то нужно будет сделать у тебя в голове много вариантов потенциальных будет и ты в разных направлениях копать будешь
>>2274735 А ну да извини я заебланил, я просто увидел твою фразу про техническую литературу вначале и не сразу сообразил что ты про документацию говоришь подумал что раз в контексте у вас книги обсуждались то ты про книги сказал.
>>2274574 Пишу в тред обучения одного залётного нуфага всем тредом.
Между 16bit/IA-32/AMD64 есть некоторые отличия в наборе команд и в кодировании инструкций. Если попытаться исполнить коды из неподходящего режима/расширения, то довольно быстро исполнение упадёт с каким-нибудь исключением (выборки/декодирования или исполнения инструкции).
>>2274758 Спасибо тебе большое, анон. Да ты угадал здесь я одна ньюфаня которая уже месяца 2 как окопалась в вашем тредике и задаёт тупые вопросы. Не пропадайте.
>>2274719 >элементарнейшие проёбы уровня когда нужно было множество однотипчных команд уровня "create file 001 create file 002 ... create file 090" сделать он их брал блядь вставлялт в текстовый редактор, копировал там потом как-то менял там цифорки и копировал этот огромный текст назад в консоль. вместо тупо цикла с переменной. Так а при чем здесь книги? Эту хуету в любом курсе по программированию для начинающих расскажут. Кирпичи Таненбаума такого не вылечат.
>>2274683 >нормально будет сразу начать ковырять плюсы, и в процессе или даже после читать теорию Конечно. Тебе сейчас иксперты двачерские насоветуют, блять, кирпичами Таненбаума себе голову расшибать или наворачивать его суррогаты, просто, чтобы начать кодить. Даже в вузе у нас были сначала кресты, а потом уже архитектуры ЭВМ всякие, ОС и прочее. Забей на эту хуйню, даже не факт, что она тебе понадобится.
>>2275006 Никто и не говорит что если человек занимается вебом или геймдевом или тупо любое другое рпикладное по пишет что он должен обязательно знать о компляторах, ассемблерах и архитектурах, но если ты с системным программированием связан то это обязательно. Ковырятся-ковырятся и ещё раз ковырятся, архитектуры, как работают шины, драйвера, ядра осей, компиляторы, отладчики, то-си боси хуй на троссе это необходимо просто.
А если ты в геймдеве или вебе сидишь то понятное дело что это не пригодится.
>>2275011 Так он голые плюсы хотел, а это не равно системное программирование. Ими внедряют тот же машин лернинг в продакшн, в алгоритмическом трейдинге с ними ебутся и т. д. Там по большому счету излишний дроч на архитектуры, ядра, компиляторы и сети просто не нужен, ни в виде Таненбаума, ни в виде суррогатов. И уж не думаю, что у вкатыша в системное программирование возникнут такие вопросы - там как раз более чем очевидно, что весь этот кал жрать придется по долгу службы.
>>2275144 А понял. Ну да ты прав, с++ ещё в геймдеве используют. А так конечно если системное программирование тот там упор на си больше делать надо даже нежели на цпп, ну ассемблеры само собой, хотя они так часто нужны как си но всё же без никуда ето база.
а ещё ведь нужно знать устройство bios\uefi всяких, об этом тоже книжечку нужно будет почитать у них ведь наверняка какие-то свои api есть
>>2275011 >архитектуры, как работают шины, драйвера, ядра осей, компиляторы
А я говорил, что по всему этому существуют более доступные аналоги (и ссылки были, и на ОС и на построение интерпретаторов и компиляторов, с реализацией. А в книге по ОС с псевдокодом на Си), чем сухой Таненбаум и Книга Дракона, просто у нас имена этих авторов не разрекламированы всякими профессорами из университета и мин. обром.
Поэтому, самое главное, что перво непременно необходимо это английский. Хотябы B1-B2. И для тебя целый новый дивный мир откроется.
>>2275230 Какие нахуй архитектуры, компиляторы, ОС и сети, если человек попросил голые плюсы, а они ему, может, нужны для какого-нибудь банального эффективного машин лернинга в продакшене, например. Ему по факту ни Таненбаум, ни его суррогаты не нужны, вот и все. Сыр-бор загорелся из-за этого.
>>2275268 Ну да да я понял. Мне просто слово суррогаты не понравилось. Как будто все кроме Танненбаума шлак. Нет анонче, ты не прав.
А вообще да, срач уровня JS тредов.
ЗЫ Я вообще сюда сейчас зашел чтобы сказать как же меня бесит синтаксис ассемблерных вставок в GCC. Почему не сделать что то вменяемое как в Visual C++ блять.
>>2276371 Потому что x64 это тоже самое что и x86, только с 64-битными регистрами, но это наёб человечества маркетолухами, 64-бит это очень большие числа, ими оперировать сегодня нет необходимости. Вот их и разделяют. Ещё есть другие архитектуры, risc там итд, можно ваще самому замутить свою архитектуру. другой анон
>>2273648 Спасибо большое анон, щас читаю первую книгу которые ты посоветовал ассемблер степ бай степ, очень годно. Читаю без пропусков, автор вначале уже про системы счисления и память дополнил многие проблемы которые у меня был, сразу видно что ему реально интересно как всё работает до самой сути, годно, годно.
Сяп. Асмач, а какие конвенции вызовов использовались в эпоху 8088/8086 ? Тупа всё пушилось в стэк задом-наперёд, или конвенции как таковой вообще не было?
>>2274025 https://dropmefiles.com/NHUaw Так как я за гласность. Решил выложить исходники, там на английский и русский язык. Прога не умеет менять раскладку, так что за этим нужно следить самому. Внизу исходника бонус, можно вставить в окно проги нескучную картинку. Ну... можно легонечко потролить недоммо всякие, в которых нет ctrl+v. Наташа with love
>>2287431 Спасибо за исходники, программа от создателей видео где спамится "СДОХНИ ФОШЫСТ". Может потом скачаю
Алсо, я ньюфаня вкатывающаяся, щас книгу читаю по асмам IA32 так вот у меня вопрос если процики поддерживают обратную совместимости то почему на виртуал боксе стабильно не работают нормально винды которые ниже 2000? Почему 98 ещё в процессе установки на вб выдавала кучу ассемблерных инструкций, хотя платформа у неё ia32 как у 2000 и как у xp но те нормально эмулируются.
Почему досовские окна конфликтуют с современными процессорами?
>>2241525 (OP) Как скачать книгу Дениса Юричева Reverse Engineering для начинающих? Раньше она открывалась по адресу https://beginners.re/RE4B-RU.pdf а теперь ссылка не работает. Английская версия тоже не скачивается. Остальные скачиваются нормально. На лоре один юзер написал, что якобы нужна авторизация чтобы скачать по этой ссылке. Что это вроде как испытание. Если сможешь одолеть, то скачаешь. Кто нибудь в курсе как скачать?
>>2288284 Не знаю что такое вб к сожалению, но мне кто-то здесь уже говорил что это связано с тем что процессор слишком быстрый для винды. А у меня вопрос а не похуй ли винде на его скорость? Ну быстрый и быстрый какая разница 10000 инструкций выполняются за 0,25 секунды или за 1 секунду. Чем это влияет то?
Я вот помню игра дальнобойщики 2 на современных(по тем меркам) системках запускала и там графика очень быстрой была, приходилось запускать в нагрузку браузер или офис какой-нибудь чтобы нагрузить систему и игра работала нормально. Ну ошибок не было, не понимаю как быстрота выполнения приложения может вызывать в нём ошибки и сбои.
Ну хотя с виндой 98 у меня вырисовывается уже предположение насколько я помню ошибка вылетатла во время установки на стадии обнаружения устройств, plug and play и вот это всё возможно оно слишком быстро выполнялось и система не успевала сконнектится с оборудованием от него же нужно сигналы согласования получить и т.д.
>>2289729 VirtualBox подумал что ты на нём играешься. >А у меня вопрос а не похуй ли винде на его скорость? Я бы сначала проверил, может похуй, а может и нет. Если память не изменяет, то 98 винда у меня работала на VMWare, а для 95ой я замедлял скорость проца. Или я вообще всё придумал.
>В VirtualBOX есть ползунок, где вы можете настроить% хост-процессора, который может использовать гостевой процессор. Такой процент относится к каждому ядру. >В VirtualBOX нет способа симулировать многоядерность с разными скоростями на каждом ядре, только один слайдер для всех ядер. >Установка ползунка на 50% приведет к тому, что гостевые ядра будут работать на 1/2 ядра хоста (основы для каждого ядра). >Так что, если у вас есть дека-ядро (10 ядер) на хосте и три ядра на гостевом (три), и вы хотите, чтобы гостевая частота работала на X МГц, а хост - на Y МГц, просто проигнорируйте количество ядер, чтобы вычислить процент. >Формула будет: процент = 100 * X / Y>>2289732
>>2289330 >Что это вроде как испытание. https://beginners.re/paywall/ Вроде был просто пейвол (первое время даже в крипте), башляешь пару баксов и держи ссылку - что там лысый еще придумал с этой конторой Torus Company, хз
Байтаны, кто рубит в sha256 - помогите плиз разобраться. Нашел на реддите визуализатор генерации этого хеша - sha256algorithm.com, круто сделано интересно/наглядно и вроде бы все ясно, но.. Захотелось пощупать как генериться дайджест для длинных сообщений (для которых пришлось бы нарезать несколько 1024 битных чанков) и тут затыка: - на первом прогоне хэши H(0) стандартные, согласно RFC: H(0)0 = c1059ed8 H(0)1 = 367cd507 H(0)2 = 3070dd17 H(0)3 = f70e5939 H(0)4 = ffc00b31 H(0)5 = 68581511 H(0)6 = 64f98fa7 H(0)7 = befa4fa4 - при проходе последнего слова в чанке мы обновляем эти h0, h1,h2 и т.д. складывая первоначальные значения с временными переменными (выделено на пик 1) - генерим следующий чанк (формируем/ксорим/сдвигаем данные как положено) и вот для него по идее должны быть проинициализированы уже новые (сформированные ранее сложением) h0, h1,h2 и т.д. но вместо них для меня непонятно откуда взявшиеся значения (выделено на пик 2) - самое интересное при проходе последнего слова в новом чанке можно увидить ожидаемые h0, h1,h2 и т.д. сформированные ранее (выделил на пик 3) Короче вопрос, откуда взялись Initial hash value's со второй картинки? --- Если что, искомая строка в HEX режиме: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
>>2291270 >>2291272 Вчера уже совсем запутался, наделал ошибок: >нарезать несколько 1024 битных чанков 512 конечно же >H(0)0 = c1059ed8 это из спек для SHA-224, для SHA-256 значения другие но на том сайте все инит хэши корректные --- Основной вопрос пока без ответа, как для второго блока был получен этот h0 со значением 96 43 A0 E7 учитывая, что в конце предыдущей итерации h0 был расчитан как BA 5C DF 6C (причем это значение используется в конце второй итерации, когда приходит время обновлять хэш значения), а сама эта ситуация повторяется и в третьей итерации, и четвертой?
Я уже не знаю.. В википедийном псевдокоде и сишной реализации из openssl никаких дополнительных действий с инит хэшами не нашел.. Как будто в этом визуализаторе есть расхождение в актуальных значениях и тех, что он отображает в блоке Working variables
>>2291607 >Как будто в этом визуализаторе есть расхождение в актуальных значениях и тех, что он отображает в блоке Working variables ЗиС Автор поправил
>>2273648 >Assembly Language Step-By-Step by Jeff Duntemann ещё раз спасибо тебе, анон. Читаю её сейчас уже на 6й главе очень много годной инфы помама ассемблеров узнал, люблю когда авторы заходят издалека и много сторонней инфы подают за это люблю Танненбаума и вот этого автора Джефа Дунтемана, спасибо, годная книга не перестаю радоваться от чтения.
Как с ней завершу перейду к твоей книге по 64 битам.
>>2273266 >дочитал книгу Эндрю Танненбаума про операционные системы >>2273648 >by Jeff Duntemann У этого Джефа Дантмана есть интересная книга: Learning Computer Architecture with Raspberry Pi. Может кому интересно будет. Меня заинтересовало, почитаю.
>>2292941 Спасибо, но какой смысл про компьютерную архитектуру читать если про неё уже читал книгу от других авторов, разумнее будет почитать про какие-нибудь компляторы или отладчики про то что ещё не знаешь.
У меня в планах после книг по ia32 и 86_64 почитать про отладчики, компляторы. Потом хотелось бы таненбаума про компьютерные сети навернуть и ещё почитать про всякие bios'ы и uefi про их структуру. Потом русиновича было бы неплохо навернуть про устройство шинды.
А кстати антиплагиат невозможно обмануть просто тупо создав свою кодировку с другими цифровыми кодами.
Ну типа в обычной кодировке A это 64, а в твоей это Допустим 2, но визуально выводится как А.
Потому что антиплагиат я так подозреваю анализирует текст фотометрически, то есть анализирует его как изображение путём распознания, так что кодировку менять бессмысленно, системку на наебать.
>>2292979 >Ромхакингом займись Впервые услышал это слово. Игры под консоли писали на ассемблере? Для меня это новость. Тема интересная. Спасибо за подсказку.
>Начни переводить. Переводить что?
>Перевод игры Valkyrie Profile на Sony Playstation. У меня нет Sony Playstation. Поэтому не будет мотивации.
>>2292994 >антиплагиат Ты какой антиплагиат имеешь ввиду? Есть инфа по теме как определять плагиат в текстах? Есть идея создать веб-приложение для проверки уникальности текста.
>>2292992 >какой смысл Как знаешь. Я просто нагуглил ее когда гуглил книгу по ассемблеру того же автора. Мне показался подход изучать архитектуру через одноплатник интересной. Много ли ты понял из книги Таненбаума по архитектуре? x86 очень сложная архитектура. Без практики сложно ее понять. Заучить просто так нельзя, не будешь понимать. Практиковаться сложно, не везде можно залезть руками с помощью ассемблера. В общем это как изучать устройство ДВС по книге, не имея возможности залезть в него руками. Очень абстрактные знания. Мне кажется с одноплатниками проще, там ARM, который считается чуть ли не эталоном инженерных достижений.
>У меня в планах после книг по ia32 и 86_64 почитать про отладчики, компляторы. Хочу написать компилятор.
>>2293443 Да, ну, только для кастомных систем вроде приставок или каких-то микроконтроллеров, где ресуров хуй да нихуя. Большие системы почти всегда были построены вокруг компиляторов более высокого уровня. Юникс, cp/m и т.д.
>>2293443 По каким материалам можно изучать как создавать графические приложения на ассемблере? Сколько смотрел оглавления книг, везде только про сам язык. Поэтому никогда не было мотивации его изучать, так как не знал что на нем можно делать. Хочется еще научиться работать с сетью на асме. Еще понять как на нем пишут компиляторы и как в него компилируется код.
>>2293457 Спасибо за подсказку. Дело в том, что почитав вскользь разные книги, статьи и руководства, на нашел в них кратких ответов на общие вопросы. Из-за этого пропадала мотивация читать полностью и выполнять задания. Нет объяснения общего устройства компиляторов. Компоненты компилятора отличаются ли от компонентов интерпретатора (как я понял почти нет, как минимум в обоих случаях есть парсер). Ну и всякие другие простые вопросы. Мне это нужно для формирования общей картины. Уж так устроен мой мозг, я мыслю образами. Если образ не сформирован, то мне ничего не понятно.
>>2293457 Еще мне непонятно как работает компилируемый код. Во-первых непонятно во что обычно компилируют код. В ассемблер ли, или в машинный код может, или еще во что-то. И непонятно как он исполняется. Пишут ли для него какой то рантайм и если да, то как работает этот рантайм, зачем он нужен.
>>2292969 >Чтобы такое на нем написать? Нужна заготовка, чтобы при считывании символов с экрана в программе срабатывал "скрипт". Сам скрипт не нужен, нужна заготовка от начала считывания символов, до начала срабатывания скрипта. Не важно как они появились на экране, если они есть - срабатывает скрипт.
>>2296266 а как это "симовлы на экране"? Наскоьлко я знаю в линуксе есть stdout стандартный с дескриптором файла 1 который отправляет вывод на экран, ну это же вроде пиксели отрисовывает всё разве не? Сами символы то навеное где-то в памяти сидят, врядли монитор и видеокарта что-то знают о симовалах, они скорее пикселы тупо отрисовывают
А что может быть причиной rom ошибки в bios? Ну я так почитал про неё это не соответствие контрольных сумм. Это что неудачная перепрошивка могла быть или что? Это же рид онли мемори, она переписывается только в случае перепрошивки.
>>2297507 >они скорее пикселы тупо отрисовывают Кстати, да. Для начала можно скопировать видеопамять со словом ВОРОНА в файл. Посмотреть как оно там располагается, скорее всего у разных видеокарт по разному. Потом прописать условие для поиска с разными шрифтами там и т.д. Это первое что пришло в голову.
>>2297543 > Потом прописать условие для поиска с разными шрифтами там и т.д. Бред. Это нерешаемая задача. На разных разрешениях символы всегда будут выводиться по разному, на разных шрифтах, на разных сглаживаниях.
Это сработало бы только в алфавитно-цифровых режимах видеокартны, обычно с адреса 0xb8000, если не использована другая страница. Но сейчас алфавитно-цифровой режим видеокарты используют разве что фрюниксы до старта Икс-сервера. Да это и то это не факт. Точнее, уже лет 15 как эмулирют его и в графический режим переключается ещё начальным загрузчиком.
>>2297546 Не ну почему есть же программы котоырй распознают текст на фото. Можно действительно скопировать видеопамять и на неё распозновать, чем картинка монитора от обычного фото бумажной страницы отличается? Вопрос в том что это тема уже какго-нибудь компьютер вижн с алгоритмами и вот это всё к системкам и байтоёбству это уже такое значением не имеет.
>>2298126 >Не ну почему есть же программы котоырй распознают текст на фото
Вообще не вариант. Такая программа будет тормозить всю систему и работать будет невозможно. Как вариант, можно попробовать перехватить системные вызовы DrawText и DrawTextExA, потому как в итоге всё ним сводится, но это нетривиальная задача. И потребуются права админа.
>>2298182 Не ну я честно говоря особо не вчитывался в то что ты хочешь( без обид) просто мельком увидел о чём вы пишете и решил 5 копеек вставить.
Ну вообще у тебя конечно странная потребнность с экрана что-то считывать. Так соглашусь что это не варик и нужно пытаться какие-то системные вызовы перехватывать их аргументы или хз.
Можно ещё если на винде драйвер-фильтр написать какой-нибудьи поместить его в стек например, но это опять же получится перехват информации с ввода т.к. её можно перехватить только когда она поступает на дисплей, а обратно её оттуда уже не вытащить.
Тут есть желащие порешать крякми совместно на днях? Я с головой погрузился в один. Там средняя сложность. Нужено кейген написать. Хексрейс новый и гидра нормально его декомпилируют. Я с дисассемблером сравнил и вроде всё правильно сдекомпилилось. Там на вход 64 цифры они разбиваются на 8 блоков но 8 цифр и дальше странный алгоритм ищет по возрастанию цифры и проверяют чтобы найденные цифры были не в соседних блоках или что-то такое. У меня мозг сломался т.к. кучу раз проверил и он реально ищет цифры каждый раз на 1 больше начиная с нуля и говорит, что ключ правильный когда дойдёт до 64. Но цифр то всего 10! Вот тут я не понимаю как решать. Может кто-то хочет совместно посмотреть на на задачку и вместе порешать?
Какой использовать ассемблер чтобы без напрягов создать скомпоновать программу с libc на 64 битной системе? FASM чтот не справляется, весь инет облазил.
У меня сформировался концепт) - надо сделать программу, аналогичную PrintScreen, но с указанием временного интервала(для слабых пк). После того как она будет помещать копию экрана в буфер начинается поиск символов. Думаю очень нужная программа, ведь в ней можно будет искать не только символы. а раздавать хэдшоты, нет
>>2298414 Я к сожалению хотел бы, но слишком ньюфаня для такого сейчас в IA32 вкатыаюсь по книжке, хотя бы в базовые инструкции. Но завидую конечно, смотрю на посты таких как ты первоклассник на 11 классников качков короче.
А ещё про какие-то тут запаковщики один анон писал что это такое, архиваторы чтоли? В чём их суть? Так интересно это всё. ньюфаня вкатыш
>>2298799 >А ещё про какие-то тут запаковщики один анон писал Угадай кто?) Вот тут>>2291628 когда меняется сцена(затемнение), происходит распаковка данных с буквами. У этого куска данных есть заголовок с размером для распаковщика внутри игры. Я написал запаковщик, чтобы после того как я поменяю буквы их запаковать и подсунуть на диск, чтобы игра не заметила подвоха, так как новый размер куска был меньше. Но она сука замечала, и в счётчике игрового распаковщика был старый размер. Но так как я не хотел нарушать целостность игры, решил написать запаковщик с указанием размера запакованного куска, и сука написал. Просто в старом запаковщике поставил условие: если ему встретится чанк, который можно запаковать и который будет содержать нужную разницу размеров, то его не надо сжимать, а оставить как есть. Но оказалось, что проблема была на поверхности и я лажанулся.
Да это всё просто на самом деле, надо просто начать писать, по ходу всё начинает получаться. Сложность в том, как потом вернуться к старой простыне и понять чё там ваще написано.
>>2298833 >Сложность в том, как потом вернуться к старой простыне и понять чё там ваще написано. комментировать каждую строчку отделять блоки кода выполняющие общие задачи и описывать подробно каждый блок комментарием
>>2299337 Ну ладно, спасибо. А как напечатать адреса? Я это сделаю но позже я щас в ноутбуке ssd 250гб буду скручивать и ставить жёсткий диск на 7200 оборотов объёмом 1тб памяти не хватает, а этот запуск за 5 секунд мне не всрался если честно.
>>2256441 > win 95 и 98 это по сути ms doc на которой запускается графическая оболчка. Правильно? Правильно.
Neekhooyah.
MS-DOS там был чем-то вроде загрузчика, всего лишь. В досе API-то по сути не было. ФС, диск, немного экран и клавиатура - по сути всё, остальное колхозили внутри приложения напрямую в железо - setup досовских игрушек с настройками саундбластера все помнят? :) Ни гуя, ни сети полноценной, ни звука, а 9x всё это умели в полный рост.
>>2299372 Да так все системы впринципе работали однопроцессные. Всё поменялось с приходом гуя.
А до доса вообще на всяких CP тупо они использовались чтобы вызывать приложение, перезагрузить компьютер и комп уже запускал приложение без самой операционки.Мда тогда всё довольно просто было и не надо было много знать, да и взломать что либо проще было, после внедрения hash функций и сертфикатов с двусторонним шифрованием это становится анриал тупо.
Гугел и педивикия о таком не знает, motolithic kernel и всё. Нескучные codenames для таких хуиток пришли позже из мира пердоликса. Сама винда 9x как целое - Chicago, Nashville, Memphis...
>>2299596 Понял, спасибо. Ну впринципе норм, я так понял что dos использовался чисто чтобы загрузить windows 9х, а после этого он выгружался и шёл нахуй и windows 9x уже своими средствами взаимодействовала с железом и прочим?
А в винде получается тоже есть в самому низу памяти таблица программных прерываний с векторами прерываний которые содержат ссылки на процедуры bios и операционной системе? Я просто щас книжечку читаю 1 из 2 что здесь советовали(спасибо, анону) уже вот 8ю главу читаю и на линуксе то они есть. В винде наверное тоже только там коды векторов другие ну и процедуры другие.
>>2300351 Это чё архитектуры какие-то? Ну судя, отдельный тред врядли взлетит, меня самого прошивки интересуют интересно чем программировнаие микросхем от процессоров отличается.
Я вот читаю читаю всё равно пробелы широкие, хотя книжку по архитекутре навернул, сейчас вот ассемблер 32 учу, до этого танненбаум про операционные системы, ну до этого практика на классических(для треда) с\с++, но мне мало, я хочу до сути докопаться и чем глубже копаю тем большеи нфы появляется, щас я уже знаю что надо после 64 разрядной архитектуры про компляторы читать, про отладчики и т.д.
>>2299129 >rizin.re выглядит как СЖВ форк радара2 (учитывая, что тиран-создатель последнего никуда не перекатывался и пилит спокойно сабж дальше на коленке) хотя на ЛОРе был чел занятый в разработке этого ризина/каттера, который красиво расписывал, как в форке будет много всего нового прорывного и что pancake вообще только и умеет, что шутить про анал в именах переменных
>>2300351 Если предполагается программировать эти машины на АСМе, то пиши в этот тред. Думаю, вообще, нет смысла в одельном треде: тут и так полтора анона тусуются.
Приветствую, аноны, решил попробовать в этот ваш ASM какой компилятор выбрать под win-10 x86-64? учусь в местной шараге где преподают под x80 на эмуляторе и может ещё пару советов накидаете? не вкатываться - не принимаюпока что обложился разно литературой - большая часть гласит что она для тех кто уже умеет
>>2305696 FASM конечно же. Томаш Грыштар гений, который сделал действительно независимую платформу для программирования. А не то что эти высокоуровневые шизики, которым кажется что вот так правильно. Иначе в асме смысла нет.
Поясню. Программирование по шаблонам в асме не имеет никакого смысла. Это будут +/- теже свистелки-перделки что и на высокоуровневых языках. Если есть желание действительно погрузиться в дебри асма, то нужно всё делать самому, тем самым развивая гибкость собственного мышления. Иначе, со временем придёт понимание - а нахуй я делаю 100 строк, если в с++ тоже самое можно сделать за 10. То есть эти 100 строк асма должны быть оправданы. Поэтому, ещё раз скажу своё иимхо - больше делайте чем читайте. Это если ты не троль, а правда новичок, потому что я сам не профи.
>>2304880 асм нужен только в реверсе(и то только читать) или в компьютерной инженерии. Даже в embedded все пердолятся с сишкой или крестами и кросс компилят под нужную архитектуру. По реверсу бери Ден Юрича, по железякам Computer Sytems from Programmer Perspective или nand2tetris.
>>2299372 Ах, DOS. Текстовый редактор Лексикон. Нортон коммандер. QBasic. autoexec.bat и config.sys, имена файлов 8.3. Кто сейчас помнит о таком? Чем отличается expanded memory и extended memory? Остались ли ещё люди, вешающие свой обработчик прерываний поверх существующего? Кто помнит, что такое резидентные программы?
Я передавал по lan кабелю с одного ноутбука на другой файлы. После передачи выяснилось что оказывается в некоторых файлах была потеря каких-то битов из за чего некоторые фото например потеряли оттенки, сдвинулись и т.д.
У меня 2 вопроса: 1. Почему происходит потеря битов при передачи по lan кабелю 2. Как это предотвратить? Может есть какие-нибудь команды, режими копии которые включат проверку после передачи каждого файла на его целостность.
Кто-нибудь хоть раз редактировал mbr? Как вообще устроены загрузочные носители?
Ну вот, допустим загрузочная программа которая загружается с cd диска.
Я так понимаю на cd диске есть mbr таблица там есть код на загрузчик который загружает какую-нибудь дос, которая загружает свои файлы + всякие драйвера на поддержку указателя мыши и т.д. и после этого запускает саму программу?
>>2314902 Самое сложное наверно генератор ключей для игры Dominions II. Хоть игра мне тогда очень нравилась (точнее ее сеттинг), создание генератора оказалось еще интересней самой игры.
А прошивка uefi\bios которая загружается с микросхемы в память пк так и остаётся в памяти сидеть даже после того как ось загружена? по идее да, раз какие-то процедуры bios есть в таблице векторов прерываний...
>>2315009 >>2314978 Ёбаный нервоз + пиво, извиняюсь за грубость. Аноны, если ничего не делать на асме, то в этом треде нет смысла. Мне просто не интересно, даже вот был анон которому препод задал римские цифры, было интересно. Он видимо так и не победил, а зря.
Какую архитектуру, для которой существует нормальный полноценный эмулятор, можно выбрать для изучения совсем зелёному? Очень неохота начинать с x86, хотя совсем немного в ней понимаю; пытался реверсить простые приложения (сапёр), писал бутлоадер/неполноценную ось, но всё равно ещё слишком много белых пятен и нулевая мотивация для изучения. Хочу, чтобы всё было максимально прозрачно; чтобы всё можно было уверенно потыкать вплоть до бита на шине; разобраться в том, как работает обращение к памяти и устройствам ввода/вывода, прерывания; понять, как работает АЛУ, откуда приходят операнды и куда идёт результат (Таненбаума пытался читать примерно год назад, но забросил как раз на главе о микроархитектуре; показалось тогда пиздецом не для моих мозгов).
>>2316293 Для этого нужен эмулятор пк с отладчиком. Но знаешь что? Его надо написать, на АССЕМБЛЕРЕ!! Причём он явно есть у пиндосов, потому что тупо проще написать эмулятор пк для пк, чем эмулятор ps1 на пк.
>>2316559 А? Эмуляторы у меня есть - Bochs, QEMU, но, как я и сказал, познанием архитектуры компьютера и внутренностей ОС на примере x86 я заниматься не хочу. При чём здесь ассемблер тоже не очень понял, всё на C/C++ замечательно пишется, браузерные так вообще на JS.
Думал вот с 6502 или 4004 начать, но не смог нормальных эмуляторов пока найти.
>>2316802 >всё на C/C++ замечательно пишется, браузерные так вообще на JS. Ну вот, не кривя душой, чёто нету таких эмуляторов. Если всё так замечательно пишется, то почему не пишется? Я не тролю и не подъёбываю, ну это просто реальность. Где это всё? Чем занимались эти люди всё время? На всех эмуляторах приставок есть встроенный отладчик, на всех, даже на zx-spectrum есть(вот начни с него), а вот на эмуляторе пк нет такого и хоть ты тресни.
Анон, насколько существенные отличия у re4b-ru Юричева у той версии, что теперь за paywall, от версии октябрь 2020? Есть ли у кого посвежее? Отдал бы доллар, да патреон разлюбил мою визу
Схуяли я не могу послушать купленную музыку? Да я сейчас должен не купленную слушать просто так. Это же элементарное человеческое действие - просто открыть сайт и слушать купленную музыку. Факт: это не работает. 2022
>>2318826 >Киберпанк - это манямирок Киберпанк это антиутопия. Observer идеальный пример киберпанка. А 2077 это ебаная дешевая комедия, вообще не по канонам жанра.
А как работает протектор ядра в винде? Каким образом он детектит что в ядре произошли изменения? Он что чекает контрольную сумму данных из всех ячеек озу где оно загружено или что?
Со стимопорашей тоже лол. Покупаю игры и качаю их же с торрентов(их немного), потому что не хочу чтобы запускалась стимопараша при запуске игры. НО! Это обязательное условие, кто Гейб а кто я. Я купил игру, а меня ещё и унижают. Доходит до абсурда, в стимопараше не сохраняется прогресс в Split/Second, а с васянкским кряком сохраняет. И это просто как пример. Например, купленный RE Revelations 2 просто дико тормозит, а с васянским кряком всё норм, сделал возврат.
>>2319407 Ну так для этого надо крякать, начиная с легких кракми и вообще всяких ctfок, книги читать по теме реверса, много много практики, а не просто сидеть и книгу по асму читать
бля а сейчас ведь ни hackthebox ни tryhackme, вообще нихрена не оплатишь ... зараза блять
а как работает прерывание? про таблицы векторов и функции прерывания я знаю. в том плане что int куда-то что-то пишет? или может обращается не по своему уровню кольца и операционная система реагирует на это? могу ещё много разных вариантов придумать
Почему происходит? Дело в том, что техника не совершенна. И технологии, применяемые при передаче по LAN, тоже могли бы быть и получше. В частности - контроль целостности данных. Но сейчас есть то, что имеем. Как известно, контроль целостности с помощью CRC не очень-то и надёжен. Те же криптографические хэши куда получше будут. При передаче данных по интернету (в тех же торрентах), случаются ошибки. И в торрентах специально имеется дополнительная проверка целостности данных.
В общем, если не заморачиваться - можно предложить такой способ. Всё что нужно передать по сети, сначала архивируется в RAR архив. В нём есть встроенные средства контроля целостности данных. Архив передаётся по сети, или даже открывается по сети на удалённом компьютере с помощью WinRAR, и распаковывается там. При распаковке WinRAR следит за целостностью данных.
Ещё можно посчитать хэш SHA256 этого архива перед копированием по сети. Потом, скопировать по сети. А затем, посчитать SHA256 на другом компьютере для скопированного файла.
>>2319691 так получается int это аппаратное прерывание? управление передаётся какому-то микрокоду в ПЗУ? а как работает программное прерывание? сам механизм вызова функций ОС?
>>2319727 В новеньком WinRAR версии 5 и выше, есть контроль целостности по BLAKE2. Она внушает доверие, и куда круче CRC. В общем, это означает что даже предварительно хэшировать архив перед отправкой не нужно. И проверять после. Включаешь BLAKE2, создаёшь архив. Перекачиваешь по сети, распаковываешь на другом компе. Ну и прямо во время распаковки будет действовать мощный контроль целостности.
>>2319725 >>2320262 я думаю что наверное файлы ещё будут быстрее передаваться по сети, поотму что в предыдущие разы я тупо копировал папки и вставлял их на другом компе. и когда дело доходило до маленьких файлов в большом количества типа фото то скорость с 11мегабайт в секунду проседала до 1-3 мегабайт в среднем. я не сильно разбираюсь, но мне кажется это связано с тем что компьютер создавал запись в файловой системе для каждого файла и это тормозило процесс, а если всё одним архивом перемещать то запись будет создана один раз соотвественно что заметно сэкономит время.
>>2319729 в c\c++ int это тип данный integer целое число
в ассемблере int это interrupt прерывание. Ты указываешь в специальных регистрах код прерывания, его параметры и вызываешь его по коду 80(вроде бы) Такое прерывание называется программным, потому что происходит оно программно а не от сигнала поданного на процик от физического устройства.
Ну и короче говорят когда ты делаешь int 80 оно идёт вниз ramа и там есть таблица векторов прерываний и он по коду ищет нужный вектор передаёт ему параметры из регистров и ждёт ответа, ну и ещё чтобы вернуться к твоей программе в нужное место он адрес след. инструкции в стек помещает.
Ну короче в векторах прерываний как правило находятся программы которые предоставляются bios\uefi компьютера и операционной системой.
Надеюсь граммотно раписал, но на точность не претендую я сам ньюфаня ёбаная.
>>2320680 спасибо - у меня была путаница, в общем есть прерывания аппаратные/программные и как бы это выразится... програмно-аппаратные по крайней мере я так понялв последнем случае процессор физически прерывает свою работу программой и передаёт управление себе же (каким-нибудь своим блокам и контроллеру прерываний - очень размыто как и мои знания)
>>2320702 Ну да короче. Assembly Language Step-By-Step - Programming with Linux, 3rd edition (Wiley, 2009, 0470497025)
я вот эту книгу читаю мне её здесь один анон посоветовал в ней всё и узнал, но это читать надо с самого начала без перерывов и пропусков. я не знаю как ты учишься, но хапать статьями в интернете это не лучшая стратегия по себе знаю.
>>2320858 чувствую себя я конечно прям как на пикче
но...
вот идёт выполнение программы по командам, счётчик команд инкрементируется... а тут вдрух хYiaK и без всяких джампов его отправляют что-то делать на деревню дедушке, а текущее состояние сохранить где-нибудь в стеке наверное, но это не точно и при этом ещё и контроллер прерываний задействуется а после ещё и обработчик прерываний который выполняет прерывание на процессоре, а после возвращает управление программе вызвавшей прерывание
>>2320536 Да. Копировать много мелких файлов куда медленее, нежели один большой. По множеству разных причин. Но надо рассматривать ситуацию целиком. Сколько ты провозишься с архивом? Его надо создавать, копировать, распаковывать. Может, быстрее и проще не заморачиваться, и подождать побольше, копируя мелкие файлы?
Если так хочется, можешь засечь время. Сколько займёт оба варианта.
>>2241525 (OP) Сап. Решил учить ассемблер по юричеву, но его книга начинается с какой-то неизвестной для меня терминологии. Какие-то стеки, в примерах инструкции которые я никогда в жизни не видел. ЧЗХ? Есть какой-то более интуитивно понятный гайд по реверсу программ?
Сап, хелпаните плиз. Есть 16 разрядные операнды надо запихнуть в 8разр сумматор, каким образом мультиплексор разбивает по 8 разр число? И если сумматор 8 разр, то как он может сложить аж 2 числа 16 разр, или он складывает 2 числа 8 разр и кидает в демультиплексор? Спасибо
>>2314835 На жёстком диске обычно сразу с самого нулевого адреса начинается загрузочный код и он не может превышать 512 байт вроде.
На носителях не знаю, но думаю там подобное.
>>2320780 Я тоже, но та книга очень хорошо раскрывает суть и алсо не обзяательно качать линукс и выполнять эти упражнения просто код автора посмотри и почитай вдумчиво мне уже этого хватает тчобы многие вещи понимать. Лучше ассемблер отдельно изучи, а windows русиновича почитай.
>>2321010 Анон, я уже протестил. Файлы в архив запаковываются очень долго, но зато передаются они быстрее. Распаковываются они быстро. Чем больше архив тем больше шансов что он передасться со сбоями. Самый оптимальный размер для архива 4гб на мой взгляд, делить короче файлы на архивы по 4гб.
И да лучше архивами передавать чем мелкими фалами потому что ты заебёшься у всех них контрльную сумму считать, это надо спец по писать автизированное, а в архиве сразу чекнул сумму и всё. Поэтому передача по lan только архивами iso образами и т.д. для меня
>>2322295 >На жёстком диске обычно сразу с самого нулевого адреса начинается загрузочный код и он не может превышать 512 байт вроде. >
На HDD - там сектора. MBR лежит в секторе 0. Как правило, сектора все по 512 байт. Но сейчас пошли HDD с секторами на 4 КБ (advanced format).
>>2322295 >Файлы в архив запаковываются очень долго, но зато передаются они быстрее. Распаковываются они быстро. Чем больше архив тем больше шансов что он передасться со сбоями. Самый оптимальный размер для архива 4гб на мой взгляд, делить короче файлы на архивы по 4гб.
Данные долго запаковываются? Надеюсь, ты опцию Store включил, а не пытаешься их как-то сжать? На мой взгляд, не стоит как-то париться с размерами архива, как-то бить их на размеры помельче. Если произойдёт ошибка передачи RAR архива с BLAKE2 контрольными суммами. Ты просто те файлики, что не удалось успешно распаковать, передай отдельно по сети. Сохрани протокол разархивации, все сообщения об ошибках. Хэш на весь архив считать не обязательно.
И не надо никакую сумму чекать. Говорю же - BLAKE2 вполне достаточно.
>>2322724 Спасибо, анон, просто я так как ньюфаня решил максимальн доступными для себя способами изучить. В изучении чего-то упрощение сперва помогает.
Архивацию с дефолтными настройками запускал так normal было, спасибо за фичу, буду знать чтобы без сжатия store работало.
Алсо, в след. раз сделаю с твоей функцией как ты советовал и попробую хуйнуть архив 28гб если там будут потери то передам отдельные файлы как ты советовал.
>>2322724 Короче в след. раз попробую архивы с методом store blake2
Засуну всё файлы в огромный архив таким способом под 30гб и посомтрим что из этого выйдет, спасибо анон, отпишусь как сделаю, просто щас нужды нет такие файлы гонять большие по сети пока что
>>2322790 Если ты не в курсе, загрузка с помощью MBR выглядела так: BIOS считывает сектор 0 загрузочного диска в память по известному адресу. Процессор при этом находится в реальном 16-битном режиме. После этого, идёт команда безусловного перехода по адресу, лежащем в свежесчитанном секторе в памяти. Ну и начинает исполняться код, который лежал в этом MBR. Сектор 512 байт, и MBR ограничен этим размером. Но код MBR в свою очередь, может считать ещё больше данных из других секторов.
>>2322949 Спасибо, анон пояснил хорошо, да читал когда-то но так поверхностно.
А мне вот интересно с uefi boot по всем гайдами для создания загрузочной флешки uefi нужно создавать отдельный раздел uefi который будет загрузочным и в нём будет лежать этот самый uefi загрузчик. То есть загрузочная флешка uefi через утилиту rufus делается на два раздела.
А вот если честно майкрософтвскую прогармму делать то выходит что флешка получается с одним разделом и она ещё может как uefi так и mbr грузится. Не знаешь как они так элегатно реализовали?
Приветствую посоветуйте программу для просмотра pe-файлов windows 10 64bit и чтоб по возможности все выводилось в синтаксисе masm я правильно выразился?
С ходу найти не получилось, где-то только для 32х разрядных систем/приложений, где-то синтаксис Fasm'а
в общем задача - прочитать исполняемый файл Hello World написанный на C/С++ под win32 x64
Ну вот, скачал part1, part2, part3 архивы. А там такая фигня:
--------------------------- Error --------------------------- D:\Downloads\PenetrationTestingWithKaliLinuxPWK).part1.rar The archive is either in unknown format or damaged --------------------------- OK ---------------------------
Это какой то хитрый трюк чтобы правообладатель не залез в архив и можно как-то это исправить или всему пиздец?
Хотя блин вот тоже интересно, а как вообще можно неправильно запаковать? Что надо такое сделать с винраром чтобы он битый архив произвел. Ни разу такого не было.
Многие могли слышать о таких файлах, как rarjpeg"и. Это особый вид файлов, представляющий собой склеенную вплотную jpeg-картинку и rar-архив. Он является прекрасным контейнером для скрытия факта передачи информации. Создать rarjpeg можно с помощью следующих команд:
и в этом случае output.rar и output.jpg соответсвенно, реально откроются и на винде и на linux. Неплохой такой способ сокрытия информации плюсом к стеганографии.
В винде попробовал аналог из PowerShell из говна и палок:
>>2327991 Если хочешь заморочиться, то достань сорцы unrar, посмотри на чтении какого поля он объебывается, забрутфорсь вненяемое значение, закомменть всякие проверки чексумм, чтобы хоть что-то да распаковалось.
>>2329321 Я все это гуглил и находил и знаю что такое part* архивы, не первый раз я их качаю, тупой ты еблан. И судя по тому что ты высрал, тупой пордиж здесь только ты, который попытался таким образом самоутвердиться видимо, но лишь обосрался. Иди нахуй.
Данную проблему это никак не решает. Архив есть битый.
Достаточно хотя бы даже на сигнатуры этих архивов посмотреть.
Исправный part* архив вполне открывается без каких либо ошибок сам по себе, даже если рядом остальных частей нет. Другое дело что не распаковывается, очевидно. А тут он просто битый.
Я вобще считаю что в 1 момент windows и многим другим существующим осям которые живут на обратной совместимости рано или поздно придётся взять и переписать всё с нуля.
То на чём мы сейчас сидим это NT ядро который было написано вроде в начале 90ых годов. С каждым годом, с каждой новой версией оно росло, там наверное щас уже точно десятки миллионов строк кода если не сотни. Если вы запустите на соверменном пк win 98(только запустите в режиме одногоядерного процессора) или win 2000 то вы охуеете с того как быстро они работают и сравните их с 10кой или 7кой. Просто раньше на более старом железе они казались медлеными. На самом деле они быстрее всех этих 7ок, 8ок и десяток, потому что кода в них разы меньше. Быстрота 7ки или 10ки обсуловлена в первую очередь прогрессом железа.
Однако годам эдак к 2010-2012ом производители железа выжали уже всё что можно в техническом плане. Выше 5 гигарец ты процессор не разгонишь, больше ядер не впихнёшь уже все технолгии микро-впихивания, разгона достигли предела по своим физическим параметрам. Именно этим объяснеется почему что раньше компьютер устаревал за 3-5 лет безнадёжно, а щас можно и на ноутбуке 2011го года вполне себе современные оси запускать и вполне комфортно.
Ну пока ещё выкручиваются, начали выдрачивать частоту оперативки, придумали вместо hdd ssd, потом это ssd придумали по pci epress шине подключать через nvme контролер вместе sata ну типа щас они играют тупо на то чтобы всё что последовательным доступом сделать устройствами произвольного доступа, и всё по максимуму впихнуть на самые быстрые шины которые известны. Но уже революицонных прорывов кои были в нулевые не будет. Ну и конечно везде повысить частоту до максимально возможной(5ггц)
Так вот я это к чему? А к тому что если раньше засирание осей кодом перекрывалось ростом мощности железа каждые 2-3 года, то после 2012го это прекратилось. И прозиводители осей видят это и начали изъёбываться, например винда 10 очень медленно включается и выключается, она не выключается и не включатся в традиционном смысле, она использует режим гибернации, то есть выводит пользователя из системы и сохраняет своё состояние на жд. Если вы её выключите реально комнадой shutdown /s то вы охуеете от того какая она долгая при выключении и самое главное включении, это уровень xp на китайском ноутбуке 2004го года выпуска.
В один момент на фоне этого всего производителям осей придётся взять и выкинуть всё легаси говно из них а то и вовсе написать с нуля. Это неизбежно.
С процессорами тоже самое я думаю что x86 основанные архитектуры умрут пока кто-то тупо не возьмёт и не создаст с нуля архитектуру без всякой этой легаси хуйни потому что "люди не купят если обратной совместимост не будет"
А как обращаться программно к блокам\секторам\ячейкам\диска\ssd?
Ну типа вот в ассемблере я читал как обращаться по адресу в оператике, а к жёстком диске как это сделать? Ну бы утилиты всякие которые создают таблицы разделов, сами разделы, файловые системы там ведь явно что-то как-то реализовано. Помогите плиз.
>>2334774 Старые версии винды быстрее работают не оттого, что кода в них меньше. Количество кода не очень важно - важно качество. Microsoft сочла возможным пренебречь оптимальностью кода по принципу хуяк-хуяк и в продакшен.
Я диву даюсь с того, что под Windows 7, когда открываешь в Explorer каталог с кучей файлов, насколько долго соображает комп, прежде чем показать всё содержимое. Под Windows XP та же папка с теми же файлами открывается мгновенно.
>>2334774 Процессоры никто с нуля архитектуры создавать не будет. Никому не надо. Уже существует в природе предостаточно крутых архитектур - бери и пользуйся. Вон, Apple взяла себе ARM архитектуру. Единственно, изобретут какую-нибудь по-настоящему прорывную архитектуру будущего. Куда круче, чем все существующие. Вот это да, могут.
>>2334774 Собственно ядро Windows не занимает миллионы строк кода. Сама Windows да - занимает. И она росла в объёме. Но не ядро, которое настолько не выросло. Количество кода вообще не очень важно. Если его много, код просто лежит себе на жестком диске, есть не просит. По мере необходимости, подгружается то одна его часть, то другая.
Всё дело в экономии на разработке и разработчиках. Урезают бюджеты, сроки, нанимают разрабов потупее и подешевле. Тех, кто остался - заставляют писать всякое дерьмо, да побыстрее. Не нужны творцы - нужны кодомакаки.
>>2335368 В реальном режиме процессора x86, вроде есть специальные прерывания, которые запускают соответствующие функции BIOS. Которые позволяют читать и записывать сектора диска.
>>2335368 Если ты под виндой, то открывай как файл \\.\PhysicalDrive0 Если под *nix, то /dev/sda или что там у тебя. Ты его хоть заммапить можешь и продолжать обращаться по адресам в оперативке. >>2336030 Ну ты бы еще с MS-DOS сравнил, там в консольке dir ой как быстро выполнится. Я понимаю тренд хаять современное ПО, но люди упускают из виду, что сегодняшнее ПО делает всего на порядок больше, чем 20 лет назад. Начиная от сглаженного рендеринга шрифтов, заканчивая генерацией превьюшек на лету. И памяти жрется не в пример больше не только потому что криворукие уебаны, а потому что дешевизна памяти меняет баланс сил: куда лучше, условно, за O(nlogn) времени+памяти сделать препроцессинг и затем за O(logn) выдать ответ, чем считать за O(n^2) но зато с O(1) памяти.
>>2336120 >>2336049 Спасибо понял. Я уже прочитал это secondary storage и обращение к нему идёт как к прочим устройствам либо через оперативку либо через I\O каналы
Подскажите как обстоит дело с асм на линуксе. Проще поставить чем на винде? На работе заставили полностью пересесть на линукс, я придрочился, но иногда бывает скучно ковырять бд и питон.
>>2337760 Если для себя, то можно поставить православный fasm - он ровно такой же, как и на винде. Но если контрибутить в опенсорс, то везде будет инопланетный AT&T, увы.
>>2337784 > fasmg Неплохо, не знал, что fasm продолжает развиваться. Я помню еще в первой версии у него довольно охуенный макроязык был по сравнению с masm/tasm, мне удавалось crc32 строк в compile time считать. >>2337749 Да. Лет 15 так назад.
>>2341284 В сорцах любого компилятора. Возьми какую-нибудь игрушечную реализацию Scheme и смотри как она проход за проходом трансформируется в байткод. Или смотри как в C++ лямбды реализованы. Тащемта там ничего интересного нет: это обычное замыкание, которое тащит в себе контекст (похуй статический на захардкоженной структуре или динамический на хеш-мапе) и адрес функции (опять-таки похуй захардкоженный или в виртуальной таблице методов). Вот указатель на него в стек/регистр и кладется, а там уже caller знает как его вызывать. Другими словами, это все абстракция, процессору поебать на все эти first class хуйни, у него из first class регистры да память.
>>2241525 (OP) Асмоебы асмодеи, вопрос не к вам, но если вам хватило ума разобраться в этом вашем псевдоязыке, может что-то посоветуете. Есть сервер лицензий и лицензия для него в текстовике. Сервер как-то проверяет лицензию и при смене в ней хотя бы одной буквы, шлет строго нахуй. Как и чем можно отловить сам процесс проверки, если эта ебанина крутится поверх линукса? Помню со времен сосничества про IDA Pro и ArtMoney.
>>2241525 (OP) Сап, аноны. Есть проблема по УМПК-80, задание было такое: в регистре E введено число. Сосчитайте (1+2+3+...+Е):2, используя сдвиг вправо RRC (как известно, сдвиг вправо на 1 позицию равносилен делению на 2).
>>2344226 Назрел вопрос поинтереснее — откуда в эльфах столько лишних неопределяемых секций? И как из них нормально вытащить инструкции, с учётом того, что для mov есть что-то с два десятка разных опкодов? Да, мне лень читать спеки по эльфам, хочу чтобы человеческим языком объяснили
>>2347112 Как-то придётся. Потому что в x86 для мова действительно есть около двадцати опкодов, и я в упор не понимаю, чем они нахуй отличаются и зачем их столько надо
подскажите почему не собирается программка в 32-х битной ос trisquel? Собираю nasm-ом и fasm-ом. В 64-х битной убунте собирается норм. use16 org 0x7c00 start: mov ax,0xAA99 jmp $ finish: times 510+start-finish db 0 db 0x55,0xaa
>>2347106 > откуда в эльфах столько лишних неопределяемых секций Што? Тебя на первых порах должна интересовать исключительно .text > И как из них нормально вытащить инструкции Парсишь файл http://www.skyfree.org/linux/references/ELF_Format.pdf, вытаскиваешь инструкции, дизассемблируешь по табличке. > с учётом того, что для mov есть что-то с два десятка разных опкодов Причем тут это вообще? Да хоть пятьдесят. Бери второй том Intel 64 and IA-32 Architectures Developer's Manual, находишь табличку где инструкции сопоставляются с байтами и меняешь строки с столбцами местами. Нахуй ты вообще за x86 взялся? Там же ни души, ни удовольствия. Пиши лучше дизассемблер к игрушкам под NES.
>>2347454 Так это курсач, вот и взялся Я вытащил таблицу опкодов с какого-то всратого сайта в xml формате, и пытаюсь понять, как по человечески его распарсить. Ну и заодно как не затрахаться с тем, что есть префиксы, хуефиксы, лишние байты которые могут быть/не быть в инструкции
>>2347106 >И как из них нормально вытащить инструкции Берёшь такой и без всяких сомнений побайтово декодируешь. В чём твоя проблема? >в x86 для мова действительно есть около двадцати опкодов, и я в упор не понимаю, чем они нахуй отличаются и зачем их столько надо Да как тебе это поможет, выделить секции-то?
>>2347528 В переменной длине клятых инструкций и неадекватном количестве разных версий одной и той же инструкции. Как мне учитывать такое количество разных операнд, все префиксы и лишние байты в середине инструкции, которые могут появиться потому что могут?
------------------------------------------------------------------------ Proof of concept ------------------------------------------------------------------------
Program received signal SIGSEGV, Segmentation fault. ------------------------------------------------------------------------
Сап, асмачь, скидди на связи! Подскажи плиз, может что-то не понимаю, но где здесь unauthenticated? Какой почтовый сервак нынче разрешит RCPT TO без предварительной авторизации?
>>2347926 > скидди на связи Рака яиц тебе, уебище. > разрешит RCPT TO без предварительной авторизации Смысле не в том, что он разрешит, а в том, что наебнется при попытке распарсить запрос. И да, ты тредом ошибся.
>>2348623 Ты какой-то злой, няш.. >наебнется при попытке распарсить запрос Отбив уже на этапе RCPT TO просто не даст ничего пихнуть в DATA. А вообще забей, это сугубо особенность настройки экзима - всякие RFC советуют postmaster-у не выеживаться и принимать любые сообщения без проверок, но каждый админ локалхоста вправе составить свой особый ACL с пасьянсом и блудницами (хоть с проверкой EHLO, чтоб PTR твоего айпишника корректно резолвилась в указанное имя)
А что означает когда в IDA дизасемблируешь или смотришь псевдо-код на C и встречаются символы вроде dword_10192CDC (число всегда разное)? Если щелкнуть по нему или нажать alt-enter, то показывает строчку >data:10192CDC dword_10192CDC dd ? Ну и можно посмотреть, в каких процедурах есть ссылки на эту (переменную, указатель? Или что это?) Моя версия, что это указатель на предопределенное значение, которое содержится внутри бинарника в разделе данных и загружается в память по этому адресу. Но хотелось бы узнать точно и как понять, что там? инб4: дурак куда ты лезешь
>>2352369 > А что означает когда в IDA дизасемблируешь или смотришь псевдо-код на C и встречаются символы вроде dword_10192CDC Братан, ты не поверишь, но это двойное слово со значением 0x10192CDC из секции данных.
Аноны, как работает многозадачность в современных ОС, в особенности на Винде? Я так понимаю, там в ядре планировщик переключает выполнение системных потоков через некоторые промежутки времени. А возможно ли как-то гарантировать что кусок машинного кода будет выполнен без остановки? Реально ли посмотреть по циклам ЦП когда случился останов, сразу после пробуждения потока запустить нужный код и успеть до переключения на другую задачу? Судя по диспетчеру задач у меня сейчас 3000 потов запущено, там же должно быть окно хотя бы в микросекунду непрерывного выполнения кода? Может через виртуализацию возможно как-то стабилизировать это?
>>2356335 Начнём с того, что у нас сейчас многоядерные системы, обеспечивающие истинную многопоточность, так что дели количество одновременных потоков на количество логических ядер Время, которое даётся процессу на исполнение до переключения, зависит от его приоритета, который можно выставить самому Может и не совсем так, я вообще всего второй курс
>>2356939 Ну это как раз относительно понятно. Меня интересует практическая возможность определения окна непрерывного выполнения и пропихивания в него кода. Плавает ли это окно или достаточно стабильное. Поможет ли реалтайм приоритет стабилизировать его. Останавливает ли ядро потоки раньше времени для своих задач.
>>2356946 > Меня интересует практическая возможность определения окна непрерывного выполнения и пропихивания в него кода Ты можешь из кернел спейса "запретить" прерывания. А по-другому вряд ли получится. Хотя возможно есть какие-нибудь прикольные флаг ядра линукса, с которыми можно собрать, чтобы поведение шедулера предсказуемым и отслеживаемым. Какая-нибудь дебаг сборка. Хотя сейчас буквально в современных процессорах встроена многопоточность с подархитектурами, то есть даже выполнение одной машинной инструкции может быть неатомарным. Хз можно ли это на уровне ядра ос заигнорировать.
Заниматься тулингом прерываний наверное действительно только с виртуализацией возможно. Ты бы лучше написал в чем в принципе задача состоит, а не ходил вокруг да около
>>2357238 >в современных процессорах встроена многопоточность с подархитектурами Кстати, а как планировщик детектирует переключение контекста гипертрединговых потоков одного ядра? Прерывание, ведь, не возбуждается. Может, как-то постфактум?
>>2357452 Т.К. прерывается всё ядро (т.е. все гипертреды ядра), думаю, кванты выдаются сдвоенными и переключения контекстов тоже делается сразу для обоих гипертредов. А планируется квант в предположении, что потребляться он будет поровну обоими гиперпотоками, видимо. Значит и все остальные механизмы планирования работают на таких сдвоенных потоках (приоритеты...). Я так думаю.
>>2358199 Начни с читов для игр. Бери чит энджин, гидру и ебаш. Потом начинай патчи писать через инжект длл с новыми фичами/багфиксами. А потом уже сам придумаешь.
Аноны, можно ли в гидре как-то подгрузить символы системного SDK? Всякие WinAPI и DirectX. Примерно как IDA это делает. Я пробовал дрочиться с парсером хедеров - нихуя не меняется после скармливания ему половины папки SDK винды, ещё и ошибками сыпет во время парсинга. Онлайн базы символов вообще как будто не работают. Хули так сложно? Куда что ему всунуть?
>>2358499 Есть виртуальные адреса если есть MMU, а есть физические. По виртуальным все, что угодно может быть, но обычно доступ к самым первым адресам приводит к ошибке - это сделано намеренно, чтобы было проще отлавливать баги (вроде разыменования нулевого указателя). По физическим зависит от платформы: на хуй86 туда обычно BIOS складывает свое говно, вроде векторов прерываний, а у какого-нибудь 6502 в NES первые 256 байт используются для локальных переменных, т.к. у него по сути всего два с половиной регистра. Читай https://en.wikipedia.org/wiki/Zero_page короче.
>>2358499 Первые адреса ОЗУ. Процессор не имеет дело с никакими "адресами ОЗУ". Он имеет дело с т.н. адресным пространством памяти. На самом деле, это некая абстракция, а не прям таки сплошь одно ОЗУ. Если мы говорим про физические адреса. Железо материнской платы подключает по некоторому диапазону этих адресов оперативную память. Но впридачу, там в некоторых диапазонах может быть много что ещё подключено. Например - обмен информацией с девайсами тоже может идти через это адресное пространство. Вот да, информация ПЗУ тоже спроецирована на некоторый диапазон этого пространства.
Хрен его знает - что там в самых младших адресах физического адресного пространства памяти. В реальном режиме x86 - там вектора прерываний лежат.
>>2360622 я имею в виду когда комп стартует он же прошивку загружает наверное в озу?
>>2361549 спасибо я так и думал что скорее всего в самом начале ссылки на процедуры биоса находятся
>>2362207 спасибо понял. ну то есть адресное пространство это нечот более широкое чем лишь оперативная память. так выходит что мироксхема с прошивкой тоже свои адреса адреса по которым процик к ней обращается?
>>2362350 >это нечот более широкое чем лишь оперативная память
Да, эта штука - более широкая. Она используется далеко не только для хранения информации в ОЗУ. Вот например, некоторые устройства имеют диапазон адресов памяти. И если ты записываешь информацию по какому-то адресу из этого диапазона - она отправляется прямо на устройство. А если считываешь информацию - устройство тебе подгоняет данные. Всё это обеспечивается работой чипсета материнской платы. Этот же чипсет - подключает информацию из ПЗУ в какой-то диапазон физических адресов.
Это физические адреса. А виртуальные адреса (виртуальное адресное пространство) - там средствами ОС, может быть спроецирован файл с диска, или ещё откуда-то на некоторый диапазон адресов. И чтение или запись по этим адресам приводит к чтению или записи в этот файл. Прямо в нужный его участок.
Даже хлеще - у тебя же работает виртуальная память, а значит та же ОС может не хранить непосредственно информацию из того или иного диапазона виртуальных адресов в физической памяти. Она организует подкачку информации с диска.
Смотри так называемый Memory-mapped I/O
Ещё есть такая вещь, как Direct Memory Access, DMA. Позволяет перекачивать информацию между устройствами и памятью без участия процессора.
Ещё можешь изучить карту памяти UMA. Там увидишь, что есть диапазоны под ОЗУ, под ПЗУ, под обмен данными с устройствами
>>2362910 Спасибо большое анон, годное расписываешь. Теперь и отчасти назначение южных и северных мостов стало понятным.
Да я щас книгу читаю десятая глава уже Assembly Language Step-By-Step - Programming with Linux, 3rd edition (Wiley, 2009, 0470497025)
Пока до этого не дошёл. Только про модели работы с памятью(озу) сегментированые, защищённые читал. А вот про все устройства глобально пока нет. Надеюсь там это будет написано
>>2362910 А я всегда думал что вот когда ты включаешь пекарню и заходишь в меню прошивки то она наверное в озушечку загружается а щас понимаю что она загружается из пзу и все обращения происходят к пзу непосрсдественно, а не в озу. в пзу разве что ссылки на какие-то процедуры лежащие на прошивки для оси лежат.
>>2362990 Когда включаешь пекарню, включается чипсет, который обеспечивает проецирование ПЗУ в адресное пространство памяти процессора по известным адресам. Как впрочем, и подключает ОЗУ.
После этого, чипсет даёт отмашку центральному процессору на запуск. Тот начинает работу в реальном режиме с команды, расположенной на определённом известном адресе. Этот адрес намертво зашит в процессор, и никак не меняется никогда. По счастливому совпадению, по этому адресу чипсет спроецировал ПЗУ. Т.е. процессор исполнит команду, прошитую в ПЗУ. Получается, разработчик материнки может прошить ПЗУ по своему усмотрению, и процессор выполнит нужный код. Этот код занимается инициализацией оборудования. Всё зависит от того, что именно разработчики материнки зашили в ПЗУ. Эти вещи, между прочим, никто не афиширует. Темна вода в облацеях. Чтобы понять, что там творится - это надо дизассемблировать прошивку, долго муторно её изучать. Кто этим занимается? Вряд ли наберётся много людей во всём мире. Насколько знаю, часто код прошивки ПЗУ сам себя копирует в оперативную память. И продолжает исполнение оттуда. Просто потому, что так он работает шустрее. Но поначалу - да. Исполняется код прямо из ПЗУ.
Далее, в старые времена, происходил процесс запуска BIOS, который заканчивался переходом к загрузке операционной системы. С загрузочного диска считывался в ОЗУ самый начальный сектор, размещался по определённому адресу. И исполнение передавалось туда. Т.е. всё дальше зависело от операционки.
Нынче, во времена UEFI, я не знаю как всё происходит. UEFI я ещё не изучал.
Я вам ещё скажу. Не знаю насчёт IBM PC, но в других компьютерах бывает, что процессор прямо в себе содержит ПЗУ, которое заложили его создатели. Оно совершенно секретное. После включения, процессор выполняет код, заложенный в этом ПЗУ. При этом, он даже не использует оперативную память компьютера! Вместо оперативной памяти, он использует собственную кэш-память, которая встроена прямо в процессор. Т.е. информация вообще никак этот процессор не покидает. Что там делает процессор - одному богу известно. В принципе, возможно обновить прошивку ПЗУ, размещённую в процессоре. Однако, процессор эту прошивку обязательно проверяет на вшивость (с помощью цифровой подписи). И левую прошивку отторгает. Это означает, что только производитель процессора может выпустить прошивку для него. Что можно добиться такими средствами? Насколько знаю, так в игровых консолях XBox можно проверять - подлинные ли DVD диски, с которых вы играете, или пиратские. Вроде, XBox ещё никто не взломал, не зачипировал. Можно ещё применять всё это для того, чтобы шпионить за юзером. Какого-нибудь шпионского ПО. Для программных и аппаратных закладок.
Можно сделать так. В процессоре есть небольшой код, который проверяет установленную операционную систему на вшивость. Допустима ли она на этом компьютере? Не была ли она как-то модифицирована или взломана? Там проверяется не вся ОС, а лишь та её небольшая часть, куда будет передаваться исполнение. Загрузчик ОС. А уже сам загрузчик, если он правильный, дальше может проверить всё остальное.
>>2363363 Это называется многолетний опыт специалиста. Такое узнаешь не из какой-то одной книги. Это надо годами интересоваться предметом, читать массу книг, статей, интернет. Отовсюду. По идее, именно такие люди должны читать студентам лекции в университете. Проблема в том, что годные специалисты хотят больших денег за свои знания. Увы, наши ВУЗы не всегда могут такое позволить себе. Так что нанимают кретинов за копейки - чтобы хоть кто-то был, и что-то читал. Ищите видеолекции на youtube, там встречаются годные персонажи.
Про ассемблер есть книга за авторством Зубкова. Выпущена году в 2000. Хорошая вещь.
>>2363352 Спасибо, анон ещё раз. Теперь многое на места встало после твоих постов. Выходит что это от чипсета зависит в основном с какими процессорами и памятью материнская плата может работать корректно
>>2363516 Всё устроено так, что материнская плата (и её чипсет), процессор и память должны подходить друг к другу. Что от чего зависит - бессмысленный вопрос.
>>2363521 поясни за обновления микрокода, пожалуйста. стоит ли их устанвливать где находится та информация что они обновляют и т.д. в линуксе такая функция есть когда загрузчик устанавливаешь
>>2363352 > Я вам ещё скажу. Не знаю насчёт IBM PC, но в других компьютерах бывает, что процессор прямо в себе содержит ПЗУ, которое заложили его создатели. Оно совершенно секретное. После включения, процессор выполняет код, заложенный в этом ПЗУ. При этом, он даже не использует оперативную память компьютера! Вместо оперативной памяти, он использует собственную кэш-память, которая встроена прямо в процессор. Т.е. информация вообще никак этот процессор не покидает. Что там делает процессор - одному богу известно.
>>2364045 А в чём проблема? Читаешь документацию по кодингу на твоём железе, реверсишь через ИДУ/Гидру. Это даже проще, чем игры ковырять, где ООП криво декомпилится и десятки тысяч функций.
>>2364398 двачую. на железо обычно много кода не делают потому что чем больше года тем больше ошибок, а это критично для всяких прошивок, бивосов и прочего.
я когда пиздюком был не понимал почему они не добавляют в поддержку биоса более лучшее разрешение, мышь и т.д. а потом понял что это усложнение прошивки и как результат больше шансов на сбой и прочую хунйю
>>2364398 я не умею в байтоёбство, только в скриптовое программирование. плюс занят другими вещами, поэтому проще нанять кого-то, кто уже разбирается, чем разбираться самому.
>>2364543 на железо обычно делают всякие обфускации и "проверки цифровой подписи", и для обхода всего этого нужно быть хардкорным байтоёбом-реверсером.
>>2364551 слыхал, тебе анон >>2364553 написал что уэфи это по сути усложнённый и расширеный биос
>>2364565 удваиваю, но дополню что уефи расширяется за счёт сторонних программ которые необязательно могут быть на микросхеме с прошивкой, это может быть программа .efi на загрузочном диске, жёстком диске типа менеджеров загрузки винды и загрузчиков и если отказаться от работы устройства на котором есть стороннее efi приложение или заменить его то это пофиксит проблему. А вот если жопа в прошивке от это уже серьёзная проблема
>>2364571 он прав. чем сложнее программа тем больше ошибок.
кто-то говорит что это безопасность, но на самом деле если в простой модели типа bios mbr дыра сразу видна, то в сложной их много мелких и тот кто захочет тот найдёт и когда он запустит какую-то жопу диагностировать откуда что и куда залезло гораздо будет сложнее чем в том же bios mbr моделе где было сразу ясно что переписаны просто первые 512 байт загрузчика и всё это часто фиксилось вручную в 16 ричном редакторе
>>2364575 да, уефи умеет в Secure Boot, что при правильной настройке даёт дополнительную защиту от кибержуликов, особенно при физическом доступе к твоему устройству. у BIOS такой защиты в принципе нет.
но, к сожалению, мало какие устройства дают пользователям возможность настройки Secure Boot, и поэтому шизы считают, что Secure Boot создан исключительно для того, чтобы на их нубуки нельзя было установить прыщеблядикс, а только исключительно винду.
> и когда он запустит какую-то жопу диагностировать откуда что и куда ...
и тут верно, я уже штук десять троянов под уефи встречал. ещё предлагали купить приватный, но тогда не было денег, а сейчас нет тех контактов, лол
>>2364582 >чтобы на их нубуки нельзя было установить прыщеблядикс, а только исключительно винду. ну тащем-то этот секьюр бут действительно анальная хуйня, там реально есть узкий набор сертификатов и всё если его нет то соси. у меня кстати на ноутбуке если дефолтнуть уефи на заводские по умолчанию секьюр бут отключён что как бэ намекае. но с другой стороны большинству людей кроме загрузки винды нихуя не надо так что впринципе он логичен, а прыщеблядискам вечно всё не то: то железо, то руки не те, то ещё что-то не то.
>>2364594 > ну тащем-то этот секьюр бут действительно анальная хуйня, там реально есть узкий набор сертификатов и всё если его нет то соси. широко распространённое заблуждение, по причине > мало какие устройства дают пользователям возможность настройки Secure Boot
на нормальных серверах и нубуках "ынтырпрайз" сегмента типа сынкпадов можно залить свои PK,MOK,KEK,ЧЕБУРЕК
>>2364594 > тупо натыкали ещё доп. проверок по сертификатам. и это хорошо, потому что если у тебя нормальное устройство и ты зальёшь свои ключи в базу секуре бута, то мимокрокодящий кибержулик не сможет ребутнуть твой ноутбук, загрузиться с LiveCD винды и залить какое-нибудь говно в загрузчик, т.к. уефи увидит, что у LiveCD подпись какого-то майкрософта, а не твоя.
а на 99.99999% других устройств он может так сделать, т.к. ключи майкрософта со своих устройств удаляет в лучшем случае один человек из десяти миллионов.
>>2364604 именно, Ватсон! →→→ > поэтому шизы считают, что Secure Boot создан исключительно для того, чтобы на их нубуки нельзя было установить прыщеблядикс, а только исключительно винду.
на большинстве consumer-grade устройств ненастраиваемый секуре бут для того, чтобы а) шизы не могли установить свой прыщеблядикс вместо какой надо операционной системы б) кибержулики не могли прописать малварь в загрузчик винды. но они один хуй это могут
>>2364614 спасибо, понял. годно, анон. самый просветлённый тред по низкому уровню на всей борде. я раньше подобными вопросами заёбывал всех в /s/ в linux треде, но в asm гораздо более прошареные анончики сидят. годно очень, спасибо.
>>2363516 а ещё есть такая хуйня, как вендор-лок оперативной памяти: https://hannuhartikainen.fi/blog/hacking-ddr3-spd/ - гейбуки не дают запускать память с большой частотой, но иногда можно перепрошить контроллер на планке оперативы, чтобы он всегда работал на низкой частоте.
>>2363927 > стоит ли их устанвливать да - обычно они исправляют "железные" ошибки в процессоре на "софтовом" уровне. > где находится та информация что они обновляют внутри самого процессора))))
>>2364653 да гейбук это вообще анальная хуйня максимально аналят систему и без того оверпарйнстую. по моему опыту лучше летитьюдов и синкпадов ничего нет среди ноутбуков в плане качество, возможность настройки ит.д.
>>2364654 ну то есть внутри проца есть какой-то блок памяти где микрокод хранится?
>>2364575 >он прав. чем сложнее программа тем больше ошибок.
Дааа, не факт. Все эти UEFI не такие уж и большие софтины. Пусть она и побольше, но всё равно её реально хорошо написать практически безошибочно. Повозиться придётся, конечно. Возможно, даже формально верифицировать (ну это я уже мечтаю). Только кто бы это всё оплатил... Обойдётся в копеечку.
Скорее, всё так есть, как оно есть сейчас - оттого, что выхлоп не соответствует затратам.
>>2365328 но это только x86, на других архитектурах может чуть иначе. но в общем похоже, что в некоторых физ адресах из доступного адресного пространства может быть мусор, потому что туда ничего не замаплено. или, если адресное пространство маленькое, то доступной памяти будет меньше.
>>2363363 >А по каким книгам ты это изучаешь? Это - не какое-то сакральное знание. Процессор и чипсет образуют схемотехническое единство. Можешь разбираться в этом, читая чипсетные дэйташиты. В настольных ПК PCIe - основной интерфейс периферии. Вникай в спецификации. Там всё понятно описано. Ну это главное, с чего можно начать. А разве это не ты Таненбаума читал последние полгода? Там это всё упоминается, вроде.
>>2365598 Это я, я засираю вам тред с осени 21го года своими вопросами нафажными. Щас я читаю книгу, вернее дочитваю что мне здесь советовали по асму x86, я бы и раньше дочитал и к x64 перешёл но там война началась и был поглощён информаицонным полом, сильно отвлёкнся на него на целых 2 месяца.
Ну там я читал только 1 его книгу про общее описание операционных систем. Там про чипсеты вроде ничего не помню, про жд помню, про файловые системы помню, про ядра винды и линукса помню, про файловые системы, про многопроцессорные системы помню ну и про безопасность помню.
А вот подробно про чипсеты я не помню. Хотя вроде бы про шины он там описания давал. Но я ещё до него архитектуру пк читал про то как процессоры делают, там больше схематехник и цифровая логика была нежели аспекты программирования
>>2364565 смешной тейк, учитывая что код для современного железа в принципе ориентирован на уефи и потребует сотню костылей и заглушек если васян попробует вогнать в свой сетап самопальный биос
>>2365391 а ведь это адресное пространство не так часто используется. как правило устройства обменяются с процем инфой через dma используя озу. ну типа жд отправляет инфу в озу а проц её оттуда по определённым адресам закреплённым на жд читает поотм кладёт туда что-то и жд это читает ит.д.
Кто нибудь знает, есть ли какие-нибудь микроархитектурные оптимизации для команд MOVS_ ? Для ускорения пересылки из памяти в память напрямую, минуя процессор и Front Bus. Может какие-то блиттеры в современнвой RAM?
Двач, неделю как пытаюсь вкатиться в ассемблер, хочу спросить, существует ли какой удобный справочник комманд? Просто в этой низкоуровневой теме постоянно приходится гуглить как не в себя.
>>2367636 >существует ли какой удобный справочник комманд Открываешь мануалы intel по x86, читаешь. Там 3000 страниц текста, включая описание всех команд.
А как устаналиваются эти 4 режима привелегий работы процессора? Чё-то уже больше половины книги по x86 прочитал но так нигде упоминания об это и не нашёл...
>>2370241 Ну скажи как определяется что процессор щас в том режиме в котором какие-то инструкции выполнять нельзя? в каком-нибудь регистре флаги указывают это да?
>>2370919 мерси. ну я щас про стек на примере линукса читаю, виртуальное адресное пространство. вот это всё. впринципе в книге ещё 100+ страниц осталось может я там до этого дойду, просто нетерпелив
Продолжаю изучать ассемблер, двач, подскажите почему выдаёт ошибку error: mismatch in operand sizes на эту инструкцию "mov eax, byte [string]" если указать спецификатор размера (подчеркнул) определив сколько байт копировать в регистр из строки?
Антуаны, доброго вечера. В интернете много информации по этой теме, но лучше спросить у живых людей с опытом. Собственно, вкатываюсь в реверс, чтобы портировать и мододелить старые игрушки. Какой дизассемблер посоветуете? IDA - слишком дорого и сложно для новичка. Гидра - смущает java и авторы поделия. Может быть radare2 или gdb?
>>2371653 > слишком дорого Куда ещё дешевле чем бесплатно? > сложно За пол дня разберёшься, всё ещё лучший вариант для декомпиляции крестов. > смущает java и авторы поделия Это тебя не должно ебать. А вот ограниченность функционала должно, в целом декомпилит получше иды, но функционал такой себе. > старые игрушки > radare2 Ебанутый? > gdb Ты точно ебанутый. С дурки начни, а не с дизассемблинга.
>>2241525 (OP) Байтогоспода, снизойдите до казуала. Не могу понять почему во всех hex редакторах игнорируется самый младший рязряд в нумерации адресов, и вместо счёта 0, 1, 2, 3, 4... пишут 0, 10, 20, 30, 40... С гуглом обосрался, нахожу только флуд не по теме, от кулхака учащих считать в шестнадцатиричной системе, до школоты пересказывающей msdn. С меня мешок нихуя (инфляция ¯\_(ツ)_/¯ ).
>>2373883 Так спрва от колонки адресов - строка по 16 (10H) байт. Тут адреса первых байтов в строках. Работать с инструментом надо, а не на скриншоты маняфантазирвать.
Байтаны, может кто знает, где бы найти материалы курсов Offensive Security и Sans? Интересовало по теме exploit development - EXP301, EXP401 и подобное
очень часто в разных туторах слышу слово - память типо программа использует память, операционка ложит программу в память, программа обращается к памяти, возник вопрос, а что такое эта самая память то? если в простых терминах как об этом думать концептуально? просто как о массиве где индексы целые числа? а значения что угодно?
второй вопрос есть ли какая то книга по асм которая не только бы учила асм, но при этом учила бы намного глубже понимать что такое комьютер (ос память, ввод вывод) спасибо!
Решил тут вкатиться в ромхакинг, перевести любимую игру. В игре есть файлы ресурсов, для которых к счастью уже написан распаковщик. Но мне стало интересно, а как вообще писать распаковщики? Как узнавать структуру файла?
>>2377548 >книга Таненбаум - Современные операционные системы Таненбаум - Архитектура компьютера Харрис-ы - Цифровая схемотехника и архитектура компьютера Последнее, если уже угорел по теме и готов занырнуть в физику протекающих в пэкарне процессов с головой >>2377593 >перекатите
Аноны, закончил читать книгу оп x86, уже по x64 читаю. И вот что мне не хватает а есть ли какая книга которая описывает как работает чипсет, dma в частности как работает память ну и желательно весь чипсет целиком. Потому что я так понял процессор имеет только адрес памяти и этот адрес может ссылаться на любое устройство от пзу биоса, до озу или видеокарты.
Вот где бы такую найти? А то хочется знать как и чипсет работает.
>>2384817 Спасибо, анончик. Ну короче я понял. И программисты процессора и те кто пишут драйвера они не сами как правило не особо понимают что там происходит во время передачи данных между их устройством и процом. Всё упирается в команды и в какие-то адреса абстрактной памяти через которые и обмениваетются устройства данынми с процом.
Как же хочется в эпоху win 9.x когда можно было задней мысли переписывать память любого процесса и вставлять туда перереход на свои программы в любом месте...
>>2385847 Cпасибо, анончик. Сохрнил в архив когда-нибудь почитаю
А есть варианты выпилить часть ассемблерных инструкций или наоборот впилить переход на свои инструкции в исполняемый файл одной программы? Мне нужно активацию на про версию в одной программе обойти, вот хочу чтобы она при запуске вообще миновала код отвечающий за всякаую проверку лицензий и прочего говна.
В чём суть то x64 ассемблера? Добавили больше регистров, расширили прежние с 32 до 64 битов и добавили больше математических расширений типа для работы с упакованными числами и с плавающей запятой?
>>2396742 Ну чё туда такое принципиально новое внесли? Тупо расширили разрядность регистров, и прокачали математическую часть с дробными числами. Я просто по x64 книгу читаю и там весь упор сделан только на обсуждение регистров x64 и математической части с числами с плващющей запятой, регистры XMM YMM обсуждаются
https://pastebin.com/pfmkhEeT Я нуб. Понятно, что это не работает (не уверен, как именно, но ответ "защита" меня пока устраивает; по крайней мере ошибок в коде я не вижу). Как заставить это работать?
>>2399212 Да нет, я понимаю, что права rw- выставлены. Не указал в вопросе, что мне для линукса надо. Плюс очень хотелось сделать это, не копируя код на стек/кучу, хотя может я чего-то и здесь не понимаю.
Собираюсь или нет, не знаю, лень же в свободное время вкатиться вспомнить в c++, освоив пару новых для себя библиотек, написав простую программулину с gui уровня gtk/qt, и что-нибудь с сокетами и opengl каким-нибудь, не тратив много времени на последнее графическое творчество уровня б, просто поковырять, с целью удовлетворить интерес. Ну, думаю, если написать пару простых программ с gui, сокетами и графикой, можно в резюме строчку по c++ добавить.
Дальше выкатиться в c, чтобы можно было скачать исходники ядра линукса и почитать их немного, ну или чтобы уметь написать свой модуль ядра для своего железа уровня б, собранном на ардуине каком-нибудь.
Далее с этой отправной точки параллельно долбить три направления:
1. Gnu assembler, чтобы дизасемблировать свои же программы и драйвера, понимать, как это работает на низком уровне.
2. Программирование микроконтроллеров, уже без ардуино и своими печатными платами с паяльником в руке
3. Сети, ну чтобы можно было собрать свою инфраструктуру и понимать это глубже, чем просто в роутер витую пару обжать.
Если по c++ и c все понятно, то по железу, сетям, ассемблеру, пайке и микроконтроллерам мне надо небольшие, но емкие книги или видеокурсы. Я не могу читать это 10 лет, но почитывая немного за пару лет освоить хотелось бы. Это самый адекватный тред тут, чтобы спросить подобное. Так что пишите мне советов мудрых.
https://c9x.me/x86/html/file_module_x86_id_26.html Как эти режимы адресации из инструкции в байтовом представлении выудить? Как e8 1a fa ff ff дизассемблируется в call 10a0, а ff d2 - в call ✵%rdx? Надеюсь, что в мануале будет ответ, но может тут у кого есть на уме.
Байтаны, в чем тут отличие в упор не вижу, а вторая строка (для tubes из pwntools) в отличии от первой приложение с переполнением не валит? perl -e 'print "A" x 16777216'; serv.send(b'A' * 0x1000000)
>>2404349 Ok, дело в представлении байтами b'A' - если подставить вместо перла однострочник на питоне с принтом повтора строки, получаю ожидаемое поведение
>>2404349 >>2404398 Отбой, хз как эти трубки работают с сетевым соединением, но выглядело так, что сессия закрывалась до того, как довольно большой кусок мусора для переполнения успевал обработаться и часть входных данных просто терялась time.sleep(10) в конце скрипта решил проблему
Читая книги по ассемблерам я понял что раньше развитие в плане прозводительности шло по сути за счёт расширения регистров, увеличения кол-ва ядер и ускорения самих проциков.
Однако сейчас уже ясно что чисто физически из этого выжато всё что можно: плотность транзисторов достигла максимума, гигарецы разогнаны по максимуму, быстрее уже физика не пвозляет. То есть новые регистры ядра уже не впихнуть, да и ггц не нагнать.
И сейчас упор на прирост производительности будет делаться за счёт алгоритмов, создания регистров и команд специального назначения типа как в книге по ассемблеру x64 написано, что мне здесь советовали. Там рассказывается про avx avx2 avx512 вот все наборы расширений. Там есть например специальные команды которые позволяют избегать лишних команд условного перехода, лучше обрабатывать определённые типы данных и просто много параллельно типа упакованных чисел. То есть на это упор всё будет идти. Будут возможно конвейры оптимизировать.
Да и что тут думать я с 2012го года заметил что прирост в памяти и гигарецах с ядрами в техники нет. Сейчас стабильно ноутбуки бюджетные с 4-8гб оперативы продаются с 2-4 ядерными процессорами тоже самое в 2012ом году было. Кстати. Единственное что поменялось это ssd начали ставить вместо механического жд.