В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (RE).
Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда. Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.
Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.
Инструменты для RE: Дизассемблеры: 1) IDA Pro Torrent Edition 7.2 | 7.0 | 6.8 на выбор. Иногда ограничения версий x86/x64, патчинг, вылеты прилагаются 2) IDA Freeware 7.0 - бесплатная для некоммерческого использования Важные функции/процы/форматы не завезли, саппорт все обращения ксорит побайтово. 3) IDA Home - тем, кто реверсит для хобби 365$ в год, ага. Умеет на выбор PC|ARM|MIPS, обычные и х64. Завезли IDAPython, но забыли Decompiler. 4) Ghidra - главный конкурент IDA Pro, разработка NSA под свободной лицензией. Тормозной Java UI, гипотетические звездно-полосатые анальные зонды в комплекте. 5) Radare 2 | Cutter - консольный + гуй на Qt дизассемблер. Умеет в Ghidra decompiler. Предположительно нужен только клиническим, не умеющим в скачивания торрентов, пользователям альтернативных ОС. 6) Hiew - Hex-редактор и легкий x86|64|arm дизассемблер за копейки. AV-ресечеры текут, вирьмейкеры боятся, поклонники st. Криса грят малаца. 7) Остальное
Отладчики: 1) x64dbg - х86/64 юзерспейс виндовый отладчик с открытым кодом не Olly же в 2020, верно?; 2) WinDbg - родной виндовый дебаггер от MS 32/64 битные приложения, драйвера, анализа аварийных дампов - это все к нему;
Идея для стартапа. Деплою публичную кукушку как эстонский cert и предлагаю анализ малвари на заказ по ежемесячной подписке как gib. Рекламлюсь в твитере на хайповых новостях и на заказных статьях в тематических сми. Нанимаю других реверсеров в команду по мере роста заказов и становлюсь миллионером. Какие подводные?
>>1748699 Поподём в список отечественного по и будем пилить заказы от газпром-медиа? А если они не захотят купить? Как-то не очень надёжно спланировано
>>1748706 Нет. Мы с тобой будем пилить DRM систему для Android приложений и игр. Нам передают условно игру на Unity, мы ставим защиту, отдаём аппу разрабу.
>>1748713 Нету. Android - это дыра.>>1748713 >Кому нужна альтернатива? Коммерческие защиты очень дорогие. В России нет компаний, которые бы занимались защитой приложений мелких разработчиков. >И зачем тогда делать отечественую? Мы ж патриоты, нах.
>>1748755 Я про мануал реверс того, что кукушка сочтёт подозрительным. Типа автоматически любой желающий может бесплатно проверить файлик, а если что-то важное, то можно за денюжку попросить живого человека оперативно взглянуть на этот файл.
>>1748706 > Поподём в список отечественного по и будем пилить заказы от газпром-медиа? А если они не захотят купить? Как работник газпром-медиа скажу - не захотят. Всё уже давно куплено и продано за вас. Тем более в компании сейчас массированные кадровые перестановки произошло, нужных человечков-кабанчиков посадили на высокие должности.
Посоветуйте ассемблер/дизассемблер, чтобы можно было без геммора одну команду транслировать туда-обратно в консольке. Сейчас пользуюсь radare2, но у них rasm2 явно поломатый, см. пик.
>>1749682 > а поч вирус сам мог писать в секцию А он и не мог. Запусти, попробуй, точно так же вывалится.
>>1749806 > чтобы можно было без геммора одну команду Возьми питон, capstone+keystone и напиши под себя. Там реально два десятка строк получится, не больше.
Там это, касперский проводит крякми2020. Может кому то интересно. Скачать задания можно без регистрации и смс. В коде страницы есть прямые ссылки. Я сам пока решил 2 и 3, а вот как 1 решать не понял. https://careers.kaspersky.ru/crackme/
>>1748697 Отбой. Я передумал. Теперь новая идея. Сделать то же самое, но для андроида. Развернуть андроидную кукушку и сделать публичной. Такой в инете я не нашёл. Похоже моя популярная будет среди независимых ресёрчеров. Принимать заказы на ручной анализ малвари на адроид, а в свободное от заказов время писать статьи. Публиковать бесплатно статьи, а внизу писать, что больше инфы для подписчиков услуги threat intelligence. Как касперский с apt репортами делает. Ну и продавать сигнатуры, хеши, детальный анализ разным антивирусам или крупным компаниям через ресейл партнёров за бугром. Годная идея? Рянок же особо не занят. Хотя спроса на андроид безопасность не много, но тренд на рост есть. Сделает такой стартап меня долларовым миллионером?
>>1750427 только самой активной малвари под андройд всего 5-6 штук наверное,лол Да и у гибрид анализса и эни рана вроде есть песочницы под ведра У первого точно
>>1750064 Во второй таске дропер не может создать запустить пэйлоуда, а пэйлоуд не может подключиться к пайпу. От админа запускать пробовал. Есть у кого так же? Как решили?
Ебаный рот, какая-то тварь с Пикабу шапку переписала Ебал твою мать уебок. Ахах прикольный сайтик да?))) Мудила пидорас блять ещё другие ебики видят эту хуйню и не стыдно даже писать в этот тред. Студентишки зумерки ебучие твари пидорасы каждому ссал в рот
>>1750884 >Есть у кого так же? У меня все нормально. >Как решили? Ставил бряк на CreateProcessW в Terminal.exe. Аттачился к процессу apof.bin. Он запакован UPXом. Расспаковал его и сдампил. Потом уже смотрел в дебагер. Очень простой крякми, но сложнее 3, как мне показалось. Сильно не бейте если хуйню сделал и можно проще, я ньюфаг пока.
>>1751032 Странно. У меня CreateProcess возвращает ошибку. А какой версии у тебя ида? У меня библиотечные функции сами не задетектились. Даже не стал снимать upx т.к. какой смысл это делать когда процесс даже не запускается. А когда запускаю вручную, то бесконечно пытается подключится к пайпу безуспешно, хотя пайп создан
>>1751041 Действительно в ней всё удобней. Я чёт очковал пользоваться пираткой на случай если в каспер на собес позовут и спросят как решал. Поэтому взял бесплатную, а там фичи до 7.0
>>1751082 Нет. Вторая самой просто показалась. Но даже её ещё не решил. А долго это будет длиться? Судя по лидерборду всего несколько человек всё решили, а длится оно уже почти месяц
>>1751676 Я с сюсера тоже проиграл. Джун чисто физически знать про него не может. И вообще это локальный инструмент с соседних форумов, лол.
>>1751701 А что-то изменилось разве? Малварь все та же, добавляются лишь слои запутывания, новых ботов никто не пишет, винда(натив) все тоже самое. Какие требование к новичку еще могут быть по твоему?
>>1752299 > Никто такие дебагеры не использует в 2020. Какие такие? WinDbg (Preview) единственный ядерный отладчик. > Только анальная IDA Pro указана. Ида универсальный инструмент, аналогам еще расти и расти. > Ring-0 Сложные атаки с задействованием драйверов никуда не пропали и даже замечен рост в последние годы. LPE/RCE/DOS/ etc, etc также на уровне ядра работают, напрямую или косвенно. Весь натив апи, которым оперирует малварь - это вызовы системных сервисов ядра.
Можно было закинуть конечно владение DBI/EMU фреймворками/движками, но джунам расти до такого.
бывалые реверсачики, подскажите пожалуйста Есть задача найти в UEFI прошивке модуль обработки нажатия F2 для входа в BIOS Setup. Согласно пик. 1, логично предположить, что он работает или во время DXE фазы или после работы CMS модулей (модуль поддержки совместимости) или после загрузки DXE. На пик. 2 - файловая система прошивки. Но проблема не только найти соответствующий модуль, на пик. 3 - дизассемблер SECurity фазы, самой первой. И если fninit, cli - понятно что и зачем на старте, то даже дальше что происходит - непонятно. Вот функции обработки нажатия, я предполагаю что логично было бы после инициализации модулей совместимости, то есть после возможности отображать картинку на экране, или в каждый исполняемый фрагмент вставить обработчик или же в векторе прерываний от клавиатуры ссылаться на него. Но это лишь догадки. проблему-вопрос когда-то поднимали челик на exelab.ru (https://exelab.ru/f/?action=vthread&forum=2&topic=26280), но там народ лишь развел руками и примерно указал сторону куда двигаться. Ссылка на файл - (http://www.lex.com.tw/download/bois/CI770A/CI770AA6.zip) Как и некто на exelab - не прошу решать, подскажите куда думать.
Заинтересовался темой Jit, в частности опенсорс asmjit. Хочу попробовать запилить простой верификатор хешсуммы сегментов кода. Допустим, по tcp я буду получать пакет с шеллкодом который считает хеш какого-то сегмента и отправляем обратно.
Можно ли посчитать в комбайн тайме размеры сегментов? Можно их перечислить, вроде бы, компилятор на своё усмотрение их делает? Есть ли разница между ос для определения размеров сегментов или начального сдвига? Как вшить в блоб хеш самого блоба вместе с этим хешем?
>>1752340 > WinDbg (Preview) единственный ядерный отладчик. Чего, блять? cdb/ntsd/kd для кого? > Ида универсальный инструмент, аналогам еще расти и расти. При этом IDA уже сосет у гидры. HexRays на свежих компиляторах спотыкается и выдает совершенно нечитабельное говно. С AVX вообще пиздец. > Сложные атаки с задействованием драйверов никуда не пропали и даже замечен рост в последние годы. Тут надо пользователей пиздить палкой, а не ковырять это говно.
>>1752340 >Какие такие? WinDbg (Preview) единственный ядерный отладчик. Речь про сиську и олли первый уже просто не работает в современных системах,второе устарело,тк 32 бит онли
вопрос навскидку: Есть простое немодальное окно, созданное CreateDialogParam, скрин1. После сворачивания-разворачивания имеем скрин2. Что надо добавить в код? Обработку WM_Size?
>>1752553 > Чего, блять? cdb/ntsd/kd для кого? > WinDbg, NTSD, CDB, and KD all share the same debugging engine, so they share all the same commands. The only differences between them is that WinDbg has GUI interface, NTSD, CDB and KD have console interfaces А ты не знал еще скажи. Так и живем.
>>1752566 Это понятно. В принципе иды и виндбг хватает.
>>1752569 Разберешься, когда время придет, основные тулзы для глубокого анализа и автоматизации рабочего процесса.
>>1753210 создавать модальное окно через DialogBoxParam? Вроде, у немодального какие-то дополнительные возможности/плюшки.. Иклезион пишет:"Независимые диалоговые окна дают вам возможность перемещать фокус ввода на другие окна. Пример - диалоговое окно 'Find' в MS Word. Есть два подтипа модальных диалоговых окон: модальные к приложению и модальные к системе. Первые не дают вам переключаться на другое окно того же приложения, но вы можете переключиться на другое приложение. Вторые не дают вам возможности переключиться на любое другое окно. " Имхо, он пизидит, устарел, т.к. на W7 фокус переключается. Далее он пишет об отлтичиях в сообщении WM_CREATE - тоже устарело. Метод тыка показал, что оба CreateDialogParam/DialogBoxParam получают только WM_INITDIALOG. п.с. спасибо, сейчас сам разберусь и отпишу.. п.с. от яндекса толку почти ноль, ничего нельзя найти!
>>1753221 > создавать модальное окно через DialogBoxParam Вообще да. Но можешь продолжать использовать CreateDialogParam. Класс для этого не нужен.
> Имхо, он пизидит, устарел, т.к. на W7 фокус переключается Что касается system modal - да, устарело еще в 9x. Application modal все еще работают. Например, стандартный диалог открытия файлов, если вызываеть его с правильным OPENFILENAME.hwndOwner будет как раз application modal, т.е., заблокирует твое основное окно.
> WM_CREATE Не знаю, что именно он там пишет, но вот как раз ради всевозможных WM_CREATE классы для диалогов и регают. Если тебе просто кнопочки, а не выебываться - эти сообщения тебе не нужны, как и кастомный класс.
>>1753221 Короче либо выкинь классы, либо осознай, что DialogProc != WindowProc. В первом для необработанных сообщений нужно возвращать FALSE, во втором - дергать DefWindowProc. Сейчас ты вызываешь DefWindowProc, когда это не нужно (менеджер диалогов от тебя этого совсем не ожидает), и при этом ты еще и проебываешь ее код возврата, который имеет значение для WindowProc. Если напишешь две разных и правильных процедуры - спецэффекты тоже должны прекратиться.
>>1753294 всё заработало! Как ты и говорил, после замены DefWindowProc на .default mov eax,FALSE .endc То есть, выходит, WndProc для DialogBoxParam и для CreateDialogParam абсолютно одинаковы!
Но мастадонт от мира asm'а Iczelion утверждает, что CreateDialogParam ближе к CreateWindowEx, ей требуется DefWindowProc. И.. его примеры компиллируются на masm и правильно работают! Залил Iczelion на диск , урок №10. https://yadi.sk/d/gAHUFiB4iQT2mA Как этот парадокс можно объяснить?!
п.с. может, есть книга, в которой всё это разжёвано?
п.с.2. как ты и сказал, можно убрать (для CreateDialogParam - примера выше) регистрацию класса (он уже предопределён), оставить в WinMain только: .while GetMessage(&msg, 0, 0, 0) TranslateMessage(&msg) DispatchMessage(&msg) .endw mov eax,msg.wParam ret Похоже, это всё наследие от WindowProc/CreateWindowEx. Для DialogBoxParam и этого не требуется..
Уважаемые asm-олды, помогите пожалуйста разобраться c простым переполнением буфера. Вот тут объяснение с примером си-шного кода: https://ctf101.org/binary-exploitation/buffer-overflow/ Вот тут 29 байт готовой полезной нагрузки: http://shell-storm.org/shellcode/files/shellcode-905.php При сборке бинарника указаны no-stack-protector и execstack. GDB говорит, что полезная нагрузка легла в стек, сохраненный RIP перезаписан - и дальше выполняется /usr/bin/bash симлинк /bin/sh. Но при этом без отладчика этот же пример с этими же входными данными валится в segmentation fault. Але, я не пони, где моя консоль?
>>1754864 ASLR включен? Даже если выключен, то границы адресов стэка в GDB != границы адресов стэка при исполнении программы вне его, во многом из-за переменных окружения.
Убедись, что ASLR выключен. Запусти программу в отладчике через env - gdb /path/to/program
пропиши: unset env LINES unset env COLUMNS
После этого команда show env не должна ничего выводить в консоль отладчика.
Продолжай дебажить прогу, найди адрес на стэке, куда хочешь писать шеллкод и вполсдедствие перенаправлять instruction pointer, и захардкодь этот адрес в эксплоит. Должно работать.
>>1754864 добавлю: Запускай эксплоит следующим образом: (python exploit.py ; cat) | /path/to/program Иначе даже корректный эксплоит может крашнуться. А вообще советую изучить либу pwntools, там есть метод interactive() для этих целей, да и вообще там есть много плюшек, которые упрощают написание эксплоита, засим можно полностью сконцентрироваться на исследовании уязвимостей, а не ебаться с написанием замысловатых эксплоитов, жонглируя потоками в шелле и пихая embedded скрипт на пайтоне/перле/баше каждый раз.
>>1755403 >>1755407 ASLR выключен, но адресация действительно различалась в отладчике и без - зааттачился к уже рабоющей программе, посмотрел/изменил перезаписываемый $rip. Спасибо за советы. Вся эта возня с пайпами, бинарным выводом башем/перлом/питоном, да чтоб порядок байт BE\LE как надо, действительно утомляет - поиграю с готовым фреймворком.
>>1759699 Ну знаешь, Zydis может и обкатан в x64, а этот диз, используется во всех продуктах bitdefender. У меня как-то больше доверия к крупной аверской конторе, чем к разрабу зудиса, который является обычным Васяном.
>>1760074 >bitdefender Работал однажды с одним из их сдк для кернелдевелопмента. У них там костыли уровня в скиплист можно добавить конкретную папку чтобы скипать все объекты из этой папки, но нельзя отдельный файл. И в документации (ридми в формате тхт очевидно без разметки и навигации) написано осторожней с этим список, а то в эти папку может спрятаться малварь. Всё максимально низкоуровнево и примитивно на плюсах, но в си стиле написано (и юзерспейс и кернелспей код). Могу ошибаться т.к. доступа к исходникам не было, но судя по самплам и докам всё именно так. Они это писали поверх одного майкрософтовского фреймворка. Оказалось они тупо обернули майкрософтовский апи своими функциями, сделали typedef, пару новых структур и свою инициализацию с деинициализацией библиотеки. А и ещё службу с нуля написали, которая проксировала вызовы из юзерспейса в кернелспейс чтобы все приложения могли кернеловские колбэки вызывать. Мы очень быстро переписали весь полезный функционал и отказались от их решения.
>>1760239 > Оказалось они тупо обернули майкрософтовский апи своими функциями, сделали typedef, пару новых структур и свою инициализацию с деинициализацией библиотеки. А как надо? Для этого документированный апи и существует. Что за библиотека то?
> А и ещё службу с нуля написали, которая проксировала вызовы из юзерспейса в кернелспейс чтобы все приложения могли кернеловские колбэки вызывать. Некоторые сервисы можно перенаправить легитимными механизмами. Или там был хук + перенаправление на драйвер?
> Мы очень быстро переписали весь полезный функционал и отказались от их решения. Т.е своровали фичи?
>>1760332 > А как надо? Для этого документированный апи и существует. Не знаю. Но большинство их экспортируемых функций были обёрткой вокруг стандартных виндосовских с почти тем же именем и точно такой же сигнатурой. Ничего они не делали кроме того, что свои аргументы передавали в стандартную функцию. Похоже было, что большинство работы они сделали только чтобы вставить аббревиатуру битдефендера в название функции > Что за библиотека то? Кажется та что на пике, но я не уверен. Можешь загуглить если вся пдф нужна > Некоторые сервисы можно перенаправить легитимными механизмами. Или там был хук + перенаправление на драйвер? Хуков не было. Был какой-то простенький самописный протокол коммуникации поверх дефолтного способа передачи буфера. И в зависимости от данных в буфере драйвер решал какую функцию с какими данными вызвать. Обычно просто на разные события ставились разные колбэки обработчики >Т.е своровали фичи? Ну почти. Там почти не было фич. Просто немного модифицировали виндосовкий апи. Мы прямо на этом апи и стали делать. Изначально руководство даже не понимало что они хотят. Отправили смотреть на разные опенсорсные технологии и этот сдк купили. Я тоже не понял что они хотят. Просто отреверсил драйвер, а дальше другая часть команды свой клон писала.
Суть в том, что они продавали либу по сложности пет проекта с функционалом, который и так почти весь в винде был.
Аноны, может кто разжевать как правильно запилить trampoline при detour на функцию stdcall? Стек и регистры портятся и всё ломается, второй день ебусь. Оригинальный кусок кода до вызова хука или после выполнять? Как правильно функцию хука вызывать и выходить из неё, чтоб не запарывало стек/регистры? Смотрел на гитхабе как в либах сделаны хуки, но нихуя не понял. Detour делаю через jmp rax по абсолютному адресу.
>>1762644 виртуалку, протектор опиши, не знаю. хотя это не малварь. малварь - winapi если винда. методы неявного вызова функций, перехвата библиотечных функций и т.п. зайди на форум реверсеров и почитай статьи как что ломалось и поймешь о чем писать. а о малварях на хакере можно почитать, чтобы понять чем заинтересовать читателя диплома.
>>1748697 >>1750427 Всё. Теперь новая идея для стартапа. Incident responce по страховке на линукс инфраструктуре для малого и среднего бизнеса плюс threat intellegence. Никаких больше кукушек. Теперь только партнёрство с интеграторами. Каждый раз когда к ним приходит небольшой энтерпрайз закупить серваки циско на 100к долларов они предлагают заказчику страховку от взлома с одноразовой выплатой или рассрочка на год и берут с этого свою комиссию. Я же взамен обещаю бесплатно среагировать и починить инфраструктуру если случится атака один раз в год. Собираю команду из пяти человек и по мере необходимости реагируем на инциденты клиентов, а когда реагировать не надо, то делаем ресёрч и рассылаем threat intellegence. Как вам идея?
>>1764127 >Всё. Теперь новая идея для стартапа. Incident responce по страховке на линукс инфраструктуре для малого и среднего бизнеса плюс threat intellegence. Никаких больше кукушек. Теперь только партнёрство с интеграторами. Каждый раз когда к ним приходит небольшой энтерпрайз закупить серваки циско на 100к долларов они предлагают заказчику страховку от взлома с одноразовой выплатой или рассрочка на год и берут с этого свою комиссию. Я же взамен обещаю бесплатно среагировать и починить инфраструктуру если случится атака один раз в год. Собираю команду из пяти человек и по мере необходимости реагируем на инциденты клиентов, а когда реагировать не надо, то делаем ресёрч и рассылаем threat intellegence. Как вам идея?
Слаженная зондеркоманда пыневиков/вагнерят/ЕНОТов/ветеранов АТО умеющих в пытки утюгом паяльником и избавляться от трупов есть? Знакомые погоны ГДЕ НАДО есть? Без всего этого threat intellegence не взлетит.
>>1764132 >Без всего этого threat intellegence не взлетит. Не. Это будет customized osint ti плюс внутренний ресёрч для malware driven ti. Типа хеши фейлом взять в разных misp комьюнити, а потом разыскать сами файлы, проанализировать и написать сигнатуры детектирования более продвинутые, чем просто хеши. Такой формат ничего из того, что ты описал не требует
>>1764140 >Не. Это будет customized osint ti плюс внутренний ресёрч для malware driven ti. Типа хеши фейлом взять в разных misp комьюнити, а потом разыскать сами файлы, проанализировать и написать сигнатуры детектирования более продвинутые, чем просто хеши. Такой формат ничего из того, что ты описал не требует
>>1764156 Во-первых я не буду рассылать вредоносы, а только сигнатуры. А во вторых это обычная практика в индустрии и сомневаюсь, что я окажусь первым, кого за это посадят
>Во-первых я не буду рассылать вредоносы, а только сигнатуры. А во вторых это обычная практика в индустрии и сомневаюсь, что я окажусь первым, кого за это посадят
ТАААК, КАНТРОООЛЬНЫЕ МААААСОЧКИ ШОУ ЧЕРНЫМИ ЧЕЛОВЕЧКАМИ ЕБАЛОМ В ПОЛ, НЕ ДВИГАТЬСЯ СУКА. @ ЧТО ТУТ У НАС ? @ ААА ФЛЕШКИ, ХАРДЫ ССДШКИ, ТАК ДЭНЧИК, ЭТО ВСЁ НА ЭКСПЕРТИЗУ. ДА, КОМПЫ ТУДА ЖЕ @ ОППА,ПРИЗНАКИ ВРЕДОНОСА, НЕ, НУ ЭТО НЕ, ЭТО ДЕЛО СРАЗУ, 272 НАХ ОТКРЫВАЕМ, ТАК ПИШЕМ СОДЕРЖАНИЕ ПОД СТРАЖЕЙ, НИКАКОЙ ПОДПИСКИ. @ ПРЕСС-ХАТА В ПРЕСНЕ @ НУ ЧТО ЧЕЛОВЕЧЕК, ЩА ТЫ РАССКАЗЫВАЕШЬ ГДЕ ДЕНЕЖКА ЛЕЖИТ, А ТАК ЖЕ ВОТ РУЧКА, ВОТ БУМАГА ЗАДНИМ ЧИСЛОМ НА ДОЧКУ ПОЛКОВНИКА. И ДА, ТЫ ОСОБО НЕ ДУМАЙ, ИНАЧЕ ЭТА РУЧКА ЕЩЕ НЕ ФАКТ ЧТО ТОЧНО В ДЫРКУ В ТВОЕМ ПЕРДАЧЕЛЛЕ ПОПАДЕТ, А НЕ НА МИЛИМЕТР ПРАВЕЕ
Угу, до стадии когда у тебя будет что можно вымогать ты не дотянешь, тупо за палку по хакерам хлопнут тебя и дадут условку или пару лет поселка которые ты к суду уже отсидишь в СИЗО.
>>1764520 А чё такого? Всякие чуваки из твитера же темы мутят. Чё я не могу? Реверсом в россии серьёзно на аутсоср только групайби и соцы занимаются. Все остальные подзабили на это направление. Но если для того чтобы закупиться тдс от групайби нужны бюджеты газпрома, то всяким мелком конторам может быть удобней услуга по подписке, которую почти никто не предлагает. И тут появляюсь такой я, который предлагает интегратору купить пакет на 100 секьюрити репортов в месяц написанных вручную опытным реверсером, а интегратор продаёт их в розницу своим заказчикам. Осталось нанять опытных реверсеров и начать поднимать бабки. А? Неужели никто не думает, что идея хорошая?
>>1765203 7.3 - это релиз какой-то группы, которая заморочилась и собрав несколько копий 7.3, вывела общее среднее, которое не содержит отпечатков пальцев. А декомпиляторы они релизить в паблик не собираются, только для своих внутри группы.
А 7.4 - это floating license installer со всеми потрахами. Вот только пароля блеять нету
>>1764841 попробуй ghidra от анб. она просто уничтожает ильфака. там есть все и она кроссплатформенная. правда жаба тяжеловата. только загугли как зонд убрать и не пользуйся с рабочей
>>1765410 Ждем, что покажет 7.4. Мне приходится изредка переносить свою базу на новую версию бинарника программы. И эти козлы любят немного менять порядок полей в классе. Поэтому вот эта фича нужна как воздух
Поясните. Можно ли в гидре (или еще где) подать на вход ассемблерную инструкцию с операндами, а на выходе получить состояния регистров, измененных данной инструкцией с операндами? Например, через stdin/stdout. Как вообще такое сделать, что-тотничего похожего нагуглить не могу...
>>1765744 В теории не должны т.к. обычные дебагеры запускают настоящий процесс, вставляет инт3 в кусок исполняемого кода, а потом по одной инструкции смотрят что в процессе исполнения поменялось. А тебе нужен какой-то эмулятор, который без запуска процесса просто скажет какие изменения делает какая инструкция. В r2 ещё кажется такая штука есть. Там кажется даже можно эмалировать код с другой архитектуры. Типа арм шелкод на х64 системе запускать и смотреть что он делает.
>>1765912 > Эмулятор, учи мат. часть. Я за матчастью и пришел. Любой эмулятор? Выше посоветовали bochs и r2, я просто пытаюсь понять, в какую сторону вообще смотреть.
>>1766498 процессор 99.9% времени перекладывает числа из регистра в регистр. Без имплементации адресного пространства для эмулируемого процесса ты нихуя не сэмулируешь. Похоже, ты слабо представляешь как работают эмуляторы. Загугли, пчел.
>>1767573 >>1764547 ну т.е. дыры искать тоже профитно. правда это не вайтхет дела, если будешь эксплуатировать или продашь. правда почти нихуя не делать и сидеть ждать когда понадобится помощь тоже умно.
подскажите: 1. куда переехал exelab? Называют "реверслаб" какой-то.. Дайте ссылку, т.к. пробовал reverslab.ru и reverslab.com - нет таких сайтов. Хуяндекс давным давно нихуя не ищёт.. 2. что с сайтом purebasic.info? Уже неделю лежит! Хостинг копеечный - 70р в месяц. Не думаю, что денег на оплату нет - скинулись бы (это же не абу..)
>>1767623 >>никуда он не переезжал теперь это подментованная параша хуже мейлача.. Ссылку давай! На васм тоже сто лет на заходил, с тех пор, как аквила свой сайт просрал со всей личной перепиской..
>>1767644 мне - не похуй, долбоёба в зеркале поищи. Надеюсь, бэдхуй хотя бы бабла срубил норм. Если в этой конторе ЗП до 500к в месяц, то уж пару зарплат он получить должен был! Для сайта такого уровня, посещаемости и целевой аудитории - это норм. За пару лямов продал дохлый форум)))
>>1767721 охлол, кто-то так и сделал. анонасы, что скажете насчет софта на exelab? нет ли там троянов? нормальные ли хэши файлов или вирустотал такое впервые видит?
Существует инструмент для динамического логирования виртуальной памяти процесса? То есть запускаю программу в виртуалке, а он следит какого размера с какими правами аллоцируются чанки в куче и что туда записывается. А я потом по завершению работы программы вижу, что программа аллоцировала кусок памяти с правами на запись и исполнение, а потом записала туда какие-то данные. А потом просто извлекаю из дампа то, что программа туда записала. Помню в каких-то песочницах была возможность дампы памяти каждую секунду собирать, которые потом можно в волатилити загрузить. Есть ещё что-то похожее?
>>1768605 >не может подобрать простой пароль >называет кого-то бомжами Может тебе ещё решение сказать.Даже на моём сральном ведре крякнулся за минут 10-20.
>>1768605 >>1768636 Как то странно время считается, можете чекнуть. Оба варианта на пике были опубликованы спустя 10 мин после регистрации. В первом варианте задания были опубликованы по отдельности 5 мин + 5 мин и каким-то образом получилось 15 мин. Как будто ко времени с начала реги прибавляется последнее время из таблицы. Во втором варианте 2 задания были опубликованы сразу за 10мин, а получилось 20 мин. По такой логике получается, что отправлять резултаты лучше по отдельности, быстрее будет. Почему так? Может я ебанулся уже.
>>1768936 >Забей. Никто всё равно не поверит, что ты решил за 20 минут Причем тут это. Ну смотри, если я решаю за 24 часа 2 задания. Отправляю 1 решение спустя 12 часов после реги. Спустя 24 часа после регистрации отправляю 2 решение. Казалось бы должно получится 24 часа, но получится 24 + 12 = 36 часов. А если отправить сразу 2 после 24 часов в результате получится 48 часов. Так понятней?
>>1768951 На сайте касперского надо указывать ник в 10 чаров из-за того что алгоритм в 3 таске принимает чанк такого размера?
Браво! Браво! Это просто охуительно! В след раз они сами ники будут раздавать: baitosos, exploit_mne_v_zhopu. Красавчики ребята, вот так надо опускать байтопетухов
>>1769759 >пользователь пролобированых в пиндосское образование калькуляторов от техасов никем иным как чистокровным пиндосом быть не может это в /zog/
>>1771127 Погоди, ты про пароль от архива или про пароль от самого крякми? Если про архив, то пароль брутфорсится. Пароль от архива: infected Если про пароль от крякми, то тут хуй знает, что сказать. Просто и без задней мысли дебажишь. Проще тебе решение спалить, алгоритм там очень простой. Насколько я помню там свитч кейс переходы, которые от входных данных не зависят, так вот бери и проходи все переходы, делай пометки.
>>1771276 >infected А это что-то вроде правил гигиены среди AV-ресерчеров (менять расширения на неисполняемые, пихать в архивы)? Подобный пасс из разряда дефолтных? Мимо-другой-анчоус.
>>1771276 >infected Спасибо. Я пробовал, но с первого раза не подошёл и я из ответов в треде подумал, что его брутить надо. А на самом деле скорее всего неправильно ввёл
>>1771384 Да,под архив и в неисполняемые чтобы случайно не запустить на основном хосте малварь,а сам инфектед очень давно используется,вроде с какого-то малварного трекера
>>1772816 А еще soft mmu, парсер РЕ/ELF/MACH-O (смотря на какую ОС пишешь), эмуляция ммап/хуки на маллок/аппаратная эмуляция по надобности и дохуя чего прочего, если ты хочешь написать нормальный эмулятор. Ну и JIT можно прикрутить, а там cache и кастомный ассемблер. Да и дебажить это чудо порой непросто.
>>1772989 Так это уже выходит не CPU эмулятор, а целый DBA фреймворк. Ну тогда еще DSE туда прикрутить, program synthesis и перекомпиляцию в blackbox режиме. А что?
Кста, ребят, есть у кого доступ к семинарам от OSR? Темы там супертоповые, но просят бабок за них моё почтенье. Пробовал гуглить, но не нашел. Может есть у кого ченить?
>>1748635 (OP) >Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС А разве все это уже давно не пишут на С/С++? Ладно там суперпердольные оптимизации на мкк, но драйвера и аж целые ОС? Ну может пару инлайн вставок, но не от А до Я же.
>>1781182 > wc -c > -c Кого ты наебать пытаешься? Мы не дети из /s/.
В реальности там около 1к файлов, в которых стартапы и те функции из либц, которые имеет смысл писать на ассемблере (всевозможные memcpy), криптография и эмулятор FPU для x86 не знал, что его еще не дропнули!. Это на 25 семейств архитектур. Всего 10 файлов в драйверах (это пять сотых процента).
В общем, все, как и сказал >>1780094, за исключением того, что это не инлайн-вставки (фублядь, ебанутая практика), а отдельные файлы в основном один файл = одна функция.
Почти никто не пишет на асме ОС целиком, даже embedded RTOS не пишут. Из исключений разве что menuet/kolibri, но первый с огромной болью переползал на amd64, а вторая хочет arm, но уже не может.
И никто не пишет на асме драйвера, это не нужно, потому что это ОС предоставляет низкоуровневые функции для работы с железом, а драйвер перекладывает байтики.
>>1781182 Найс подстава лол На самом деле куски кода на асме есть в бутлоудерах по большей части. Дрова, допустим, все на сишке, а они составляют примерно 60% от общей кодовой базы, по весьма понятным причинам. Впрочем, если ты зайдешь на гитхаб Линукса, ты увидишь процент асм кода (1.1%) Что самое смешное, даже ПЛЮСОВОГО кода, который так ненавидит Торвальдс, больше (1.3%) кек Асм часто не нужен даже при разработке на голый мкк без ОС типа STM32. Пишешь код на С, компилируешь с флагами оптимизации - профит. Асм для реверсеров нужен, это да, но в разработке это уже атавизм в 99% случаев.
>>1780094 >А разве все это уже давно не пишут на С/С++? Мне почему-то кажется, что байтослесари со стажем уже наизусть знают, как гцц/клэнг скопмилит тут или иную хуитку. Так что кроме загрузчика наврятли что-то напишут.
>>1781284 Да нихуя они не компилят, нет магии. Вот когда можно будет четко задать спецификацию компилю, кастомный calling convention, управление регистрами, тогда да. А до сих пор приходится юзать интринсики и реализовывать свои хелперы. Прям какую-то супер логику на асме естественно никто не пишет.
>>1782217 Не нашел у него в блоге/твиттере подобных новостей, можно ссылку, пожалуйста? Он собирает донаты и одно время искал работу/подработку по соответствующей специфике, но заявлений книги в обмен на деньги вроде не делал.
>>1785711 А какой процессор-то? Шифт может быть медленнее, но при этом короче, поэтому все сильно зависит от архитектуры. Плюс у шифта зависимость по данным от инструкции, меняющей a.
Я так понимаю у IDA HOME урезанный набор поддерживаемых архитектур и нет декомпиля? В чем еще отличие от PRO версии? Апи такой же? Вот думаю, может перестать быть пиратом и купить лицушную HOME версию, ибо разрабы плагинов кряки/старые версии не поддерживают. Вместо HexRays можно заменить на декомпиль гидры или retdec.
>>1792183 Ты лучше объясни откуда у тебя появилось желание копаться в чужом дерьме? И почему ты решил сделать это работой и потратить на это единственную жизнь?
>>1792209 Понял. Спасибо. Получается на время придётся вкатиться в какой-то яп и там работать? Что выбрать тогда? Java или C++? Сказал бы ассемблер но на нём работы нет
>>1792213 В джаву легче вкатиться, работа там проще, сам ЯП тоже проще, чем плюсы. Если ты ищешь наиболее быстрого вката, иди в веб, анон. Потому что чтобы быть хорошим и востребованным байтоебом - надо не просто быть не тупым, а еще и иметь овердохуя опыта и, главное, искреннюю страсть к этому. Реверсинг, плюсы и прочая байтоебля - это не для вкатышей.
>>1792227 В бэкэнд на джаве идти тогда? Или на шарпе ибо он ближе к плюсам? Реально оттуда вообще в байтоеблю перекатиться? А то хочу именно сидеть с байтами дрочиться, но работа вот вот нужна ибо 3 курс уже, а с вуза без опыта выходить это пиздец
>>1792227 >Реверсинг, плюсы и прочая байтоебля - это не для вкатышей Реверсинг это хуйня для аутистов с суженным сознанием, которые живут отстойно и у себя в воображении строят виртуальную карьеру реверсера. Сколько там двачеров разреверсили защиту хотя бы одной современной игры? Даже до поиска бинарных уязвимостей в рашкинских анало-говнетах не развились, чтобы пердолиться на заводике с гостайной по форме доступа. Чистый манямирок и кряканье crackme друг для друга.
>>1792188 >Ты лучше объясни откуда у тебя появилось желание копаться в чужом дерьме? И почему ты решил сделать это работой и потратить на это единственную жизнь? Он ботан-ноулайфер с комплексами и ему девочки не дают. Для него реверсинг это самоактуализация-самореализация, способ вырасти в своих глазах, т.к. другие способы самоактуализации ему не доступны.
>>1793812 хз, на моем счету уже 4 CVE, 2 из которых во всемирно известном софте, уверен, что здесь такие еще найдутся, хоть и немного. Не вижу в чем проблема, какая разница, если человеку нравится этим заниматься? Вкатываться в это, тем более для зарабатывания денег, это архисложно по сравнению с многими другими отраслями, об этом и было сказано.
Какие защиты? Денуво и вмп это примитивное гауно мамонта, которое снимается автоматикой в течении всего периода существования. Про античиты вообще молчу, там уровень антивирусов нулевых.
> Даже до поиска бинарных уязвимостей в рашкинских анало-говнетах не развились Ну здесь вообще в голосину, сразу видно, что ты не в теме. Учитывая, что именно наши ребята ебут в хвост и гриву индустрию. Тот же Краш, Матросов, да и вообще все ребята, которые организовывают конференции у нас в рахе, куда приезжают шляпы со всего мира. Они настоящие первопроходцы. Там уровень гораздо выше, чем обычная бинарная эксплуатация, что является примитивом.
>>1794445 Это так круто технически, весь это реверс, и так глупо если представить что все труды идут только на то чтобы выложить крякнутый софт на торренты. Компьютерное робингудство.
>>1794446 >Это так круто технически, весь это реверс, и так глупо если представить что все труды идут только на то чтобы выложить крякнутый софт на торренты У них суженное сознание, как я и говорил. Не могут посмотреть на себя в масштабах мира и развиваться дальше, искать для себя что-то более интересное.
>>1794597 >ядро Только бутлоудер и архитектурно-зависимые части (реализация прерываний, например), но это 1% от кода ядра. Все остальное пишется на Си (пример - ядро Линукса). >libc всего 14% кода на асме, бОльшая же часть кода опять же на Си.
Вывод - асм нужен в узкоспециализированных архитектурно-зависимых местах. Целиком от А до Я крупные проекты на чистом асме не пишут.
>>1794602 >Вывод - асм нужен в узкоспециализированных архитектурно-зависимых местах. Целиком от А до Я крупные проекты на чистом асме не пишут. Ебать америку открыл
>>1796204 Нет. А вот основы incident response, threat hunting, soc analysis стоит знать. Хотя общее развитие никогда не помешает, можешь вечером под пивко коробки на hack the box ломать.
У меня получится запустить код NASM для i386 на своем i5-6200U? Не спрашивайте, зачем мне оно надо. Просто ответьте, запустится или нет? Если нет, то не знаете интернет ресурсы, на которых может запуститься NASM для i386?
>>1801022 и? Причем здесь пентестинг? Пентестеры атакуют софт/инфраструктуру существующими программами, не вдаваясь в подробности реализации атакуемых программ, реверсеры же анализируют программный код, по надобности восстанавливая алгоритмы программы. Их скиллсеты не пересекаются. Для простоты понимания - пентестер атакует "вширь", реверсер - "вглубь". Причем скиллсет реверсера позволяет ему находить уязвимости нулевого дня, пентестеры такое делать не умеют, их знания гораздо, гораздо более посредственные.
>>1801268 То есть, пентестер = скрипт кидди? Я бы вот хотел искать 0day уязвимости в софте, а не быть макакой, которая с помощью кали линукса сканит сетку и подбирает эксплойт из metasploit под софтину и CVE, так как в 99% случаев известные всем уязвимости в реальных корпоративных сетях патчатся.
>>1801409 И смысл искать 0дей пентестеру?Только если он блечер и хочет потом зашифровать всем рансомварью Компаниям по итогу нужен отчет где они проебались,а что делать с зиродеями о которых никто ничего не знает и патча для них еще нет?Разве что в жопу засунуть себе Мимо
>>1801409 пентестеры не ищут зиродеи, они не располагают нужными для этого скиллами. И да, пентестеры - макаки, по сравнению с ресёрчерами, которые реверсят и фаззят софт, и при наличии дыры, могут написать под нее эксплоит. Пенстестер != ресёрчер. Это определения разных профессий в инфосеке.
>>1801517 Я слышал, что сейчас весь хакинг проводится на уровне сетевых протоколов и бэкенда, а бинарщину залатали целиком и полностью (разве что реверс-инжиниринг и крякание софта сохранились).
>>1801619 Бинарщину не залатают никогда, пока есть программы, написанные на неуправляемых языках программирования (С/С++), а таких программ дохуя и больше. Весь известный софт - операционные системы, драйвера, прошивки, веб-сервера (nginx + apache), куча библиотек - все на Сишке и плюсах написано. Глянь в CVE, любая дыра, получившая CVSS более 7, это бинарщина (немудрено, там импакт больше, чем в любых других видах уязвимостей). Доп. пример - в ядре Линукса нашли около 600 уязвимостей в 2019 году, в ядре винды примерно столько же. Единственное что - порог входа поднялся просто в стратосферу, ибо есть очень много защит, которые нужно уметь обходить. Если в 2007 году можно было на 1 баге в ядре написать, например, джейлбрейк на айос, то сейчас для такой цели нужно зачейнить от 5 до 8 эксплоитов с разными багами, чтобы достичь такого же результата. Хотя справедливости ради стоит отметить, что и информация стала дороже, куда дороже. И еще - защитные механизмы в определенных случаях способствуют взлому (лол, да), так что это вечная игра в кошки мышки. И даже если представить розовый мир с летающими пони, где вся инфрструктура компьютерных технологий написана на Расте, а не С/С++, это все равно было бы актуально, просто ЕЩЁ сложнее. Реальность такова, что современная архитектура железа не позволяет иметь абсолютную безопасность памяти на ВСЕХ уровнях абстракций. Для того, чтобы превратить бинарные дыры в прошлый век, нужен технологический переворот в мире железа, который пока не предвидется.
>>1801672 Нужно ли перед крякингом реального софта решать разного рода CTF-задачи, связанные с переполнениями буфера и форматными строками (со всеми этими запретами выполнения кода в стеке, канарейками и ASLR)? Или достаточно просто понять, как эксплуатируются те или иные уязвимости с разной защитой, прочитав какую-нибудь книгу вроде Shellcoder's Handbook, чтобы начинать работать с софтом промышленного уровня?
>>1801697 Основная проблема вката в эту область - необходимость изучать всю историю с самого начала. Условно, первый задокументированный случай эксплуатации бинарной уязвимости - это червь Морриса, который распространялся по сети благодаря переполнению буфера на стэке в демоне fingerd. Это случилось в 1988 году, формально начиная историю проблем с низкоуровневой безопасностью. Именно поэтому любой hello world бинарщины - это классический stack smashing из девяностых с перезаписью адреса возврата в стэковом фрейме уязвимой функции. С годами придумали немало защит, которые нужно уметь все обходить. ASLR, NX, канарейки есть примерно с 2004 года, они дефолтные, причем как в пространстве пользователя, так и в пространстве ядра. Их, без вариантов, нужно уметь обходить, это база. Но есть еще более современные способы защиты, которые обходить гораздо сложнее. Например, control flow integrity, который усложняет эксплуатацию через code reuse атаки. Более того, есть песочницы а-ля seccomp, которые не позволяют исполнять абсолютно любой произвольный код от лица программы, которая в нем находится. Обойти это можно только если есть дополнительный баг, желательно даже на уровне ядра. Апогей бинарной безопасности в данный момент - мобильные ОС - и Андроид, и iOS. Там, помимо всего прочего, есть криптографическая аутентификация указателей (в iOS точно, в андроиде точно не знаю, но нечто похожее точно есть), вышеупомянутый control flow integrity на уровне ядра и гипервизор ПОД операционкой, который сэндбоксит всё ядро. Именно поэтому на белом (повторяю, тарищ майор, на белом) рынке эксплоитов эксплоит на Андроид в данный момент - самый дорогой, около 2.5 миллионов долларов (удаленное исполнение кода без надобности интеракции жертвы, только чтобы к Интернету была подключена).
С течением времени будут придумывать новые защиты и новые обходы, ибо с С/С++ на другие языки никто ничего не будет переписывать. При этом, на этих языках дохуя нового кода пишется, а сломать что-то в бинарщине очень и очень просто. Совет тут простой как валенок - учить надо все подряд, связанное с низким уровнем. Писать много кода на С и С++, отлично знать ассемблер, уметь в соответствующий тулинг, на ВЫСОЧАЙШЕМ уровне знать кишки операционной системы (Линукс/винда/мэк/андроид на выбор) и иметь определенный склад ума и очень, очень много терпения, ну и участие во всех CTFах подряд будет явно нелишним, главное в правильных категориях участвовать.
Условно, вкат в каком-нибудь 2030 году для новичков будет совсем суровым, им помимо огромного багажа знаний надо будет пройтись по всей истории бинарного инфосека, который формально тянется с конца 80ых.
>>1801697 Vulnerability research != exploit development != red-teaming/pentesting != reverse engineering. Так понятно? А на CTF разные задачи бывают, это зависит от тематики проводимого эвента.
>>1801799 > Именно поэтому эксплоит на Андроид в данный момент - самый дорогой Это самая популярная платформа с высоким уровнем обхвата и своей спецификой, благоприятной для атакующего.
>>1802156 >Это самая популярная платформа с высоким уровнем обхвата и своей спецификой, благоприятной для атакующего. Да. Но вдобавок, по этой же причине, Андроид очень сложная цель для атаки, если не самая сложная.
>>1748635 (OP) Посоветуйте книги НА РУССКОМ, которые объясняют как находить уязвимости в программах, типо как взламывать ПО, желательно вообще для чайников можно не для чайников, ну и чтобы она была свеженькая, если эт возможно конечно.
>>1804393 На русском есть Хакинг: искусство эксплойта, только она показывает лишь самые основы без тех средств защит, которые описывал этот господин >>1801799. К тому же, нет такой книги, которая научит тебя именно НАХОДИТЬ уязвимости, и быть ее, в принципе, не может. Необходимо поучиться самому разрабатывать софт идентичный тому, что используется широким кругом людей, если уже умеешь - читать какой-нибудь "Совершенный код" Стивена Макконнелла, который даст правильное видение этой самой софтины как системы. Любое место в программе, где происходит получение входных данных извне (пользовательский ввод, сеть, файл, БД) - это потенциальная уязвимость, которую следует исследовать.
Анон выше прав, английский обязателен к изучению в 2020 вообще всем, не только айтишникам, ведь это открывает тебе доступ к глобальному рынку, к сообществам и ценной информации.
>>1804484 Там анон попросил свежую, а она 2008 года. С тех пор появилось с десяток новых защитных технологий, которые надо уметь обходить. Ну и надо уметь их не только эксплуатировать, а еще и находить. Просто втупую читать код/ассемблерный листинг, сугубо вручную реверся всё и вся, заведомо проигрышная тактика. Нужно уметь в большое количество тулинга и уметь писать собственные утилиты для поиска уязвимостей.
>>1804502 Лично я пробовал читать ассемблерный листинг/код, начиная с библиотечных/системных функций, выполняющих то, что я хотел бы атаковать. К примеру, хочу попробовать написать сетевой эксплойт под Apache, атаковав его со стороны клиента - ищу recv() и копаю под нее. В любом случае, ничего у меня не получилось, к сожалению - слишком глубоко пришлось копаться в коде, я так и не нашел целевой буфер, куда данные после приема recv'ом уходят. С реверсом получилось следующим образом: я вскрыл в IDA Pro одну софтину, начал копать с той же recv() и остановился на моменте, куда попросту не ссылается ничего. Наверное, это функция, которая вызывается через указатель, и понять, что ее вызывает, можно лишь с помощью дебага - а вот как работать в OllyDBG я, к сожалению, не смог разобраться (хотя GDB вполне осилил).
>>1748635 (OP) >В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер Насколько быстро напишешь на Ассемблере программу уровня Фотошопа(или хотя бы калькулятор как в винде)?
Flare-On кто-то решает? https://2020.flare-on.com/ Почему так сложно сразу? На втором задании сижу не пойму что делать. Нужно восстановить битый PE файл накрытый upx и запустить его. Сделал ресайз секций, распаковал через upx -d, пересобрал таблицу импорта, пофиксил манифест и... и оно нихуя не работает, при запуске импорт не резолвит, хотя в IDA все ок. Что сделать то еще нужно?
>>1804507 Мое почтение за старание, но такой "грубый" подход занимает слишком много времени. Без фаззинга очень сложно искать уязвимости, а все существующие фаззеры медленные, нужно уметь писать свои.
>>1804577 Уровня фотошопа - всей жизни не хватит, такие вещи не пишут на ассемблере. А вот калькулятор можно написать. Ассемблер не для этих задач, короче.
>>1804502 Искусство эксплойта это про основу,она не сильно поменялась с тех пор книжка маленькая,полезно прочитать будет имхо >>1804555 потому что это для школьников,несерьезный уровень Под пивасик разве что вечером посмотреть сойдет >>1804577 Гвозди микроскопом не забивают,для этого молоток есть Сьеби нахуй
>>1804653 > потому что это для школьников,несерьезный уровень Всяко больше инфы для начинающих, чем во всяких книжках вроде "Искусство эксплойта" - там про обход канарейки, nx и ASLR вполне себе рассказывается.
Можете помочь с этим участком кода? Что представляют собой эти string literals: StringLiteral___28631336; StringLiteral___28558824; StringLiteral___28517688 И это: String__TypeInfo->static_fields; v10->Empty
>>1804781 Да что ты говоришь? А бутлоудер ты на чем писать будешь? А шеллкод? Ты в курсе, что 14% кодовой базы glibc написана на языке ассемблера? Да, он САМЫЙ нишевый ЯП, да, в 99% случаев для реверсинга, но у него таки есть супернишевые задачи в разработке.
>>1810356 А кто его знает. Я где-то на пятом отвалился, если правильно помню. Тогда я ещё ядро венды реверсил, вот и создал. А сейчас окончательно деградировал, сложно это для меня но получаю больше в 2 раза, лол. Вот и удивился, что тему развивают, шапку не проебали и прочее.
>>1806363 Что тебя конкретно интересует? Общих источников нет, это нишевая тема. База - asm x86/arm, С/C++/Python/Rust, cpu internals (include vmx), os internals, static analysis (disasm, control-flow/data-flow analysis, binary lifting, optimization/deobfuscation techniques - MBA theory, recompilation - compiler theory), dynamic analysis (debugging, instrumentation, binary translation), binary instrumentation (static/dynamic), fuzzing theory and tools (SMT solvers, symbolic/concolic execution, program synthesis, hardware-based profiling - PMU, etc), modern os attack surface reduction and mitigations, code reuse attacks and variations, data-oriented attacks, side-channels/hardware attacks and mitigations, итд итд.
>>1810981 Нет, они отсутствуют. Есть outdated книги, которые тебя подведут к азам, но по-настоящему нырнуть можно только запустив руки по локоть в самостоятельный ресёрч.
Господа байтоебы, кто-нибудь занимается написанием на заказ, если у меня нет 6-8 лет на то, чтобы вкатиться в асм? Есть виндовое приложение, в которое нужно внедрить несколько дополнительных функций, реализовать это в виде сторонней гуевой утилиты, взаимодействующей с приложением. Прятать процесс, обходить защиты - не надо. Плачу сотни денег. Оставляйте тележки итт
>>1811177 Конкретно про механизмы защиты от бинарных уязвимостей - то, как определять, какие именно стоят на атакуемом софте и как их обходить. Как мне понять, используется тут ASLR или нет?
>>1806762 Подразумевается, что ты выучиваешь язык программирования и идешь работать, получая каждый месяц-два оплату за свой труд. Как в этом плане может быть полезен ассемблер? >бутлоудер И что, ты будешь постоянно работать пися бутлоадеры? Так часто телефонов не выпускают, да и Сяоми с Самсунгом для этого нужны 1,5 человека. >А шеллкод? За создание и распространение вирусов вообще уголовка предусмотрена. Да и нельзя рассматривать создание вирусов как постоянный и легальный способ заработка. >что 14% кодовой базы glibc написана на языке ассемблера Ну написано и написано, что тебе это даёт? Какой профит тебе от этого?
>>1811458 >От вопросов, подобных заданному тобой, возникает желание распространять софт в искходном коде. Почему? Опенсорс проекты в основном полное говно, все норм прикладное и ОС-по(Фотошоп, Винда, МАК-ос, Майкрософт Оффис(Ворд, Эксель) - только проприетарное и с закрытым кодом.
>>1811900 >Опенсорс проекты в основном полное говно А кто сказал open source? EULA, запрещающая распростнять приобретённый исходный код - хорошее решение.
>>1811430 тут проблема не асм выучить, а наработать хватку и интуицию реверсера, уметь программировать на хорошем уровне, и если ты ищешь дыры - уметь их искать и эксплуатировать. Это очень долго и сложно в виду большого количества защитных механизмов и в целом security awareness разрабов, наряду с тестами, статическими анализаторами до релиза и т.п. Разрабам не настолько похуй на безопасность, как было было в 90ых, где нахождение и эксплуатация уязвимости требовали от хакера, как ты написал, 30-ти минутного изучение асма и базовые знания программирования. Уже давно все поменялось. Все стало куда интереснее, но сложнее.
>>1811428 Стадия разведки (через тот же nmap - дефолтная процедура) не всегда, а точнее, почти никогда, не дает тебе полную инфу об атакуемой системе, многие вещи завязаны на интуиции и на знаниях множества технологий. Насчет ASLR - этот механизм защиты завезли в 2005 году в Линукс и Винду, в 2006 году в Мэк, отключается только вручную с правами рута. Соответственно, пространство ядра это не обошло стороной, есть KASLR, делающий то же самое, только в адресном пространстве ядра. Это присутствует и в мобильных девайсах, помимо десктопных ОСей, причем мобильные ОС защищены еще больше, чем десктопные, так как там буквально все процессы находятся в сэндбоксах, включая частично даже ядро (есть гипервизор, который ограничивает ядро от произвольных действий), начиная с Андроид 9, про iOS точно не скажу.
>>1812283 Если я хочу набить руку на программировании на языках С, С++ и асм, чем именно посоветуешь заниматься? Писать свою операционную систему? Я потихоньку программирую под микроконтроллеры arm, осваивая их интерфейсы взаимодействия с периферией, но мне почему-то кажется, что там особо много кода не напишешь, тем более с библиотекой HAL. Алсо, как можно изучить кишки ОСей, тоже путем ковыряния, или же стоит прочитать что-то о них? Я читал Таненбаума (сети, ОС, архитектура), знаю большую часть терминологии и понимаю в общих чертах, как работает та или иная технология и куда следует копать, но сейчас не представляю, как выбрать цель для реверса/эксплуатации. Я читаю сейчас RE4B из шапки, понял, как орудовать IDA Pro и x64dbg (а также GDB и radare2), из эксплуатации пока проделывал только переполнение буфера без всяких защит и чтение памяти с помощью уязвимости форматной строки. @фф
>>1812364 >Писать свою операционную систему Неплохой вариант, кстати. Известные ядра, конечно, не переплюнешь, но в образотельных целях написать небольшое ядро - это отличный экспириенс. >пока проделывал только переполнение буфера без всяких защит и чтение памяти с помощью уязвимости форматной строки Это необходимая база, но если говорить о реальном мире - все уже стало куда сложнее. Учи паттерны уязвимостей, читай блоги исследователей и участвуй в CTFах. Учись атаковать кучу, не только стэк, учись эксплуатировать TOCTTOU уязвимости (классический пример: состоние гонки), более экзотические, но релевантные уязвимости, вроде type confusion. Находить уязвимости тоже надо уметь, на одном чтении ассемблерного листинга не уедешь.
>>1812515 И еще хотел узнать. >Находить уязвимости тоже надо уметь, на одном чтении ассемблерного листинга не уедешь Как осуществляется этот поиск, если я, допустим, не знаю все CWE (да и было бы крайне затруднительно знать их все, я полагаю), а одно чтение ассемблерного листинга не помогает? Выше ты (вроде) писал про написание собственных фаззеров, но как писать их, если мы заранее не знаем, что в конкретном куске кода (где со стороны сетки приложение принимает данные, или со стороны stdin) могут быть именно такие уязвимости, а не какие-то другие?
>>1812635 >Не понимаю, что ты подразумеваешь под этим. Я имел в виду примитивы эксплуатации. Например, если программа может войти в определенное уязвимое состояние, ты должен уметь определять то, что ты можешь поиметь с этого как атакующий (примитив на произвольное чтение/запись, возможность использовать указатель, память для которого была ранее освобождена и т.п., примерров достаточно много). Вкратце, если ты вдруг замечаешь что-то неладное, ты должен уметь определять эксплуатабельность, ибо не каждый баг == дыра в безопасности.
>А какие можешь посоветовать? Всех зарубежных, ребята, работающие в google project zero, самые топовые и имеют дело с наисложнейшими уязвимостями, как в плане поиска, так и в плане их эксплуатации.
>за исключением состояния гонки Состояние гонки входит в категорию TOCTTOU. Сие расшифровывается как time of check to time of use. Side channel attacks, например, это тоже TOCCTOU, но это аппаратная атака, а не программная. >>1812637 верно, только таким образом можно запрыгнуть глубоко в кроличью нору.
>>1812648 >но как писать их Ответ один - реверс инжиниринг. Ты должен понимать ДОСКОНАЛЬНО ту цель, которую атакуешь, именно поэтому harness setup для фаззинга может вполне длиться несколько месяцев для серьезных целей. Ну и не забывай про интуицию, такие вещи уже исключительно с опытом приходят.
По задания моего говновуза я должен писать на ассемблере в VS на винде. Но сука, там код с другими регистрами. При вводе/выводе на косоль вызываются, сука, магические функции. Тогда как весь интренет напичкан понятными туториалами по ассемблеру на Линуксе. Там уже другой код, но если его тупо скопипастить в Вижак, то нихера не запустится. Правильно ли я понимаю, что это разность архитектур процессоров (x64 и x32)? И заставит ли меня переписывать всё препод, если я буду на линуксе код писать. Как думаете?
>>1814434 > там код с другими регистрами Дело в другой архитектуре процессора, а не в операционной системе. Разница в программировании на асме под Linux или Windows лишь в системных вызовах. > Правильно ли я понимаю, что это разность архитектур процессоров (x64 и x32) Если регистры rax, rbx, rcx, ... то 64 битный intel, eax, ebx, ecx, ... - 32-битный intel, r0, r1, r2, .. - ARM
>>1814461 Честно говоря, не знаю еще ни одного человека, у которого бы получилось вкатиться в программирование с ассемблера. То, что ассемблер сложный - миф, он сложен не сам по себе, а тем, что на нем разрабатывать полноценный софт придется крайне долго.
>>1814459 А, стоп, я выебывался, что мне сейчас придется использовать магическую WriteConsoleA, так а по сути в любом случае, на любой архитекуре, для вывода ты просто находишь команду и передаешь в нее аргументы (через регистры). Я правильно понял?
>>1814468 Изучить операционные системы хотя бы в теории, ведь когда ты пишешь софт в юзерспейсе, твоя программа обращается к оси (в твоем случае запрашивает вывод символов в консоль), а она делает всю работу.
>>1814451 >Разница в программировании на асме под Linux или Windows лишь в системных вызовах. source и destination переставлениы. Вроде как Intel vs AT&T стили
>>1814521 > source и destination переставлениы AT&T синтаксис и в mingw-gcc есть. Точно так же, как в линуксе никто не запрещает тебе использовать ключ -Mintel.
>>1814528 > Современные OC не дают прямого доступа к устройствам из юзерспейса Всегда есть выход. Например, /dev/mem в данном конкретном случае (хотя ее активно выпиливают по дефолту).
Скачал hex-редактор, открываю текстовый файл а там пиздец. Как начать в этом разбираться? Куда копать подскажите если к примеру я хочу побайтово прочитать что там написано, может таблица по переводу есть или подобное
>>1814673 Почистишь - скушает, различия в синтаксисе самих мнемоник будут минимальные. А директивы естественно разные у всех.
>>1814667 > А правда что если ты знаешь один ассемблер, то ты знаешь их все? Почти правда. Но у каждой архитектуры свои тонкости: где-то ебнутые режимы адресации, где-то неявные регистры, где-то delay-слоты. Но ты берешь мануал, смотришь общее описание, смотришь режимы адресации, проглядываешь мнемоники за вечер и уже более-менее можешь читать код. Некоторые архитектуры отличаются сильнее (специализированные DSP с VLIW, например), на них уходит больше времени. Но все равно это гораздо быстрее, чем осилять первый в жизни ассемблер.
>>1814632 Если бы ты поискал свой вопрос в гугл, а не сюда, то нашел бы ASCII table. Или Unicode table. Или способ кодирования в UTF-8.
>>1814687 >за вечер и уже более-менее можешь читать код засада в том, что оптимально писать код под разные архитектуры - это сложно. надо знать все эти тонкости, приёмчики, как лучше всего задействовать имеющиеся средства. и вот это всё индивидуально для каждой архитектуры.
>>1815374 На моей материнке был баг в BIOS, из-за которого она не могла нормально работать с большим жёстким диском. Это приводило к невозможности загрузки ОС. Я написал небольшой workaround на ассемблере, который переназначал кое-какое прерывание и располагался в MBR. Вот так и вкатился-попрактиковался. Можно ещё ассемблерные вставки пописать для оптимизации производительности критичных участков программ. Тока это надо иметь программу и реальную необходимость. На всю историю, включая исследование проблемы ушло где-то 2 недели. А новая материнка стоила 1500 руб. Но я был нищеброд тогда, и у меня было много времени. Были бы деньги, я б не задумываясь бы купил бы новую мать и закрыл бы вопрос.
>>1815374 Я изучил MOS 6502 ассемблер по книжке, не видев до этого компьютер вживую, только на картинках. Книжка была библиотечная, переводная и посвящалась программированию на ассемблере для Apple I. В принципе, тогда я не изучил ассемблер, а просто понял как он работает. А впервые пощупать удалось в школе на БК-0010Ш. "Пидипишный" ассемблер это масло. Если на нём долго писать, то со временем можно напрямую в машинных кодах писать, настолько он прост. Залить видеопаиять сплошным цветом - как ещё проверить что ассемблер работает? Затем 8080. Вот это было время. Программы в сотни строк. Это не какой-то там тормозящий Бейсик. Это ассемблер. Ну а затем 8086, затем защищённый режим 80386, а затем интерес к ассемблеру пропал.
>>1815811 Я сижу на линухе, есть софт под линух чтобы поковырять проги на исходники? знаю про ollydb, но тот только для винды. Как вообще с RE и ассемблером дела обстоят на линухе. Виртуалка есть, но хочется нативного.
>>1815827 На линухе есть Hopper и GDB. Но вообще, линуха - это мир свободного ПО (в том числе и драйверов), которое пишут на основе проприетарщины после реверса.
>>1816020 Что не так с человеком, который в 2016 году предлагал изучать CVS? Паскаль? С человеком, который выдает свои заблуждения за истену и высрал по этому поводу несколько книг? Хороший мужик, лойс.
>>1815827 r2 попробуй. Если сразу не стошнит, будешь пользоваться и радоваться.
>>1816024 >>1816046 Я хочу вкатиться в ассемблер, но сижу на линухе, как то давно начинал, потом забросил. Теперь вот снова вернулся. Что лучше, Hopper или radare2? Или это одно и тоже? Мне так чтобы реверсить можно было и качать навык в ассемблере.
>>1816046 > Что не так с человеком, который в 2016 году предлагал изучать CVS? Паскаль? Интересно, как тот факт, что он учит паскалю, мешает ему учить программировать на ассемблере? Поссаль предлагается классической российской системой образования, и именно на нем выросло немало программистов (если говорить об академической среде), это не хорошо, но и не плохо.
>>1816149 radare2 - это дизассемблер, а Hopper - это дебаггер. Первое позволяет тебе прочитать бинарный файл, а второе - выполнить его, наблюдая в режиме реального времени за тем, что происходит с регистрами и стеком.
>>1816199 Ок, чем можно заменить тогда платный hopper? И подойдет ли nasm для изучения, или лучше yasm или fasm. Какой вообще лучше стек выбрать для линуха чтобы вкатиться и изучить? Подскажи плис.
>>1816216 > чем можно заменить тогда платный hopper? GDB с горлом хватит. > И подойдет ли nasm для изучения, Да. > Какой вообще лучше стек выбрать для линуха чтобы вкатиться и изучить? Подскажи плис. Вкатиться во что?
>>1816223 Попутный вопрос, где можно заюзать ассемблер? Какое у него практическое применение, и как можно на нем заработать? На высокоуровневых , ну и на си подобных еще можно подянть бабок, а тут? Кроме как пилить всякие шелы.
>>1816301 Не парься. Когда тебе понадобится ассемблер, ты об этом узнаешь. Учить только лишь потому, что это круто - бессмысленно. Вот интерес - это хорошая причина выучить какой-нибудь ассемблер.
>>1815806 Ну что, пацаны, собираемся для компиляции и доработок? Хотеть встроенную в IDE (VSCode или хотя бы Visual studio community) однокнопочную систему для компиляции отдельных прог и отдельную кнопку сделать заебись собрать готовый ISO.
>>1816564 Да это понятно. Но всё равно не анонимно. Тут всё нужно начинать так, чтобы не выпилили. Поэтому никаких гитхабов и анальных телеграмов, трущих посты по DCMA.
>>1816623 А хуй его знает. Понастальгировать, накатить пару патчей и запуститься на собственноручно собранной винде - разве это не кайф? Впрочем, активности что-то не видно. Утекает только то, что нахуй 99,999% не нужно.
>>1816651 Ну если только на Эльбрус в нативный 128-бит код портируете. :-)
Кстати, конфу в телеге вполне можно создать, только не палиться. Совсем не палиться, чтобы никто не подкопался. Типа исследование. Просто там отбирать людей. А конфа должа быть настолько легальна, что даже ссылки на 2ch в ней бы считались моветоном.
Но всё же я против. Если делать совсем нечего - лучше бы мне помогли.
>>1816718 Да вот систему команд придумал, а компилятора для неё нет. Собственно помощь заключается в изучении системы команд. Может какие функции полезные кто напишет, пока изучать будет. Вот как-то так.
Поможите плис, опыта в асме нету. Я тот анон что на линухе. По радару. Можно ли им просмотреть двочный всех програм, не обязательно exe файлов. Как наиболее быстро выучить язык асма, если куча процессоров, архитектур и тд, и разые инструкции. И еще разрядность. Можно ли как-то на асме смотреть системыне вызовы и процесыы на линухе? Но хочется для начала все таки освоить яп асма. Есть варики это сделать быстро.
>>1816900 Какой выучить лучше? Я в них плохо шарю, с какого начать. Могу nasm, или лучше под винду? Я вообще хз с чего начать. Я читнул про насм - как бы ниху сложного, знать регистры, как работать с памятью и пару моментов.
>>1816933 Монетизация различных функций - безгранична, в теории, начиная от дудоса например, или шантажа. Но в целом, мне бы просто начать для общего развития.
>>1816942 Спасибо, начал читать. Желание узнать асм - так как вирусология - перспективное направление и продукты на определенных рынках стоят не мало. Да и самому можно юзать тоже.
А в радаре можно любой файл дизасемблить? Какое вообще расширение можно юзать, .o , .exe? Или можно вообще все разложить на атомы? И еще, что лучше все таки, фасм или насм? Какой язык учить? Там немного синтаксис разный, но у фасма есть 64 бита.
>>1817951 Да скачал я, как запустить cutter? Качал гуевину. В оф доках даже нету как запустить софтину, только картинки. Таб тоже не помогает. Сам радар есть - r2, робины и прочее. Вот катер не могу посмотреть, не нашел файлика для запуска.
>>1817989 >>1818180 >как запустить cutter? Чел, ты не можешь пойти на github, скачать последний релиз под шиндовз и запустить cutter.exe - как ты собрался вообще что-то реверсить?
Разбираясь с кодированием текстовых данных, узнал что кодирует мой компьютер обычный неформатированный .тхт файл по-умолчанию в однобайтовой ANSI. Но его также можно "Сохранить как..." и поставить кодировку юникода. Сперва предположил что с помощью управляющих символов как-то она в файле устанавливается, затем после нескольких часов пердолинга с байтодрочерством в hex-редакторе дошло что кодировка походу скрыта от моих глаз где-то еще Также подметил то что файлы сохраняются по 4Кб размера на диске, хотя они обычно у меня в несколько байтов влазят, я путем гуглинга нашел инфу что это возможно так называемые кластеры которые создаются файловой системой, и у меня вопрос: Как разобрать этот кластер на атомы? Как достать оттуда всю инфу? Где храниться имя моего файла и расширение? Где храниться кодировка файла? Ни расширение, ни имя, ни указанной кодировки при открытии файла в hex-редакторе нету. >>1814687 Пока в процессе активного пердолинга и прошу бывалых байтослесарей помочь в моем освоении машинного кода
Для японских игор надо всю систему переводить на японскую локаль и на японсий формат записи времени потому они часто не используют юникод и вместо иероглифов отображается ??????
Бывает у вас такое: реверсишь, реверсишь, вроде бы много сделал, инструментарий написал. А потом просто в душе не ебешь че дальше делать. Это нормально?
Я абсолютно никак не могу понять, почему переменная неведомым образом изменила свое значение! Или je не работает, сука. Я четко присвоил переменной numberSign значение 0, сравнил заведомо ложное выражение, сработал флаг jne, потом я сравниваю numberSign с 1 при помощью je, и он, сука, говорит, что они РАВНЫ! Чтоооо?
>>1819796 Я просто свою программу сократил, чтобы блять весь код сюда не вставлять. Но даже такая обрезанная херня не работает, так как надо. Либо я тупой, но укажите где именно
>>1819798 mov bl, '1' cmp bl, '-' Потому что ты загружашь в bl переменную которой нет, поэтому там ноль. Потом сравниваешь с переменной которой нет, т.е. с нолем. Джамп не выполняется и mov numberSign, 1
>>1819803 СУКАААААААААА, я тупой дибил, я забыл, что если флаг не выполняется, то программа просто дальше продолжает работать и соответственно попадает в метку. Спасибо, анон
>>1819669 Не бывает. Бывает так: реверсишь, реверсишь, много сделал, инструментарий написал (говно полное), а потом просто смотришь, сколько еще нужно сделать, и думаешь, не дропнуть ли это все нахуй, и не пойти ли в грузчики.
>>1819332 > Как тогда компьютер узнает о том в какой кодировке открывать файл Эвристики. Например, если попытаться декодировать файл как UTF-8, и при этом не попадется ни одного невалидного символа, можно предположить, что это UTF-8. Если попытаться открыть как cp1251, и кириллица будет перемешана с латиницей, то это была нихуя не cp1251, а скорее 1250 или 1252. Кроме эвристик, как уже сказали, есть BOM, а еще можно тупо предположить UTF-8 по умолчанию, или предложить пользователю задать кодировку в настройках.
>>1820671 https://tproger.ru/translations/reverse-engineering-basics/ прочитал это. По сути - советуют и разибрают язык Си. Попутно тупо смотрят код на ассемблере. Все. Мне интересно в чем суть и какой алгоритм работы в ре. Смотреть код Си в дизассембеле и графы? На что тогда стоит обращать внимание? Не скрою, я пока слабо понимаю как писать шелы всякие и эксплойты, но для себя интересно. Например, я не понимаю как написать прогу или ее исправить а асме чтобы она каким-то образом сделала то что мне надо. Например, локер, или чтобы тупо вырубало комп, или что-то в этом роде. Хз как объяснить даже. Но как-то так.
>>1816024 Наивный ты На деле проприетарщина спиздила овердохуя идей из опенсорса. Единственный явный продукт реверсинга в опенсорсе - это дрова Noveau для видеокарт Nvidia, но это только потому, что нвидия мрази ебаные и в этом плане им похуй на опенсорс от слова совсем, хотя в одночасие они используют ядро Линукса для своих новых железок (нвидия не только видеокарты производит, а полупроводники в целом).
Не гоните ссаными тряпками - я не тролю а действительно этого хочу. Как научиться писать на машинных кодах? Ну прям открывать hex-редактор, ебашить байты и запускать сразу то что вышло. Как этому научиться? Пока осилил только системы счисления и различные операции с числами в них и виды кодов:прямой, обратный, дополнительный. Сейчас читаю про кодировку разных данных: текст, графика, видео, звук и тд. Куда копать посоветуете чтобы научиться все программы в нулях и единицах писать? Пока среди следующий целей навернуть "архитектуру компьютеров" таненбаума да и с hex редактором играться, если что учу просто для души
>>1821540 Вероятнее всего тебя интересует архитектура x86. Ты открываешь официальную документацию Intel по ней. Там расписано всё: все инструкции процессора, регистры, как работать с всем этим хозяйством. В т.ч. там расписаны все машинные коды для инструкций, и их формат. Штудируй это. Только, боюсь, скорее всего ты надорвёшься. Слишком сложно и муторно.
Я вот сам думал освоить сиё. Хотел написать либу, которая бы во время работы программы генерировала машинный код, исходя из некого высокоуровнего представления, и позволяла его запустить. Очень полезно, когда например юзер задаёт какие-нибудь формулы (как визуализация в winamp), и надо их быстро-быстро обсчитывать. Вроде в природе существуют уже готовые библиотеки для генерации машкодов из ассемблера.
>>1821561 >когда например юзер задаёт какие-нибудь формулы >и надо их быстро-быстро обсчитывать Для такого лучше LLVM IR генерировать, а потом компилировать.
Редактирование самих машинных кодов будет полезно, когда в уже работающей программе надо заменить jump на один адрес в jump на другой адрес или по другому флагу.
Позанимайся реверсом 10 лет и начнёшь как в матрице видеть за цифрами. А вообще ты совсем что ли ебанутый? Для этого как раз асм и придумали. Я даже в теории не могу представить, нахуя это нужно. Если хочешь что-то ручками пропатчить по-быстрому (нопами, например) - всё равно сначала смотришь дизасм, идёшь на это место в бинарнике, пишеш. Основные оп-коды сами по себе учатся.
>>1822916 Ну про матрицу слишком гиперболизировано - поднять ту же спецификацию по ПНГ или ЖПЕГу то запись там такая что никак уж не начнешь видеть цельную картину - оперативной памяти мозга не хватит чтобы каждый пиксель мысленно сопоставить
Короче, функция DrawOTag рисует изображение из связного списка. Список выглядит пик2, в списке указаны адреса на примитивы в которых указыны адреса на след. примитивы. Но адрес следующего примитива может быть не адресом в списке. То есть адрес в списке может указывать на несколько связных примитивов. Сделал дамп памяти, теперь надо написать простенькую прогу которая найдет в примитивы в памяти. Исследовать этот кусок, найти текст который рисуется прямоугольниками. Найти что именно рисует эти прямоугольники, и заменить на то что нужно.
Анон, привет. Я решаю разные ситиэфы в категориях эксплуатации и реверсинга, порой подглядываю в райтапы, если знаний не хватает, тем самым заполняя пробелы, но чаще всего дохожу до конечного решения самостоятельно. Проблема в том, что я могу понять как подступиться к ситиэфу в плане решения проблемы (допустим, если надо найти уязвимость и эксплуатировать ее), но все, что касается реальных программ, вгоняет меня в ступор. Как правильно проштудировать все векторы ввода данных в программу? Если мы говорим о Линуксе, то те же strace/ltrace не скейлятся на крупные программы, я уже молчу о таких монстрах, как браузеры, состоящие из множества программных модулей, порой напрямую друг с другом не связанных. Как правильно делать энумерацию векторов ввода? Выход один - реверсинг наощупь? А если программу нельзя запустить, нужно искать решения в лице эмуляторов? Вопросы мб слишком общие, но я буду рад, если кто-то направит меня в нужное русло и/или попросит конкретизировать каким-либо образом вопрос. Заранее спасибо.
>>1823915 Морер У.Д. Язык ассемблера для персонального компьютера Эпл. (Apple Assembly Language a course of study based on LazerWare software, 1984) Монография. Перевод с английского И.П. Пчелинцева, К.Г. Финогенова. (Москва: Издательство «Мир». Редакция литературы по информатике и робототехнике, 1987)
Как вкатиться в вирусологию, чтоб прям по научному. С классификацией и тд, почитал в сети, куча всего, интересно. Хочется как-то упорядочить. Систематизировать знания. Чтоб понимать чем шелл отличается от бекдора, а троян от руткита. Пожалуйста. В телеге дох инфы, но там такая каша, что я аж запутался.
>>1824032 Унесколько регистров, несколько операций, флаги, условные и беусзловные переходы. запись/чтение в память/изпамяти, вызов подпрограммы и возврат из неё,
Операции сложения и вычитания есть везде. Почти везде есть операции умножения/деления.
Операции AND OR, XOR. Оперции сдвига в право/влево.
>>1824015 >научному Малварь - сверхпримитивный софт в 99 процентов случаев,лол Нет никаких научностей,реверс ботов и малвари в целом = табуретка на уроках труда >Чтоб понимать чем шелл отличается от бекдора, а троян от руткита удаленный шелл - доступ к консоли Бекдор - закладка в коде позволяющая получить доступ через нее Троян - малварь замаскированная под что-то руткит - любая программа скрывающая как-то свое присутсвие на компе Не важно р0/р3 это все гуглится Не занимайся хуйней,не иди в индустрию торговцев страхом - антивирусов Там даже платят хуево А так есть книжка Вскрытие покажет - практический анализ вредоносного ПО Неплохая и новых еще поновыходило,может завтра скину в тред ссылки
>>1824206 вскрытие покажет немного старая(2011 год),но в целом там все ок из нового я хотел скинуть mastering malware analysis,ее недавно еще раздавали всем бесплатно но она только на англ
>>1824581 Какой впизду бот? Или это сорт оф подъеб? Дельный совет - ищи спецификацию и читай, там все должно быть вплоть до бита расписано что и куда и как преобразуется
Там текст отрисовывается как графика. DrawOtag просто отправляет адрес связного списка gpu, в этом списке адреса на примитивы(лайт мод), обычно там адрес на первый примитив, в котором адрес на след. примитив, до тех пор пока адрес не вернется в изначальный список. Список этот сделан для Z-глубины, то есть первый слой будет дальше, второй слой перерисует первый. И вот в игре последний слой рисует диалоговое окно вместе с текстом и ее рожей. Хотя сонибляди могли бы сделать слой для текста..... И вот я хочу найти байты текста в этом слое, чтобы их изменить.
>>1824591 >>1824603 >>1824613 >>1824643 Мне откуда знать блядь какая спецификация, ты же сейчас реверсишь эту хуйню, глянь откуда оно берет и куда, где лежит нужный текст а там разберешься. Я вообще даже не понимаю что тебе нужно И да представь нахуй - рисовать по 1 пикселю это тоже где-то регламентировано, ведь это происходит на твоем компьютере - буква разбивается на чанки, чанки загружаются в видеопамять и тд. Все эти процессы детально описаны, нужно просто понять что к чему там и как идет, для этого реверс и нужен. Я так понял тебе нужно пилить перевод - так в файл с буквами закинь кириллицу, посмотри что выйдет, ну а дальше по мере поступления проблем решай их
>>1824681 Это рисуется как графика. Это на диске сохранено как изображение. Нет никакого формата. Они не хотели чтобы их игру перевели. Там еще кроме этого всяких заморочек хватает, типа чтения данных из raw-области диска или тип того.
>>1824689 Первое что приходит в голову - сделать свой перевод аналогично как графику и задудонить туда, пробуй так решай проблемы по мере поступления. И да - изображение тоже формат
Это и есть буква, потому что в очереди появляются только выделенные байты. 64 это спрайт с tone mapping(поясните что это значит), что уже лучше, значит гдето лежит спрайт буквы. Просто я менял значение цвета 606060 на синий и почемуто синим стала только тень. Е1 это Environment command, видимо задаётся область рисования. В документе ошибка? 011 Sprite primitive, а в таблице 100
>>1824972 Оказалось что это просто координаты на текстуре, и сначала слово пишется на текстуре, а потом переносится на экран. Бля, это теперь выяснять как буквы попадают на текстуру, вообще хз как это делать.
Впринципе, если подумать. То у норм разрабов в этой текстуре должен быть типа алфавит. Достаточно изменить буквы в текстуре и просто менять положение каретки.
Можете мне подогнать пример перевода курсора вверх или чего угодно в терминале в виде hex? Чтобы я его прошил в контроллер, убедился что оно работает и дальше по списку команд тыкал сам.
Хочу сделать меню в контроллере при подключении через UART.
Проблема в том, что все туториалы что я видел, сделаны для тех кто сидит в терминале или ещё какой-то среде. Я вообще не ебу что значит ctrl+[, ^[, ctrl+d как их вводить? Написали бы 1b5b и вопросов бы не было. Нет, какие-то кодировки наркоманские придумают.
>>1825396 > Я вообще не ебу что значит ctrl+[, ^[, ctrl+d как их вводить? Первый байт - escape (0x1b), а дальше вводишь вот эти скобочки квадратные и буковки после них.
Аноны, представьте ситуацию: вы фаззите крупный софт без доступа к исходному коду, фаззер набирает парочку подозрительных сегфолтов, намекая на возможную дыру в безопасности. Ведь наверняка будет недостаточно реверсить только ту функцию, где программа крашнулась, видать, нужно чекать ВСЕ кросс-референсы и реверсить и их тоже, что понять как оно все работает? А если их тысячи? Как это происходит на реальных целях, а не на высосанных из пальца цтфах?
>>1825349 Что там реверсить то? Символы есть, сдк есть, слитые исходники/сдк есть, дебаг сборки есть, windows internals все читали, из инструментов любой на выбор. Тебя что конкретно интересует?
>>1825700 >щас бы пытаться на базе виндового говноядра писать ось Вообще-то лучшее ядро на сегодняшний день. Еслм ты этого не понимаешь, что ты делаешь в этой теме?
>>1825757 после слива ядра хрюши стало ясно из каких говен и палок оно соткано, а все удачные места - копипаста из опенсорса) А хули, ось для потреблядей в лице игродаунов и домохозяек, они и так будут жрать говно, даже с телеметрией на борту. Если ты считаешь, что в дриснятке что-то кардинально поменялось - спешу огорчить, мелкософтам давно похуй на шиндовс как на продукт, ибо свою маркетинговую кампанию он уже давно отбабахал, инерции хватит еще на пару поколений потреблядей вперёд.
>Еслм ты этого не понимаешь, что ты делаешь в этой теме? Реверсинг не существует лишь на одной шинде, маня, проснись. А если брать эксплуатацию уязвимостей, что косвенно связано с этим тредом, то и подавно, ибо подавляющее общее количество компьютеров на планете крутятся на юниксовых ядрах. Помни, что винда доминирует только в десктоп сегменте, все остальное - юниксовые ядра, особенно учитывая тот факт, что в 2к20 году компьютером вполне считается даже сраная микроволновка.
>>1825774 Зачем так много написал? Смысла от этого не прибавилось. Есть ядро NT и оно только обрастало фичами до десятки. То, что ты имеешь смутные представления о ядре NT, это твои проблемы.
>>1825774 >Реверсинг Это тебе кажется что тема про reverse engineering, а фактически "реверс" это небольшой сегомент от "околоассемблерных" задач.
Так все же - как программировать на ассемблере? Я так понял это такой же ЯП как и другие за исключением того что функции и команды в нем отвечают машинным командам процессора и что для разных архитектур разный ассемблер Так же понял что существуют различные комплиляторы для ассемблера - MASM, FASM, WASM и тд. Разницы пока в них не вижу Обязательно ли нужно качать какой-то компилятор? Нету ли встроенного - язык процессора все же
>>1826007 >Так все же - как программировать на ассемблере? Для налача напиши "программу", которая срванивает две строки. Это буквально несколько команд.
> Нету ли встроенного - язык процессора все же Внезапно подумалось что ты толстишь для оживления темы. Или реально школьник.
>>1826007 Качай фасм и запускай примеры. Читай документацию фасм, там очень сжато и доступно.
Имей а виду, что fasmg это отдельный проект для поддержки всех архитектур сразу, где для каждой команды каждого ассемблера каждой архитектуры пишется отдельный макрос. Пока не трогай.
Masm не самостоятельный и не универсальный. Только винда.
>>1826035 Я просто долбоеб который не имеет понятия как там все устроено, ты то этим занимаешься тебе легко, я же не понимаю. При чем тут сравнение строк?
>>1826059 >При чем тут сравнение строк? Юный падаван, я гуру с опытом более 30 лет. Ты неправильные вопросы задаёшь. Сильно сомневаюсь в твоих способностях. Ты умеешь программировать хотя бы на одном языке?
>>1826114 Писал бывало хеллоуворлды на с++ и js, но серьезного ничего там не делал. Поэтому можно утверждать о том что ассемблер первый яп в который буду серьезно вкатываться, серьезно потому что с самого начала моего интереса к программированию я интересовался наиболее низкоуровневыми яп, но все же не брался их учить потому-что знал что для заработка денежных средств они малопригодны по сравнению с веб-индустрией, сейчас же уже даже не надеюсь на извлечение хоть какой-нибудь прибыли и просто хочу говнокодить для себя попутно ковыряясь во всяких приложениях Про строки подозреваю что смысл был в том что асм компилятор просто переводит мнемоники и прочую лабуду сразу в машинные коды и поэтому в самом примитивном случае это будет программа которая ставит в соответствие мнемонике некий указанный в спецификации процессора машинный код, вот при чем тут сравнение строк подозреваю Погромировать умею на уровне хеллоуворлдов, но думаю это вполне поправимо
Не могу понять, как провести реверсинг прошивки .fw под браслет MI Band 3. Если с прикладным софтом под какую-нибудь винду все крайне просто, и IDA Pro автоматически определяет архитектуру процессора, то тут приходится гадать и гуглить. На 4pda аноны написали, что нужно выбирать архитектуру процессора ARM v7 (little endian), а стартовый адрес ROM равен 0x08008000 (и откуда они вообще взяли эту информацию, может, в hex-редакторе надо вскрывать?), однако при вскрытии IDA Pro все равно выдает сплошные шестнадцатеричные числа, никакого ассемблерного кода, и никак не может найти точку входа в программу.
Нашёл каким образом буква попадает на текстуру. Но вот как она формируется в памяти... там типа каркас(или шифрование такое). Короче, данные о пикселях проходят через процедуру которая разная для каждой буквы. Разбираюсь дальше
>>1826453 Выяснил, что процессор браслета - Dialog DA14681.
10.2.3 Application start address SUOTA-enabled applications should be compiled for execution from address 0x20000. The following lines are already there but it is likely that CODE_BASE_ADDRESS is always set to 0x8000000. This does not work when a bootloader is present. The modification required to CODE_BASE_ADDRESS is highlighted with red font in Code 20.
>>1826114 > Ты умеешь программировать хотя бы на одном языке? Юный падаван, я гуру с опытом более 15 лет. Ты неправильные вопросы задаёшь. Сильно сомневаюсь в твоих способностях. Ты хотя бы одного человека обучил в своей жизни?
>>1826166 Прямо в архиве есть пример Hello world с объявлением строки. Вообще, изучи скачанный архив, там и примеры на разные темы, и инклуды, и исходники. Примеры запускаются из коробки. А додика этого не слушай, ассемблер самый простой язык. Как только поймёшь суть, дальше сможешь все сам.
>>1826747 Все равно не понимаю. Попробовал ввести 0x0 как стартовый адрес, а 0xE0000000 - как последний (вдруг получится найти что-то похожее на ассемблерный код в огромной куче дерьма), тоже ничего не вышло. У меня такое ощущение, что у меня совершенно не хватает знаний в этой области, но я не могу понять, каких.
>>1826747 Вскрыл прошивку как обычный бинарный файл, без выбора архитектуры. Получилось следующее, лол. Строковые ресурсы IDA Pro обнаружил, а что-то опознал как инструкции Intel.
>>1826776 > У меня такое ощущение, что у меня совершенно не хватает знаний в этой области, но я не могу понять, каких. >>1819669 Я тебя понимаю, лол. Похоже в RE это всё таки нормальное состояние. Тоже попробую, может получится.
>>1826871 Я читал всего Таненбаума (правда, это было больше года назад), в общих чертах помню принципы работы вычислительной техники, но, тем не менее, многого не знаю.
Какой же я все таки тупой еблоид, вот как научиться писать на ассемблере? Я беру что-то пишу - диззассемблирую это что-то в ida и смотрю что вышло - там еще какие-то .mmx .686p и .model flat добавляются, сегменты объявляются. У меня столько вопросов но меня за такие нахуй только пошлют подозреваю поэтому буду сам разбираться, пишу одно компилирует вообще другое
Есть два одинаковых файла, это sfx архивы от крупной компании.
Один по вирус тоталу первый раз был в 2013, второй в 2014. Версии и метаданные совпадают. Хэши не совпадают. Файл с поздней датой не может быть настоящим 100%.
Что нужно сделать чтобы понять есть ли там малварь? Скан никаких вирусов не выдает.
>>1827322 запустите в песочнице по типу app.any.run или hybrid-analysis Единственное,что люди потом смогут скачать ваш файл оттуда при наличии регистрации там,но раз файл уже закачан на вирустотал и ему более 6-7 лет,то я думаю вас это не волнует
Лол бля. Открыл в fasm'e examples по совету анона >>1826737, а там к хелооуворлду подключается одна библиотека, а к этой библиотеке еще две, а к одной из этих двух еще 12. Не уж-то настолько тяжело писать хеллоуворлд на чистом ассемблере?
>>1827607 Сужу, вроде как экспортируется процедура _write которая делает всю работу, ну и где тут расписан чистый ассемблер? Заместь тебя все написали а ты просто это используешь, высокоуровневое программирование какое-то
>>1827609 >вроде как экспортируется процедура _write которая делает всю работу Дергает системный вызов ядра. Оборачивает всякой требухой. Вот, например, прямой вызов функции ядра
Чем хорош бамплимит, так это тем, что случайные люди сюда не попадут и можно лампово пообщаться. Особенно если модератор будет вовремя прибивать левые бессмысленные темы.
Аноны, помогите Дано: огромная программа Требуется - узнать максимальное количество путей, через которые программа получает ввод (командная строка, сеть, файлы - все подойдет) и повесить хуки на те функции, где ввод начинает обрабатываться. Речь идет о Линуксе, но на больших программах ltrace/strace - гемор тот еще. Какие подводные? Без кропотливого реверсинга и интуиции никак? Мне интересно могут ли такие вещи быть найдены эффективно и относительно быстро, используя преимущественно динамический анализ.
>>1827559 На Винде у тебя нет прямого доступа ни к чему, в этом суть защищённого режима процессора, поэтому любое действие через вызов библиотек user, kernel и других. Итак, у тебя выбор из 4 путей:
1. Писать вручную PE (.exe) файл из структур, вручную прописывать все его секции, вручную строить stdcall вызовы, что кстати есть там в примерах. Потянешь все это со старта? Нет, иначе бы давно сам разобрался. 2. Если хочешь программировать без внешних функций, программируй бутсектор. Но даже там без биоса много чего не сделаешь, например не прочитаешь флешку. Тебе придется сразу изучить как работает реальный режим, как вычисляется адрес, как работают прерывания, изучить функции биос, изучить распределение адресного пространства. Нагугли архив старого wasm.ru там есть статьи на эту тему. Все мы когда-то по ним игрались с реальным режимом процессора. Потянешь? Флаг в руки. 3. Надуть губки и сказать лол, да вы все тупые хуйню мне советуете. И тогда я обязательно возьму в руки соску и буду разбираться, что лялечка хочет и почему начала плакать. Вместо того чтобы задавать конкретные вопросы как взрослый человек. 4. Наконец-то запустить долбанный пример, где пользовательский код написан на чистом ассемблере и красиво отделен от системной хуйни, и который ты сможешь за один час полностью понять и от которого сможешь дальше отталкиваться, либо в сторону 1), либо в сторону решения своих задач.
Сходу написать что-то на ассемблере без библиотек невозможно для новичка. Примеров в фасме много, есть минимальные без макро, есть и .com под командную строку (.dos совместимую), где каждый байт пишешь сам.
>>1827709 Подсистем несколько бывает. Есть минималистичный дос, есть защищённый 32 битный режим, есть 64 битный и несколько специальных. Выбери одно и изучай примеры.
>>1827675 Всё, разобрался на 98,5%(вдруг подводные). Эта процедура рисует спрайт буквы из кода на диске. Осталось написать упаковщик, мне оч .сложно и долго. Мой первый ромхак прост)
>>1827793 Вот анон дал чистый hello world - >>1827626 Вотт анон расписал довольно неплохо >>1827709 И вот две подпрограммы для Helloworrld - ввод строки и вывод байта непосредственно в последовательный порт для экзотического процессора. Как минимум ещё не показали пример с записью по адресу 0xb8000 на PC/XT
>>1827829 Это я понимаю, проблема состоит в другом - вызовы то можно увидеть в простыне от strace, но как понять где в коде самой программы это происходит? Я-то хочу повесить хуки, а для этого нужно знать адреса тех функций, где это все начинается, чего l(s)trace не дают, показывая просто последовательность вызовов библиотечных/системных вызовов.
>>1827837 >А куда именно эти символы выводятся? В консоль? В последовательный порт. Условно там три провода - земля, TX, RX. Вывод попадает в терминал на компьютер.
>>1827837 Начнем с того, что пример для ARM процессора, если не ошибаюсь. Все, я больше не участвую. Сам очевидно ты ничего не будешь делать, поэтому и объяснять нет смысла. Пусть тебя тянут другие. Мимо
>>1827835 >как понять где в коде самой программы это происходит? В интернетах для решения твоей задачи предлагают скачать исходники strace и добавить к выводу адреса.
Ну а что? Как вариант, если всё перепробовал и ничего не получилось, то может получиться.
>>1827841 Ок, спасибо. Я пока наворачиваю документацию по FASM'y чтобы инструкции там понять, в ида дизассемблировал хеллоуворлд который в examples, там подключилась библиотека kernel32.dll, придется и ее дизассемблить чтобы посмотреть как эти функции работают, скачал интеловскую документацию на мой процессор, буду архитектуру еще разбирать, спецификацию РЕ читал и hex-дамп .ехе'шников смотрел(из-за того что в редакторе открывал послетали файловые ассоциации, еще пол часа потратил в реестре все восстановить). Аутизмом занимаюсь полнейшим надеюсь что-то из этого выйдет
>>1827849 Вы вот все высокоуровневые такие - пытаетесь зацепиться за стандарты, найти похожий системы и какбы посмотреть под другим углом. Я не согласен с таким подходом, просто знайте. Из этого ничего хорошего не выйдет. Надо сразу брать цель и решать её.
>>1827853 Это долгая история. Была необходимость добавить некоторый аппаратный блок в любой существующий CPU, был поход на https://opencores.org/projects и анализ разных процессорных ядер. В результате пришлось принять трудное решение делать оригинальное процессорное ядро.
>>1827859 Это отлично, не углубляйся в теорию, решай больше практических задач. Просто совет. Мне когда надо будет PE-заголовок, тогда и разберусь с ним, к примеру.
>>1751032 Привет, а можешь подсказать, чуть более подробно как решал? Пытаюсь сам раздуплить, но чето не могу зарешить, если гайд какой-то дашь, буду благодарен
Пытаюсь разобраться в теории. Объясните мне. 1. Инструкция - это опкод или опкод+операнды(0 или несколько)? 2. Команда - это тогда что? То же самое, что инструкция? 3. Что значит принцип хранения данных и инструкций (программ) в одной памяти? В чем разница? Как я понял, (данные) - набор осмысленной, но бесполезной без задействования программ, информации. А (программа) - набор инструкций, приказывающих процессору выполнять определенные действия и работать с этими данными. И в зависимости от интерпретации машинного кода одно и то же условное f5 f3 e9 может быть считано и как слово хуй, и как инструкция? Я правильно понимаю? А как компьютер тогда понимает, как интерпретировать это? В контексте программы? Извините, если тупость написал, у меня уже каша в голове из терминов.
>>1828736 >А как компьютер тогда понимает, как интерпретировать это? У проца есть указатель на адрес с командой/инструкции. >у меня уже каша в голове из терминов. FFFFFFF нахуй идут термины Эти термины придумали специально чтобы сделать из программирования ёбаное сектанство. Никчёмные, прыщавые уёбки напридумывали терминов и обмазываются ими. Поэтому ничего хорошего в этой ёбаной стране нет. насмотрелся авгна
>>1828736 >Объясните мне. > Инструкция это код операции и операнды, что по сути почти одно и тоже, поскольку операнды зачастую есть часть инструкции.
Команда то же самое что и инструкция.
Код и данные могут быть физически в одной памяти, а могут быть в раздельных. Например, ГАРВАРДСКАЯ АРХИТЕКТРА подразумевает что код и данные разделены. У устройства разные шины для считывания код и считывания данных. Обшая память для инструкция и данных называется Фон Неймовская архитектура.
> И в зависимости от интерпретации машинного кода одно и то же условное f5 f3 e9 может быть считано и как слово хуй, и как инструкция? Я правильно понимаю? Да.
> А как компьютер тогда понимает, как интерпретировать это? Если выборка происходит по счётчику команд, то это код, любой другой вариант - данные.
Ничто не мешает установить счётчик команд на данные и процессор "сойдёт с ума".
>Тип nil — это тип с единственным значением, nil, основная задачакоторого состоит в том, чтобы отличаться от всех остальных значений.Lua использует nil как нечто, не являющееся значением, чтобы изобразить отсутствие подходящего значения.
Это же сектанство. Я пытался читать это, чтобы понять скрипты который написал этот ёбаный сектант. В итоге мне это не понадобилось от слова совсем. И Я ПРОСТО ПОТЕРЯЛ ДОХУИЩА ВРЕМЕНИ!! А всё оказалось намного проще.
>>1828750 >>1828774 Спасибо. А как это, установить счетчик на данные? Указатель или счетчик? Я пока только вики читаю и таненбаума начал. Есть примеры какие-то, статьи, чтобы разжевали про эти адреса и счетчики?
Поясните плис как разшифоровывают шифры? В жабере есть шифратор, небезизвестный. Посмотрел что будет без него, полная галиматься, как будто ни та кодировка. Так вот. Нах эти все супер шифры, если все они похожи на просто - не ту кодировку, набор символов, зачем было выдумывать десятки заумных алгоритмов, если можно было смешать разные кодировки и дрочись их годами для дешифорвки. Я не понимать.
>>1828836 Это указатель с точки зрения языков высоко уровня. В машинном коде это всё предельно просто - записываешь число (адрес) в регистр, читаешь или пишешь память по этому адресу.
И это прочитанное значение в свою очередь может быть использовано как адрес. Будешь списки реализовывать - поймёшь.
>>1828838 >зачем было выдумывать десятки заумных алгоритмов >Нах эти все супер шифры Ты пишешь другу зашифрованное сообщение: Вечером футбол, возьми пива, зайду в гости. Потом говоришь жене: Вечером пойду к другу смотреть футбол. Она тебе: Будете пить пиво. И ты думаешь: она может читать мою зашифрованную переписку? Или она догадалась? Чтобы быть уверенным что это просто совпадение нужен надёжный шифр(в идеале - идеальный). Ну и ещё чтобы инфа не попала третьим лицам.
В свое время заебался придумывать отмазки чтобы быдлу не давать пароль от своей учётки. Они же такие смелые, ничего не боятся и скрывать им нечего. Да блять, я тоже не боюсь, но вот завтра случится дерьмо и кто виноват? Я сам или долбоёб неосознанно спалил мои данные? А объяснить эту концепцию просто нереально. В итоге быдлан думает: я боюсь потому что мне есть что скрывать. Остаётся придумывать отмазки на ходу.
>>1828860 Просто пояснил т.к. предоставилась возможность. Он же>>1828838 интересуется потому что не понимает. Надеюсь он в будущем не будет заёбывать и просить пароли.
>>1828851 Я про кодировки спрашивал, если записка будет на арабском, она один хуй не сможет прочитать. Я к том что если юзать малоизвестные кодировки, то нахуй вообще эти алгоритмы шифрования нужны.
>>1828867 Ещё вот так можно объяснить. Если можно зашифровать просто, и можно зашифровать в 2 раза лучше. Почему нужно выбирать первый вариант, если можно выбрать второй? Всё. Больше не буду развивать тему. Сорян.
>>1828774 > Инструкция это код операции и операнды Инструкция - это более высокоуровневая сущность. Например, в x86 ты можешь 89 c8 и 8b c1, но выполняться физически будет одна и так же операция. Инструкция задает поведение, опкод - лишь способ записи.
>>1828867 > Я к том что если юзать малоизвестные кодировки, то нахуй вообще эти алгоритмы шифрования нужны. Сколько ты таких кодировок назовешь? Ну пусть пару тысяч, хуй с ним. То есть любой дебил сможет один раз их все собрать и написать скрипт, который за 2^11 попыток (за доли секунды) декодирует то, что ты там нашифровал. На самом деле и без прямого перебора можно тупо статистикой вскрыть, но похуй. При этом если ты воспользуешься любым сколько-нибудь серьезным шифром, то на перебор потребуется уже 2^64 попыток, даже если шифр совсем говно.
>>1828838 Кодировка это алфавит для компьютера. У каждой буквы есть номер, как в языке, так и в кодировке. Если ты знаешь, что текст написан на русском, то нет никакой сложности например узнать код буквы А потому что она самая часто встречающаяся. Сколько не меняй ее код, она всегда будет самая часто встречающаяся.
>>1828867 Перевод естественных языков это гораздо более трудная задача чем просто замена, ее до сих пор до конца никто не решил. Так что компьютер не сможет перевести на арабский сообщение.
>>1829139 При слове "арабский алфавит" меня начинает трясти. Их письменнность основана на лигатурах, а правила для лигатур зашиты глубоко в шрифтах. Легче защиту на игрушке сломать, чем распарсить лигатуры из шрифта и на их основе построить список глифов. Это боль боль боль боль боль боль.
>>1829189 А почему именно из шрифта? У них что, нет какой то одной стандартной кодировки? Почему нельзя составить список соответствия лигатур и исходных символов?
>>1829204 > У них что, нет какой то одной стандартной кодировки? Снаружи, на уровне Unicode, она стандартная. А вот внутри уже ад - в зависимости от позиции буквы она может отображаться разными спосбоами. Так же её вид может отличаться от того, какая или какие буквы стоят перед ней. То есть в алфавите это одна буква, а отображаться она может разными глифами.
>>1828664 >>1828675 Ну я уже даже не вспомню сходу что там было, столько времени прошло. Нашел код для тебя, может он тебе поможет. Это должно быть решение для второй таски. Не очень хочется снова это говно ковырять.
>>1830575 Потому что даже в 32 битном сегментация никем почти не используется. Все сегменты в Винде настроены на 4 ГБ. Сегментация же вроде как придумана была чтобы больше памяти на маленьких регистрах адресовать. Подвид косвенной адресации можно сказать. Если 64 бита регистры, то можно без всяких сегментов адресовать терабайты ОЗУ.
Мне было в свое время интересно, почему винда не использует больше 4 ГБ в 32 битном режиме, если у нее есть PAE специально для этого придуманный?
>>1830598 Спасибо за ответ. В документации пишет что основная причина ввода сегментов - это повышение надежности программ: размещение программы в отдельных сегментах предотвращает к примеру роста стека в код или данные и соответственно перезапись им последних. Насколько сейчас эта проблема актуальна?
>>1830606 Вместо этого сделали защищённый режим. Теперь при загрузке можно заполнить целую структуру, в которой записаны параметры памяти, и процессор сам будет следить чтобы задачи не лазили в чужую память. Винда и Линукс работают в 32 битном защищённом режиме, но 32 битный бывает и не защищённым, это отдельный механизм. Сегментные регистры остались, но в защищённом режиме они имеют совсем другое значение.
>>1830575 > интел отказались от сегментации памяти? Потому что страничная организация целиком покрывает все потребности. А поддержка совместимости добавилы бы больше проблем, чем преимуществ.
>>1830606 > основная причина ввода сегментов Основная причина, по которой интел в 286 решили притащить в защищенный режим именно сегменты — это то, что страничную трансляцию они позволить себе еще не могли. Все эти прогулки по таблицам страниц дорого обходятся. А защищенный режим уже хотелось. Вот и слепили, как получилось. А как только получилось это говно выкинуть — выкинули. Не без помощи амд, конечно.
Здравствуйте, я извиняюсь за возможный 0iq, но не могли бы объяснить - чтобы начать ревёрсить нужен скилл в ассемблере? "Reverse Engineering для начинающих" Начался с не понятной для меня вещей и я дропнул, стоит для начала учить ассемблер?
>>1831593 Конечно. Сначала лучше на С/C++ что-нибудь пописать, если еще не. Потом куришь архитектуру компьютера. Потом язык ассемблера не ассемблер, епт, win32 api желательно, потом уже RE.
>>1748635 (OP) >Ghidra Как это говно хотя бы запустить? В репозитории нашёл только DevGuide.md с какой-то ебической инструкцией, где предлагают наставить всякого говна, затащить пол люнупсы и эклипс в придачу. Там что, нету тупого бинарника, который можно запустить двойным щелчком мыши?
>>1832235 В теории можно, но это долго и муторно - перегеть процессор. Понадобится года три его греть, после того как термопаста высохнет. Других способов нет.
>>1832240 >Как это говно хотя бы запустить? Возьми vpn и скачай билд с ghidra-sre.org (амеры заруливают запросы с русских ip на 403). Дальше запуск ghidraRun, батник или шелл на выбор.
>>1832455 У его процессора вестимо. А скорее у оси, потому как сейчас процессор без 64-бита можно найти только на компе, спрятанном лет 5 назад в кладовку.
пацики, юричева чек, таненбаум архитектура чек, но все еще загадка про ос, про сисколы [syscall]. не пАнимаю как ос работает, сам писать не хочу. че можно имбалансного почитать так чтобы осветили регистры с описателями страниц памяти, виртуальные адреса поподробнее. ну типа как у процесса и где хранится инфа о своих страницах памяти. крч таненбаум как-то частями освятил, но пропасть между ос и железом осталась. че некст фундаментальное про ос можно почитать?
>>1833565 >про сисколы [syscall] Традиционно на старыъ компьютерах системные вызовы осуществлялись через инструкции прерывания. Это позволяло сохранить контекст вызывающей программы. Затем добавились новые расширения для системных вызовов, но пока ты не поймушь суть системных вызовов, лучше не лезть в дебри.
>>1833624 >Это позволяло сохранить контекст вызывающей программы. Программное прерывание прежде всего позволяло не привязываться к точке входа в системный вызов. Оно было универсальным на любой версии ОС.
>>1833592 чекну, спасибо >>1833624 я выкупаю что такое прерывания для проца, но не понимаю как прерывания обрабатывает ос. типа проц может номер прерывания сопоставить с началом функции, а ос че как вобще постоянно мониторить прерывания програмно. мутная хуйня какая-то.
>>1833673 >я выкупаю что такое прерывания для проца, но не понимаю как прерывания обрабатывает ос. типа проц может номер прерывания сопоставить с началом функции, а ос че как вобще постоянно мониторить прерывания програмно.
Не позорься. ты НЕ ПОНИМАЕШЬ КАК РАБОТАЮТ ПРЕРЫВАНИЯ. Пока не поймёшь - не возращайся.
>>1833673 Прерывания на то и прерывания, что их мониторить не нужно. Они вызываются сами, когда какой-нибудь блок типа usb даст процессору соответствующий сигнал.
Нажал кнопку - процессор все бросил, вызвал функцию - ос, которой принадлежит эта функция, сделала все что нужно и вышла из прерывания - процессор продолжил там где остановился.
>>1833685 так да, и если аппаратно понятно как это может работать, то в случае с прерываниями для ос не понятно. т.е. если программа напрмер пишет чето в порт для прерывания, то окей, понятно как это можно быстро поймать и обработать, но если сама ос обрабатывает какие то прерывания, то не понятно ой бля я крч дебич, не выкупаю, почитаю, мб пойму. но тип апаратные прерывания мега понятные, а как ос обрабатывает исключения и напимер такую хуйню как int 3 или int 21h не понятно. ну типа как вызвать прерывания в программно если их не пониторить??
>>1833690 Программные прерывания точно так же работают, просто сигнал даёт не внешний модуль а команда int. Команда int - процессор бросил эту ветку - вызвал что там по номеру и так далее, потом вернулся и дальше пошел исполнять то что после int.
Для программы которая вызывает прерывание, отличие от обычного вызова минимальное.
>>1833699 внешние прерывание значение, проц может его сопоставить с массивом функций обработчиков. для внешнего хардварного прерывания есть ножка, при наличии на которой сигнала проц ищет функцию обработки. а с программными, ну окей, проц исполнил инт, пошел искать че делать ровно так же, но как ос получает сигналы и чето делает пока не выкупаю. крч пропасть между хардваре и ос. я не могу обяснить толком че мне не нрав в этой схеме, но как-то мутно непонятно
>>1833703 ОС не получает сигналы. ОС просто пишет адрес своего обработчика (или дескриптор в защищенном режиме x86, но похуй, все равно адрес) в массив адресов/дескрипторов, процессор просто берет номер прерывания (похуй, любого, что хардварного, что программного), просто читает из этого массива адрес по индексу и передает управление туда (ну там контекст сохраняет, другие прерывания запрещает - это само собой). Просто тупо делает call far (плюс-минус особенности защищенного режима). Механизм настолько одинаковый, что в реалмоде тебе нужно прикладывать усилия, если ты хочешь как-то отличить call far адрес_обработчика от int номер_вектора от IRQ с тем же вектором.
>>1834143 В UEFI чексуммы и подписи. В биосах чаще всего были только чексуммы. В любом случае, нужно патчить как минимум проверку в прошивалке или шить, подключившись программатором напрямую. Но для разлочки меню в UEFI часто можно без всего этого обойтись, узнав переменную, которая активирует меню и выставив ее через шелл. Загугли "uefi setup_var" без кавычек.
>>1833673 >я выкупаю что такое прерывания для проца, но не понимаю как прерывания обрабатывает ос. типа проц может номер прерывания сопоставить с началом функции, а ос че как вобще постоянно мониторить прерывания програмно. мутная хуйня какая-то.
Сисколлы в лялексе реализованы через программное (его еще называют синхронным, так как происходит в так процессора, в отличие от аппаратного) прерывание. Есть такая штука, как ABI (Application Binary Interface), по конвенциям которого вызываются функции, сисколлы, используются определенные регистры для, например, возврата значения из функции и т.п. ВНИМАНИЕ! Нижеперечисленное релевантно только касательно архитектуры x86_64. По ABI, перед вызовом сисколла заполняются соответствующие регистры (в х86-64, например, в rax записывается дескриптор обработчика системных вызовов), когда все соответствующие регистры заполняются, вызывается программное прерывание через инструкцию syscall (int 0x80 в 32-битной версии). Тем самым, вызывается обработчик прерывания, дескриптор которого сигнализирует ядру, что данное программное прерывание - это сисколл. Через регистр rax ядро выясняет какой именно сисколл вызвался, но а другие регистры содержат аргументы сисколла. Сам код сисколла находится в пространстве ядра, поэтому происходит context switch между пространством пользователя и пространством ядра, чтобы CPU смог исполнить привелигированный код. После выполнения кода сисколла, происходит context switch из ядра обратно в юзерспейс.
как вы думаете с чего начать изучения asm'a? какие книги, видео глянуть (желательно на русском языке) первоочередной целью этого изучения является удовлетворение собственного интереса
Щас узнал от знакомого, что его бывшие коллеги раньше работали в каспере реверсерами и теперь некоторые из них невыездные в сша т.к. какие-то их законы нарушили. Чё за хуйня? Кто-нибудь в курсе что не нужно реверсить чтобы такого не случилось?
>>1837223 Не не выпускают, а не впускают. Именно штаты чего-то их захейтили. Типа они без лицензии что-то реверсили и их копирайтеры засудили. Или что-то похожее. Может закладки или уязвимости искали. Я вообще не в курсе. Сейчас в акронисе говорят толпа таких работает.
Оказалось что в русском алфавите 33 буквы, а в английском 26. То есть писать упаковщик нет смысла, надо куда-то деть ещё 6 глифов. Решил задействовать не использующийся сектор диска. Бляяя, cd-rom psx это АДЪ, никто не знает как он работает, это блять живой организм. Почти две бессонные недели убил на поиск решения, а решение оказалось простым(тоже с чтением сектора). Прокрастинация работает даже если чтото делаешь.
Коммунист, ты гной на теле человечества, ты шизофрения человечества, ты рак человечества. Ты не знаешь даже чего хочешь, но знаешь как нужно делать другим чтобы добиться то чего они хотят. Они хотябы знают чего хотят, а коммунист это простой верун во всё хорошее, только он один хочет чтобы всё было хорошо, а другие хотят чтобы всё было плохо ессно. Ненавижу коммунистов, хочу чтобы они все сдохли уже и не позорили человечество своими хотелками и своим существованием.
>>1837620 >Почти две бессонные недели убил на поиск решения, а решение оказалось простым(тоже с чтением сектора). Прокрастинация работает даже если чтото делаешь.
Нифига себе, если ты убил две бессонные недели, и это называется прокастинация, то страшно подумать на что ты способен когда поборешь прокастинацию.
>>1838036 Мои наблюдения, как новичка. Чтобы побороть прокрастинацию нужно понимать, что неправильные действия это тоже результат. После того как сделаешь кучу ненужной работы, понимаешь что нужно сделать. И какбы вся проделанная ненужная работа становится не такой уж и ненужной, потому что без этой "ненужной" работы я бы не узнал нужную работу. Но всё равно это ебёт - хуля я такой никчёмный, почему сразу не догадался что надо делать вот это, это же очевидно, зачем понаделал столько всего ненужного.
Та эта хуйня и юридически ничтожно, по прецендетному СШАшному праву можно всё реверсить, если чисто. Просто Майкрософт, похоже, настолько крупный зверь, что им похуй вообще на всё. Делают что хотят по праву сильного. Так-то их хуйню реверсить законно.