В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (RE).
Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда. Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.
Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.
Инструменты для RE: Дизассемблеры: 1) IDA Pro 7.2.torrent 2) IDA Pro 7.0.torrent (x64 only, для XP нужно патчить PE + вылеты) 3) IDA Pro 6.8.torrent 4) IDA Pro 5.0 - бесплатная версия для некоммерческого использования 5) Radare 2 - наконец прикрутили гуй, но по прежнему нужна только клиническим, не умеющим в скачивания торрентов, или пользователям альтернативных ОС 6) Ghidra для любителей анальных зондов от АНБне такие уж они и анальные 7) Остальное
Господа, может кто-нибудь опознать, что это за странная FAT-подобная хрень? Некоторые байты совпадают с ожидаемыми для BPB, но непонятный алфавит в середине не вписывается никак и никуда. Может кто сталкивался?
https://niemand.com.ar/2020/01/ Этот же пчелик >>1583238 потрошит XignCode3 античит так понимаю, какое-то древнее решение для таких же древних корейских ММО-дрочилен..
>>1589167 Не понял, он что просто взял их драйвер и сразу же закинул в иду? Разве он не должен быть хоть как-то обфусцирован? Тем же VMP накрыть можно было.
diff между двумя сишными программами, вторая из которых вычисляет разность квадратов буквально — aa - bb, а первая — по формуле сокращенного умножения (a + b)(a - b). При профилировании не удаётся обнаружить разницу в быстродействии. Почему? Читнув стаковерфлоуца, я естественно нихуя не понял деталей, но по всей видимости современные процессоры просто очень быстро умножают (за 1 такт вроде). Это верно? И если да, как это реализуется в двух словах?
>>1592101 На последнем БлэкХате АНБ-шные разрабы в своем докладе явно дали понять, что открытая лицензия - это не щедрость, а способ приучить к их поделию новых реверсеров ясен перец за счет потенциальных IDA юзеров, ну и халявные коммиты от комьюнити, вместо попыток догнать иду за свои деньги. >>1593806 Анализ какой-то малвари в гидре, насколько я помню. Вместо Эдди в шапке также должен был быть сэмпл в IDA, но Абу-поделие наебало меня с превьюхами, так что сорян. Так-то я не фанат NSA, просто в этой области кроме софта от алчного Ильфака и подсматривающего дяди Сэма альтернатив не видно.
>>1593483 >При профилировании не удаётся обнаружить разницу в быстродействии. А gprof что говорит? Конечно не эксперт, но в твоем листинге вроде все как ты и описал: - в первом случае вычли/сложили, результат перемножили; - во втором оквадратили и вычли;
>>1594002 >но в твоем листинге вроде все как ты и описал Я об этом и говорю. Во втором два умножения, но он не медленнее первого (умножение — это ведь цепочка сдвигов и прибавлений к аккумулятору?). А в асм я полез только чтобы удостовериться, что это не компилятор выёбывается и оптимизирует. Кстати, а таки почему он не оптимизирует математику? Ладно сегодня, допустим суперскалярные процы, но ведь в восьмидесятых при работе с какой-нибудь криптографией разложение по формулам сокращенного умножения на уровне компилятора могло здорово выручить. Вероятно где-то в более высоких флагах оптимизации это есть.
>>1594156 Хм.. Наверняка я не правильно понял, что именно ты хочешь, но может быть эта табличка окажется полезной? Там всякие latency, throughput, потраченные uOps-ы для разных инструкций под кучу архитектур: https://uops.info/table.html
>>1593483 Я мимокрокодил и не эксперт, но во-первых в современных cpu несколько alu (4?), т.е. у тебя могут параллельно считаться (a x a) и (b x b) потом складываться, аналогично (a+b) (a-b) и потом перемножаться, в обоих случаях по времени будет 1 сложение и 1 умножение. Во-вторых, там какая-то магия побитового унможения в столбик, вроде бы. Что такое бинарное умножение в столбик? Это сумма сдвинутых на 1 бит копий одного множителя, на соответствующий бит из другого множителя. Пример из вики 1011 1110 ======== 0000 1011 1011 1011 ======== 10011010 Как это делается в схемотехнике? Сдвиг это очень просто, подключаешь выход проводом к следующему входу сумматора, а умножение на 1 или 0 будет просто маской пропускать или не пропускать ток.
>>1594417 >во-первых в современных cpu несколько alu (4?), т.е. у тебя могут параллельно считаться (a x a) и (b x b) потом складываться, аналогично (a+b) (a-b) и потом перемножаться, в обоих случаях по времени будет 1 сложение и 1 умножение Тут да. >там какая-то магия побитового унможения в столбик, вроде бы Я ведь так и сказал "цепочка сдвигов и прибавлений к аккумулятору". Но всё равно что такое один раз сложить и что такое сложить n раз, где n - количество единиц в одном из множителей. И это у тебя ещё пример несложный, а что если у нас 0000ffff * 0000ffff, где будет охуиллиард carry скапливаться в одном разряде (и потому не получится всё проссуммировать без хранения промежуточных результатов)? Но так или иначе, концептуально я вижу возможность это реализовать, а раз я вижу, значит видят и инженеры. Короче зависит от архитектуры, если это какой-нибудь спектрум или восьмибитная приставка то мы говорим бизнес.
>>1594417 > Во-вторых, там какая-то магия побитового унможения в столбик, вроде бы Не совсем так. Есть алгоритмы слегка быстрее (Бут тот же), их и используют. И да, все считается в железе и параллельно, места на кристалле требуется много, поэтому в древних чипах умножения могло не быть вообще.
>>1594980 Ну я говорю не эксперт, с ходу не нагуглил какие алгоритмы используются. Бут может и не используется, он же для каких то доисторических мамонтов. К тому же написано, что он выполняет 2-3 цикла. А анон писал, что вроде за 1.
Ананасики, хочу вкатиться в реверсинг и поиск уязвимостей в прошивках (мобилы и прочая эмбедщина). Есть годные источники для сабжа, желательно на английском, офк?
О, годная тема треда, задам вопрос здеся. Пишу компилятор с нуля, направьте в какую-нибудь конкретную спеку, как сгенерить простейший debug инфо для gdb. Читал оф. "документацию" про дварфы-стабсы, в целом это понятно, но блджад нигде не написано конкретно, как бинарно должен выглядеть дебуг-файл. Если смотреть на высеры из-под gcc то это что-то типа coff файла, но секции в нём некорректные, заполнены хуйней-малафьей. Помоги, анон.
Что, помимо написания драйверов, можно еще делать на АСМе? Поступил в универ, начали изучение ассемблера. Так интересно мне еще никогда не было. Хочу дальше копать в этом направлении, только надо понять чем можно будет заниматься по итогу за ежемесячное денежное вознаграждение.
>>1597130 В драйверах ты максимум используешь ассемблерные вставки, бОльшая часть кода драйверов написана либо на Си, либо на С++ (если говорим про юникс-подобные системы, то на Си).
На асме пишут только бутлоудеры и архитектурно-зависимые подчасти операционных систем. В подавляющем количестве случаев байтоебством занимаются на си и крестах а хипстеры еще и на расте, а так асм для реверсинга нужен, и то не всегда нужно читать чистый асм, так как есть декомпиляторы
>>1596531 Так руками же. mov [state.rax],rax и так далее. pushf/pop [state.rflags], fstsw, fnstcw, fnstenv, stmxcsr вот это все. Никакой магии не существует. Системные механизмы делают точно так же.
С другой стороны: > Вот мне например понадобился свич контекста У тебя есть те самые системные механизмы. Те же фиберы в винде, SetThreadContext, через исключения еще можно сохранять/восстанавливать. В сишечке setjmp/longjmp тоже за тебя уже написали. Интринсики опять же. Писать на асме не так уж и нужно хотя на асме все же приятнее - весь контроль у тебя, и делать что-то странное - проще.
>>1597435 > Так руками же Тогда rsp сломается, мне его тоже сохранить нужно. Можно конечно его вычислить, но как то плохо попахивает такой код (пикрил). Или и так пойдет?
> У тебя есть те самые системные механизмы Часть регистров затрут же. Да и ходить в ядро слишком накладно. Исключения хороший вариант, но тоже дорого.
>>1597435 > Те же фиберы в винде Вот в эту вещь тоже не въезжаю. Это вообще что? Сколько читал в про эти волокна, так и не понял что это такое и как их использовать.
>>1597459 > Тогда rsp сломается, мне его тоже сохранить нужно Как сломается? Ты его изменишь, да, но при восстановлении все вернется, как было.
> Или и так пойдет? А зачем в стек-то? Ты же собрался переключать контекст, так и храни его отдельно.
> волокна, так и не понял что это такое и как их использовать Эта штука как раз для переключения контекста (есть еще user-mode scheduling, но оно тяжелее). Фибер - это выделенное место под контекст и выделенный собственный стек, больше там нет нихуя. При переключении (SwitchToFiber) с фибера на фибер текущий контекст сохраняется в стейт первого фибера, из стейта второго фибера загружается новый контекст (т.к., это включает rsp, то и стек переключается). Все происходит в юзермоде, достаточно быстро. Можно делать, например, корутины: https://nullprogram.com/blog/2019/03/28/
> Эта штука как раз для переключения контекста Значит это то, что мне нужно, но насколько я понял, у фиберов нет интерфейса для модификации контекста?
Что-то я запутался совсем. Мне нужно сохранить контекст во время вызова моего колбека системой, далее передать управление на мой обработчик с указателем на структуру сохраненного контекста, проанализировать контекст возможно модифицировать и восстановить его. Как это правильно реализовать?
>>1597559 > нет интерфейса для модификации контекста Нет. Ну точнее, у тебя есть указатель на структуру, но она хоть и известна, но не документирована. > Мне нужно сохранить контекст во время вызова моего колбека системой: Ааа, ну ты все правильно делаешь тогда, тогда можно и в стек. Или можешь систему заставить делать это вместо тебя (через SEH или VEH - классика): https://pastebin.com/raw/CFWb3aXw
>>1598786 То бишь, дыра в софте в пространстве пользователя == дыре в прошивке, которая под ОС крутится? Вопрос в разнице опасности и импакта от эксплуатации таких дыр.
>>1598795 >То бишь, дыра в софте в пространстве пользователя == дыре в прошивке, которая под ОС крутится? где я это сказал или хоть что-то подобное? >Вопрос в разнице опасности и импакта от эксплуатации таких дыр. Их тяжелее фиксить,затрагивают большее кол-во машин,и могут приводить к более сильным последствиям Ты такой ответ хотел получить?
>>1598795 Допустим есть дыра в прошивке их там и так дохера, что дальше то? Такой баг энивей удаленно не проэксплуатировать. Баги нужно искать в кривых вендорских тулзах, которые имеют доступ к прошивкам, SMM и прочему.
>>1598716 > Чем могут быть опаснее дыры в прошивках, чем дыры в обычном софте? Заставить юзера обновить прошивку (или даже просто обновить прошивку) может быть гораздо сложнее, чем обновить софт на обычном девайсе.
>>1599419 > с последющим откатом на предыдущее значение Да. Но с проверкой, что int3 воткнут именно отладчиком. А еще есть, например, debug-регистры. В них можно просто записать адрес и ничего не патчить.
О, заебок, наконец-то мой говноекзешник стал валидным и может показывать меседжбокс, это прогресс. Всем спосибо, кста дебаггер https://x64dbg.com/ пиздатый, можно в шляпу добавить.
Кстати про int3 Сейчас экспериментирую со службами. Просто так в иде их не запустить. Нужно установить и атачить дэбагер. А чтобы она в нужном месте остановилась перед атачем приходится вставлять туда бесконечный цикл. Можно ассемблерной вставкой инт3 туда впихнуть и чтобы дэбагер сам потом с нужного места запустился? Как такая вставка будет выглядеть в msvc?
>>1600944 > Можно ассемблерной вставкой инт3 туда впихнуть Можно. DebugBreak(), или можешь напихать всяких int3 или ud2, но разве студия научилась в ассемблерные вставки для 64-битного кода?
> чтобы дэбагер сам потом с нужного места запустился Существует вот такой говнокод, который в 2020 требует множества мелких правок перед использованием: https://pastebin.com/raw/9jZUPfae
Ананасики, всем хэллоу уорлд. Тут есть аноны, которые разрабатывали прошивки (на си или крестах - не суть важно)? Хочу вкатиться в разработку прошивок для умных девайсов и прочей имбэдщины (не спрашивайте почему я такой ебанутый, просто люблю лоу лвл, и к тому же, у меня в стране это востребовано, поэтому голодным не должен остаться). Что посоветуете почитать? Насколько нужно быть матерым в железе? А то я из мира софта, а о железе знаю только названия нескольких интерфейсов вроже uart, spi, i2c, jtag... Я так понимаю, что разработка прошивок - это 85% времени втыкания в datasheet девайса, под который пишется прошивка, но тем не менее, хочу какой-нибудь мало-мальски структурированный источник информации по сабжу. Ну и имеются в виду прошивки, которые крутятся на борде c процессором, а не без оного (слышал, что есть разница, ибо там, где нет проца, все пишется на fpga или верилоге, могу ошибаться). О себе вкратце - студентота, знаю Си, кресты, немного внутренности Линукса (и вообще Линукс няшка, да, я линуксоид), асм х86 и немного знаю асм ARM, имею опыт в базовом реверс-инжиниринге. Ну и сети, алгоритмы, структуры данных, офк, тоже. После энного кол-ва опыта обязательно захочу вкатиться в безопасность прошивок (реверсинг и эксплуатация). Но без опыта в разработке оных, я полагаю, смысла сразу прыгать в инфосек сей отрасли не имеет смысла (или я ошибаюсь?), поэтому и прошу о помощи. Дай наука здоровья всем, кто ответит.
Смотрите какая сочная вакансия в др. веб появилась. А я все боюсь на вакансию джуна ковыряльщика малвари откликнуться. Так никто и не узнал, какую они вилку предлагают?
Собственно, как детектить изменения в переменной из юзермода с помощью прерываний? Я вполне могу чекать её бесконечным циклом раз в секунду, но это глупо и неинтересно. Я бы даже не спрашивал, но тяжело самому доки найти.
Если что, делаю это из исходника на крестах, который потом компилируется и хукается через одну библиотеку. В распоряжении адрес глобалки и куча функций в неё пишут, не одна к сожалению.
>>1604961 Установить hardware breakpoint на write event по адресу. Загвоздка в том, что их нужно ставить на каждый поток отдельно, максимальное количество брекпоинтов - 4.
>>1605330 > измеряет результат выражения, которое даже сраный v8 осиляет выкинуть за ненадобностью > не знает, что каждый первый компилятор в состоянии сам заменить % степень_двойки на & (степень_двойки - 1)
>>1604961 >>1605299 > максимальное количество брекпоинтов - 4 Существует еще вариант c PAGE_GUARD/PAGE_NOACCESS: - ставим странице, содержащей интересующую переменную флаг PAGE_GUARD; - ловим STATUS_GUARD_PAGE_VIOLATION (при этом ОС сама сбрасывает PAGE_GUARD), обрабатываем доступ, как нам нужно, взводим TF, продолжаем выполнение; - ловим STATUS_SINGLE_STEP, обрабатываем значение переменной после доступа (если нужно), возвращаем PAGE_GUARD (если это была наша GUARD_PAGE, а не сама программа в них играет, и не ОС стек расширяла), чтобы продолжать и дальше ловить доступы, продолжаем выполнение.
Это гораздо медленнее, чем вариант с hardware breakpoints, потому что у нас два исключения на один доступ. Мы работаем на уровне страниц, поэтому у нас обязательно будут false positives, тысячи их. Мало того, если переменная невыровненная и пересекает границу страницы, приходится манипулировать сразу двумя страницами, что не прибавляет коду ни читаемости, ни быстродействия. Ну и для стабильной работы всего этого придется повозиться, особенно при попытке сделать это внутри процесса через VEH, а не через отладчик. Но за неимением лучшего юзермодные отладчики под виндой примерно такое и делают.
>>1605569 Ага. Вроде уже столько лет прошло, а механизмы все те же. Скорее бы уже к виндебагу гипервизор прикрутили с хупер-бряками, вот это годно будет.
>>1605716 > Вроде уже столько лет прошло, а механизмы все те же Да есть и новые, с инструментированием и вот этими вашими гипервизорами. Это просто я старый.
Она была незамечена с 2003 года, блять. Тупо скрипты+фаззинг на сильном компе в стэнд бае и после краша после Х времени разбор оного? Вручную такое найти - это же блять совсем анриал
>>1611736 Санитайзером такой баг скорее всего можно отловить. Вот посмотри: https://www.youtube.com/watch?v=NlfZG2wTPZU Там еще пару видосов про фаззинг и поиск багов должно быть. Собсна 4-5 лет назад можно было руками ловить, ибо дыр реально было много, но теперь уже лавочку прикрыли.
>>1612224 Да, теперь хакерам/исследователям желательно уметь писать софт под определенные нужды и под определенную прогу, чтобы искать дыры. Но соль в том, что дыры всегда будут, лол. Я про ошибки, связанные с памятью, что происходит только на уровне системного программирования (ибо всякие ваши джавы и пиздоны иммунны к переполнениям, только если не сам интерпретатор имеет подобную ошибку). Даже если мы представим манямирок, где раст заменит си и кресты в их сферах применения, все равно много низкоуровневого кода, написанного на расте, требуют использования unsafe, что возвращает проблемы с ошибками работы с памятью. Замкнутый круг. Вдовесок, математически и логически невозможно написать софт, который будет со 100%ой вероятностью определять исполняется ли другая программа корректно или нет, это доказал Алан Тьюринг еще в 1936 году - проблема остановки, кому интересно. И это не открытый вопрос ака есть ли равенство между классами P и NP, а доказанная невозможность. Равно как невозможно доказать, что 2 + 2 = 5, потому что это математически неверно. Так что, от исследователей теперь требуется знание писать сложные, умные и специфичные фаззеры. Решить эту проблему раз и навсегда не получится никогда, но усложнить - да. Что и произошло, собственно, за последние лет 15.
>>1612353 > декомпилировать его и собирать заново mcsema
>>1612598 > декомпилятор даже массив не может нормально объявить А ты можешь? А как ты определил границы массива? А ты уверен, что следующая за массивом переменная на самом деле не была элементом этого массива?
>>1612462 Ну конечно не получится, ведь ядра этих систем написаны в бородатые девяностые на сях. Вон даже этот мужик говорит, что у них там аж целых 5 млн. исходных файлов. Вообщем ошибок хватит на всех.
>>1613022 >McSema Из беглого обзора на Хабре я понял,что оно запускается на де факто виртуалке. Мои требования-сборка под ту же архитектуру,но со своими параметрами компиляции(чтобы можно было включить все доступные для моего процессора инструкции). >а ты можешь Могу. Но это будет бессмысленный срач, если разбирать не на примерах. Завтра постараюсь отписать сюда со всеми исходниками.
>>1613060 >легче с нуля переписать Ну вот представь, что я таким образом исполняемый файл игрушечки для дебиловы перекомпилировал,и у меня выигрыш в FPS/памяти/обращениях к диску около 10%. Вынесем за скобки все DRM и античиты. Такие гигантские проекты вроде игровых движков если и переписать с нуля, то к окончанию работы код будет устаревшим и никому не нужным. Так что такой себе вариант.
Недавно узнал, что оказывается помимо TF, есть еще branch trap flag и monitor trap flag, меня интересует BTF, но вот я что-то не могу понять, как его установить на винде, насколько я понял, нужно модифицировать msr.
>>1613060 >Ну конечно не получится, ведь ядра этих систем написаны в бородатые девяностые на сях. Вон даже этот мужик говорит, что у них там аж целых 5 млн. исходных файлов. Вообщем ошибок хватит на всех.
Дело не только в легаси. Дело и в новом коде. Пока код пишет человек, ошибки были, есть и будут. Умудряются уже писать эксплоиты под ошибки в код на педеРАСТА, о чем ты, анон. Системное программирование, где ты дрочишь память напрямую и жонглируешь указателями - это априори дыра в безопасности, по определению. Чем дальше по сложности от хэллоуворлда уходит софт Х, тем выше шанс бага, причем ебашит оно по экспоненте. И здесь нет никакого окончательного решения, можно только усложнить взлом, на случай если находят дырку, но избежать багов полностью - нельзя. В вебе даже, блять, есть куча багов. Они другого плана, но там даже фреймворки слабовато спасают. Как находили sql injection и xss, так и находят, и будут находить, лол. При этом на таком уровне дыру задетектить куда проще, нежели в бинаре. Короче, это вечная война, вечная игра в кошки-мышки.
>>1613137 10% взяты наобум же, нужно проводить исследования. К тому же оптимизации могут затрагивать одновременно разные части программы вроде ввода/вывода и расчётов,складываясь. Да и не такой уж маленький показатель,если минимальный fps поднимется с 24 до 27. Оверлокерам такой результат по нраву
>>1612598 > Ага, ругается на всякие pointer32 и signed char[4] pad. Ну то есть вообще ад, декомпилятор даже массив не может нормально объявить. Декомпилятор никак не сможет понять какие оптимизации были применены. Декомпиляция выше асамблера не детерминирована.
>>1584716 (OP) Что можно и нужно писать на асм в 2020 году? Понятно что изучение асм дает буст к пониманию архитектуры процессора. Но как практический инструмент асм пригоден для чего то?
Буквально один день вкатываюсь в ассемблер. Не могу понять, так ассемблер не дает полного контроля над процессором? В смысле, почему сложение это одна операция? Сложение же явно не выполняется за один такт процессора. Т.е. ассемблер просто говорит процессору, что сделать а он уже сам решает как ему это сделать?
>>1613355 Бутлоудеры, часть кода прошивок, маленькая архитектурно-зависимая часть кода ОСей, шеллкоды - это если мы говорим о НАПИСАНИИ кода на языке ассемблера.
Не думай, что тебя возьмут на работку, если ты знаешь только асм, там вагон других навыков нужен. Короче, он нужен только эмбедщикам и реверсерам, и то как вспомогательный, а не основной, инструмент.
>>1613491 Гипервизоры забыл. Самое ходовое сейчас.
> Не думай, что тебя возьмут на работку, если ты знаешь только асм, там вагон других навыков нужен. В Dr. Web и прочие малварские конторы берут на стажировку, нужно только знать ассемблер.
>>1618823 хуйню полную платят 40-70к(70 в пике) проще в малварщики пойти,со сраного криптолокера можно за пол дня столько сделать при условии что он пишется за вечер под бутылку пивка
>>1619319 а что майору?по какой статье можно сесть за слова о том что какие-то преступники хорошо зарабатывают? и в каком моменте хуйня?Видел отчеты макафи,сентентала и прочих?
>>1619396 Много чего нашить можно просто к словам. Ты в коме был что ли? Там вон за твиты с угрозами отъезжают на 5 лет, а ты за малварь агитируешь еще так нагло. Ну и в треде реально сидят майоры, если что, я уже говорил что были инциденты.
>>1619408 угрозы силовикам и малварь все таки разное,а на пк у меня из нелегального максимум ида крякнутая. и я не агитирую за малварь,я агитирую за то чтобы не проебывать жизнь учя ОСЕНБЛИР и работая потом за 40к,уж лучше тогда в программисты про инцеденты подробнее можно?
>>1619458 асм и реверс для души.Реверсить в удовольствие и сосать хуй на однообразной работе за 40к это разные вещи Подробнее это не повторить сказанное,а,например,дать пруфлинк или хотя бы обьяснить че там этот анон просил сделать
> Допустим, я отреверсил в иде приложение, все красиво, все читабельно, вдруг выходит обновленная версия этого файла, как по-быстрому применить все изменения из первого файла во второй? Не заново же мне пердолить переименования итд. Отвечаю на вопрос из прошлого треда. BinDiff - позволяет сравнивать файлы и переносить символы из одной базы в другую.
>>1624857 В винде PAGE_GUARD используют, чтобы стек комитить, и разработчики решили, что не хотят путаться при отладке. На самом деле это фактически одна хуйня, им просто заняться нечем. Лучше бы браузер писали.
>>1626469 Ты бы лучше рассказал, где ты это взял. Я вот вижу ebfe90 (jmp $; nop) в начале, чтобы никто не мог с этого случайно загрузиться. Еще вот этим "непонятным алфавитом" (просто возрастающая последовательность байтов начиная с 0x80) просто нахуй затерли BPB, а потом еще флипнули некоторые биты. И еще по 0x00e4 явно какие-то офсеты или даже скорее адреса в памяти. Выглядит как образ фирмвари какой-то, которому зачем-то придали сходство с FAT. И подозреваю, что это сделано специально для того, чтобы ты спросил попытался смонтировать, не смог и отъебался от файла.
Шалом! Многие читатели спрашивают, неужели можно кинуть элиту андеграунда и спокойно тратить шекель. Наш ответ - нихуя подобного. Наши люди доложили о поимке известного кидалы ВОЛОДИЯ (он же володуа, володя, вовка, вова_пассив_1992). Моар инфы по гиперлинку http://mvd.ru/news/show_92517/
>>1626793 > Выглядит как образ фирмвари какой-то, которому зачем-то придали сходство с FAT. И подозреваю, что это сделано специально для того, чтобы ты спросил попытался смонтировать, не смог и отъебался от файла. Это и есть кусок файла фирмвари для одной узкоспециализированной железки за поллимона. Есть большое желание найти какой-нибудь дебажный интерфейс, консоль, UART, ещё что-то. В дампе есть строки, характерные для отладочного вывода, так что он скорее всего есть. Знаю, что железка работает на процессоре Blackfin, больше пока ничего непонятно. Опыта в таком просто нет совсем.
>>1627732 > UART Так это... фоткаешь плату, идентифицируешь чипы, какие сможешь, тыкаешься осциллографом, страдаешь. Что тебе прошивка-то даст? Номер ноги там не написан.
>>1627931 > Что тебе прошивка-то даст? Да я понимаю, что в этом вопросе мало что.
А так с год назад, копаясь в прошивке другой, чуть менее дорогой железки, я обнаружил мастер-пароль. Да, во всей линейке устройств того производителя была отдельная пара логин/пароль, нигде не упомянутая и неотключаемая, и разумеется, дающая админские права. С учётом того, что многие девайсы торчали вебмордой в интернет, можно было наворотить дел. И, к сожалению, мне не удалось поиметь с этого ничего, дело было не в айтишной сфере, а производитель начал вежливо мне угрожать. Впрочем, мне очень понравился сам факт того, что я нашёл реальную дыру, через которую можно было заовнить тысячи устройств.
>>1628112 С работы, очевидно. У меня там много всякого. К сожалению, деталей дать не могу, даже по маркам. Это оборудование закупает 2.5 компании на всю страну, диванон будет мгновенный.
Весм прив в этом ЧАТЕ. Как грамотно вкатиться в RE игр, античитов? Бля, чисто мысленно балдею с такой хуйни, что можно взламывать приложухи, которые другие ребята криптят. Есть база асм-а, опыт написания читов для кс-гей на плюсах. Но что касается реверс - просто нереально приступитЬся, хуй знает за что хвататься, в том плане что видишь дамп от Иды, видишь декомпилированные функции и хуй знает че делать, т. К. нихуя не понятно. В закрепе есть книжки, только вот чекаю их и или неинтересно (=просто) или совсем пиздец конечная(=сложно).
гцц/клэнг выдает ассемблерный файл, где куча всякого треша вроде .cfi_def_cfa_offset 16. Оно нужно для дебаггеров или это охуенно важно для дальнейших этапов компиляции?
>>1629804 Рано тебе игры реверсить, книга в шапке обязательна к пониманию от и до, читай, пиши код, изучай выхлопы популярных компилей, пользуйся отладчиком.
>>1631762 Это ты видимо не реверсил, шаблоны в понятный ассемблерный листинг разворачиваются, а виртуальные таблицы содержат метаданные. Высокоуровневые абстракции волшебным образом исчезают во время компиляции бинаря.
>>1631792 >виртуальные таблицы содержат метаданные Это ты про RTTI? Так это не всегда есть и в большинстве случаев отрубается. Ну вот и получается, что в итоге на виртуальную таблицу 1 xref на весь дамп, и то в конструкторе каком-нибудь и все. В итоге все функции вызываются в виде call qword ptr [rax + 0x228]. Никаких ссылок, нихуя нет и что делать то бля.
>>1631792 > шаблоны в понятный ассемблерный листинг разворачиваются Да? Точно не в два десятка разных листингов?
> Это ты видимо не реверсил Я реверсил. Выходит несколько месяцев на средненький бинарь, сколько ты его не автоматизируй. Можно ли реверсом убить молодость? Да на него жизнь убить можно!
>>1631888 > RTTI? Так это не всегда есть Да, лежат там какие-нибудь Exception и YobaException, и больше нихуя.
Господа, а вы получаете моральное вознаграждение за то, что ковыряетесь в чужих продуктах? не смущает ли вас то, что многие реверсеры это ребята с двумя классами церковно-приходской школы, которые занимаются реверсом только потому, что времени на него потратили много, а больше ничего не умеют?
>>1632278 Еще вопрос: не является ли для вас реверс бегством? Ведь если человек чем-то занимается, то это или его хобби, или способ заработка. Для чего вам такое хобби, если можно писать свой продукт?
>>1632424 Скорее всего, анон о реверсинге судит по всяким там CTF. Или патчит защиту уровня if (not_registered) exit(1).
>>1632410 > Значит ты не знаешь сам чего ищешь в бинаре Ты не поверишь, я там код ищу. Много кода, который нужно восстановить. Например, парсер какой-нибудь проприетарной БД, у которой файлы состоят из битовых потоков чуть более, чем полностью, а бинарь примерно настолько же состоит из множественного наследования. И > за вечер-два под пивко я даже свеого кода столько не напишу, а ведь чужой еще и реверсить нужно.
>>1632439 Ай блять не пизди давай про эту десятиэтажную бизнес логику. Все по итогу сводится к подобному: > if (not_registered) exit(1). Вообщем не можешь ты в динамический анализ, видимо сидишь строго в дизасме и ковыряшь все подряд.
Собсна, что имеем - вызываем calloc, который должен вернуть указатель на массив размером 64 байта (каждая ячейка = 1 байт). По конвенции, в х84-64 значение вызванной функции помещается в регистр rax. Отлично, здесь мы видим, то rdx копирует указатель на этот массив, но дальше нет никакой переменной, которая может хранить этот адрес! То бишь, он есть только в регистре rdx & rax, дальше там есть инструкции, где сравнивают их значения, а потом идет прыжок в какую-то пизду и все. Такое ощущение, что в сорце (у меня его нет) там каким-то раком вызвали calloc, не присваивая возвращаемый указатель ни к какому указателю, который хранил бы это значение. Втф?
Забейте, я кусок обоссаного и никчемного дауна, там была матрица (указатель на указатель) и возвращаемый каллоком указатель хранился в первой ячейке массива указателей.
Может кто-нибудь помочь в правильном составлении соглашения о вызове одной функции, сам я ничего не понимаю, но очень хочется с ней взаимодействовать. Эта функция не соответствует дефолтным THISCALL, STDCALL, CDECL. Она очень маленькая. Знает кто-нибудь что с ней не так?
>>1635194 >>1635237 Хотя... ret 4 то я и не заметил. Что-то странное, напоминает возврат структуры через скрытый указатель, но даже в этом случае было бы ret 8. Первый аргумент - это какой-то this? Что за бинарник, компилятор?
> очень хочется с ней взаимодействовать Ты всегда можешь сделать динамические или статические трамплины (адаптеры) и ни о чем не думать.
>>1635237 >>1635296 Это бинарник CS:GO сервера, в частности главная динамическая библиотека, где и происходят все главные вычисления. Пытался вызывать ее самостоятельно, делать хуки (Pre, Post), но итог краш процесса. Вряд ли делая PreHook ret имеет значение, если только Post, так что дело скорее всего в аргументах.
>>1635304 Эта функция должна принимать указатель на игрока (this) то есть она в классе определена и возвращать так же указатель на структуру одного вектора. Такая проблема только на линуксе, на винде было все хорошо, когда тестировал, но надо сервак на линукс ставить и такая проблема возникла
>>1635304 >>1635305 Если знаком с сурс движком на котором написана ксго, то знаешь что есть их сдк на гитхабе 2013 года, но скорее всего они что-то поменяли уже там не должно быть ни одного loc, она очень простая в сдк
Задание: Загрузить в регистр R16 число 15, сложить его с 25 и результат поместить на вершину стека. Поместить по адресу 020h внутренней памяти данных младшую десятичную цифру результата, а по адресу 021h – старшую. Код: https://pastecode.xyz/view/40f84dbc Оно почему-то зацикливает хз помогите а то пизда
>>1635314 Лол. Короче, это стандартный thiscall (он же cdecl) линуксовый. В линуксе, в отличие от винды, между ними разницы нет. Второй аргумент на скрине в IDA - это this, для него (как и для всех обычных аргументов) вызывающая функция чистит стек. Он был бы первым, но в функции есть и необычные аргументы. Чтобы вернуть структуру (не указатель, а саму структуру по значению), вызывающая функция передает скрытый указатель на буфер первым аргументом, а вызываемая функция пишет туда результат и возвращает этот же указатель в eax еще. И вот его-то в линуксе чистит ret 4 (в винде такой хуйни нет). Поэтому ты просто пишешь как на твоем пике, собираешь линуксовым гцц, и оно само заработает как надо, никаких соглашений указывать не нужно.
Ананасы, я впервые вижу в асм листинге бинарника вызовы функций не по конвенциям. Нет определения стэкового фрэйма (push rbp mov rbp, rsp), очень странно передаются параметры (не следуют сразу за сохраненным адресом продолжения предыдущей процедуры, а гораздо "дальше" по стэку). Я имею дело с обфускацией? Или может с naked functions? Декомпиль гидры выдает несусветную вырвиглазную дрисню от такого пердимонокля. Бинарник исполняется, если чо, так что он не сломан.
Добрый возможно даже ночной анон, объясни пожалуйста ньюфагу, что происходит между точкой входа и мэйном, и почему эти две вещи - не одно и тоже? И я правильно понимаю, что ось определяет только стэкпоинтеры и rip, а дальше - дело за бинарником?
>>1636709 >что происходит между точкой входа и мэйном Инициализация CRT, переменных окружения и т.д. >почему эти две вещи - не одно и тоже Компилятор вставляет свой main в котором производит необходимую инициализацию и передает управление на твой
Сап, ассемблерач Мне, быдлостуденту непрограммисту, строчящему высеры своему научруку на Си, захотелось приобщиться к языку сверхбогов, великому ASM писать планирую под amd64. Но нагуглить годных гайдов чтобы с разбором плюсов и минусов разных диалектов, ide, аппаратных архитектур и в то же время "сделайте А, установите В, напишите С..." как-то не получилось в глаза ебусь и лень, да... Собственно прошу вас, о великие Гуру, наставить меня презренного на путь истинный, путь освобождения от богохульного ООП и высокоуровнего греха с меня нихуя, сами знаете
>>1638326 Introduction to 64 Bit Intel Assembly Language Programming for Linux Ray Seyfarth
Я по этой книжке ассемблер изучал, раньше тоже тока выскоуровневые языки знал и ООП. По идее там все с нуля, но мне в универе про микропроцессоры рассказывали, так что хз возможно надо что-то знать чтоб её читать. Там первая проблема с которой встретишься, это то что код с абсолютными адресами(то есть например адрес который формируется отступом от data секции) не компилится/линкуется в gcc. Надо будет погуглить почитать stack overflow x86 раздел. По сути можно будет указать либо параметр -fPIE в gcc или что-то подобное или прочитать про position independent код и сразу его писать. Но это чтобы со стандартной библиотекой си слинковаться. Можно по идее писать код с абсолютными адресами и линковаться не через gcc а с помощью ld, там экзешник сгенерит с любым кодом, но придется системные вызовы юзать вместо функций си.
Снимаю пакер с ELF бинаря (уверен на 99.999999%, что я нашел ОЕР) путем приземления на распакованный код. Делаю дамп через gdb, но он, сцука, не запускается потом в отладчике и при исполнении сегфолтится. Нужно ручками править таблицу символов или есть более универсальные дамперы, которые сделают это за меня? Повторяю, речь идет о Линуксе и elf бинарях, соответственно.
>>1638347 Я все время хуею с этого НУЛЯ. Читаю Брюса Эккеля по си++, а там хуяк и блять кое-что на ассемблере показывается. Читаю книгу по ассемблеру там блять все на си++(при том что я программист си++(не мамкин)). Такое вот "С НУЛЯ"
>>1642059 Это пролог функции. Оригинальный sp сохраняется и теперь регистром можно спокойно манипулировать в теле функции, выделять место для переменных итд.
>>1648623 Тут все просто: используешь vim - пиши на gas с AT&T, чтобы окружающие сразу могли все про тебя понять. Если проблески разума есть, то gas умеет в интел. Для остальных придумали nasm/fasm. Последний в разы удобнее, когда тебе нужно ебать не только инструкции, но и байтики.
НОВАЯ ССЫЛКА НА RE4B
Аноним05/04/20 Вск 13:50:29№1650615202
>>1654511 niqaque тут просто сидят аутисты которым это кайф ну ок,может окупится если ты малварщик/0д рисерчер на этом все.Если процесс удовольствия не доставляет,то просто забей
>>1654729 Ну так средний жс-ер за эти 5 лет успеет стать синьйором-помидором, завести трактор, поработать в гуглах-хуеглах и пойти пилить свой стартуп забив на программирование. Ты серьёзно считаешь, что среднюю программерскую зп (пока ты не станешь совсем звездой РЕ) можно назвать окупаемостью вложения в виде 5+ лет?
>>1654868 >Ну так средний жс-ер за эти 5 лет успеет стать синьйором-помидором, завести трактор, поработать в гуглах-хуеглах А средний чиновник за это же время успеет залезть в карман к народу, средний ФСБшник или судья - набрать взяток. И что?
>забив на программирование. Если твоя мечта - забить на программирование, зачем ты лезешь в этот тред, где люди пруцца от тематики?
>Ты серьёзно считаешь, что среднюю программерскую зп Ты обосрался, придумывая образ собеседника и опровергая его выдуманные тобой мотивы.
>(пока ты не станешь совсем звездой РЕ Детектирую закомплексованного недоноска, которому нарциссическое общество внушило, что он должен чего-то там добиваться, стать звездой, а не просто получать кайф от процесса.
>можно назвать окупаемостью вложения в виде 5+ лет Мамкин экономист, с такими мыслями ты ошибся профессией. Задумайся о карьере чиновника
А для чего вообще зарабатывать много денег? Неглупый человек при желании найдет способ заработать, и далеко не каждому надо много. К тому же в современном обществе чем больше зарабатываешь, тем больше долгов. Почему есть много тимлидов и сениоров с большими зп, которые постоянно сидят в кредитах? Не понимаю пидорах, которые горбатятся ради бабла, а у самих нет времени и сил это бабло потратить, пожить для себя. Зато барин покупает новый мерседес. В советское время было проще.
+ зарабатывание как самоцель и непомерные потребности это болезнь. Такому человеку всегда будет мало, он всегда будет неудовлетворен. На этом и построена современная экономическая система, растящая потреблядей.
человека можно воспитать по-разному. Можно привить ему интерес к познанию и удовлетворению любопытства. А можно внушить ему, что он должен зарабатывать миллионы и потребить все, что предлагает рынок. Второй способ воспитания масс выгоден дельцам, бизнесменам, торговцам. Цель этого быдла не сделать людей счастливыми, не одеть их, обуть, дать им жилье, а вынудить их тащить шекели барину каждый год, как только создали новую потреблядскую хуитку. Люди, которые рады от удовлетворения любопытства, рынку не выгодны.
>>1654939 >А средний чиновник за это же время успеет залезть в карман к народу, средний ФСБшник или судья - набрать взяток. И что? Нормально съехал с темы.
>Если твоя мечта - забить на программирование, зачем ты лезешь в этот тред, где люди пруцца от тематики? 17-ти летний мамкин максималист, ты ещё многого не знаешь о жизни. Например того, что за n лет работы (не ковыряния в залупе по вечерам, а работы по 8 часов в день), ты заебёшься и перегоришь, не важно, насколько тебе сейчас по приколу дрочить значения регистров в дебаггере.
>Детектирую закомплексованного недоноска, которому нарциссическое общество внушило, что он должен чего-то там добиваться, стать звездой, а не просто получать кайф от процесса. Детектирую ребёнка, с которым родители ещё не успели поступить вот так >>1654954 и он живёт в иллюзиях о ебле байтов. А ведь скоро захочеться понюхать живой бабской письки и ещё через пару лет наступит экзистенциальный кризис, как и у всех мамкиных максималистов.
>Мамкин экономист, с такими мыслями ты ошибся профессией. Задумайся о карьере чиновника Для карьеры чиновника нужно правильное происхождение (лол), сейчас же не 90-е, возможности закончились.
>>1654976 >А ведь скоро захочеться понюхать живой бабской письки и ещё через пару лет наступит экзистенциальный кризис, как и у всех мамкиных максималистов А, понятно, ты омежный девственник, которому не дают. Надеешься привлечь бабу деньгами. Зря надрываешь свою розовую попку, потому что ебля и любовь бесплатны для нормальных людей. Переплачивают только омежные лохи типа тебя. Если природа не наделила тебя умом, то хотя бы отрасти гордость. Ну родился ты с потребностями и амбициями льва в теле червя. Другого тела у тебя уже не будет. Прими это и живи втакой какой есть, переплачивающий омежка.
>>1654964 >А для чего вообще зарабатывать много денег? Для того чтобы нормально жить, лол. Нет такой мерки много/мало, есть такая мерка: тебе на все хотелки хватает и ты счастлив, либо ты ебаный бомж, которого постоянно пилит изнутри необходимость оплаты хаты/отсутствия денег даже на жратву итд. >К тому же в современном обществе чем больше зарабатываешь, тем больше долгов Общество пидорах в СНГ — не современное. У нас деньги появились пару десятилетий назад, и все как ебаные макаки не понимают зачем они нужны.
>В советское время было проще. Одно дело, одна страна, одни штаны.
>>1654981 Ого как у тебя горит, нищеброд. Аж на стену лезешь от нужны, ватная пидораха. Вот только я благодаря интересу к компам работаю джавистов и занимаюсь реверсингом в качестве хобби и собираюсь поступать в платную математическую аспирантуру для удовлетворения интереса и амбиций, а ты находишься на уровне скота, который даже JS осилить не может.
>>1654982 Убогий, у тебя от сидения на двачах совсем мозги поплыли и критика к себе пропала? Ты выше написал, что даже JS осилить не можешь и спрашиваешь о том, сможешь ли заработать в реверсе. И теперь ты, убожество, не осилившее язык для даунов, пытаешься толсто тралеть, наивно полагая, что аноны забыли содержание твоих предыдущих постов.
Страшно даже представить, каким убогим обоссаным нарциссом надо быть, чтобы налакиваться стекломоя и понтоваться в треде аскетов-системщиков еще не заработанными деньгами. Пиздец. Зрите в корень. Эти ваннаби JS-еры просто обоссаные по жизни.
>>1654868 мне программирование на жсе не доставляет удовольствия,мне неинтересно это и все,что мне делать? Мне неинтересно сосать хуи начальнику и РАБотать. А потом все эти шутки про пятницу,кредитный фокус,псевдоумные разговоры на хабрах.Друг,зачем оно мне?Мне нравится жить и получать удовольствие от процесса,удовольствия от жизни.А выбирать осознанно путь самой обычной РАБоты,только в профиль...Ну,такое как по мне Я может что-то не понимаю,в силу возраста,но мне на жизнь пока хватает.Сижу крякую софт,разбираю малварь,помогаю людям и мне норм.Я правда не понимаю зачем тратить 10 часов на неинтересную РАБоту за зп пусть даже 300-400к.На что их тратить и когда?
>>1655049 юпд,я не против если тебе нравится js и делать сайтики.каждому свое,меня просто это не заводит совсем мне сложно заниматься чем-то долго и тем более ближайшие лет 5-10 по 8 часов в день,5 дней в неделю. пизденку не нюхал,да и не очень тянет,если ты хочешь спросить про это экзистенциальный "кризис" уже есть,но вообщем-то как я слышал выход из него это занятие любимым делом. Ведь все эти штуки со среднем и эксзистенциальным кризисом выходят когда человек в 30 лет осознает что его жена,успешная карьера с зп 300к,дети и форд фокус ничего не значат и ничего не стоят.А жизнь то уже на половину прожита и вспять время не вернуть если я где-то не прав,пожалуйста не тролль,я все таки путь жизни себе выбираю сейчас
>>1655049 Во-первых, работай на чём хочешь. Тут поинт не в том, что всем надо идти в жс-макакены, а в том, что есть реальность. Во-вторых, всем похуй что тебе интересно. Вопрос в том, что мамкин борщик со временем кончается, и нужно эту мамку уже самому содержать и самому за всё платить, это и есть реальность из первого пункта. Нету, блядь, понятия "гнаться за деньгами" итд, есть понятие "улучшать своё существование". Ты либо живёшь в залупинске с быдланами в обоссаном хруще, либо в ламповом европейском городке. Либо ешь гречку с хуйцами, либо нормальные продукты и ходишь по заведениям. В-третьих, когда встанет вопрос о самостоятельности, какой у тебя шанс не пойти работать на завод/продаваном — будучи реверс-инженегром и программистом? С такой спецификой можно разве что мк и дрова писать, но первое днище на заводе, а во второе хуй вкатишься на удалёнку а в снг как-то не особо с этим
>>1655058 >экзистенциальный "кризис" Есть 2 способа пройти эту хуйню: а) быть тупым бумером, лол. б) повзрослеть ментально ещё на пару лет.
Хз о чём разговор, ты либо по-пацански продолжаешь страдать хуйнёй и через хуй знает сколько лет становишься апостолом как мыщъх чтобы потом немножно пожить нормально, либо находишь себе какую нибудь байтойобскую область коденга которая хоть как-то востребована, выбираешься быстро из говна и живёшь нормально.
>>1655118 я не то что прям нищий,но если очень уж будет надо,я могу и малварь начать пилить,а это дело окупается неплохо думаю(думаю,тк не пробовал коммерц,только для себя) >можно разве что мк и дрова писать аверы еще есть,куда я и хочу попасть >>1655123 спасибо,я подумаю
>>1655118 Да ты заебал, вечно срешь итт, что реверс не кормит. А я вот буквально недавно свой первый CVE получил, бложики писать начал, в твиттере активничаю, в дискорде с шляпами общаюсь, все как сейчас в моде. Рукой подать, как меня самого хантить начнут на сочные вакансии. И самое главное - мне в кайф.
>>1655118 >В-третьих, когда встанет вопрос о самостоятельности, какой у тебя шанс не пойти работать на завод/продаваном — будучи реверс-инженегром и программистом? Я кроме асма еще C++ немного знаю и могу подкачать скиллы и со своим коммерческим опытом могу пойти в какую-нибудь ит контору. Не суди всех по себе, нублол без технического бэкграунда.
Ку, реверсач Как находить интересные функции для реверсинга в средних и крупных бинарях, тем более если они stripped? Есть возможность написать какой-то сканер для бинаря, который выплюнет адреса всех процедур, где идет вызов функций, которые читают из stdin или читают в общем что-либо (файл с диска и т.п.)? Цель - составить некую карту функций, куда можно добраться "извне" через ввод данных через какой-либо интерфейс (stdin, подгрузка файлов с диска, парсинг пакетов, если речь о проге с сетевым потенциалом, и т.п.)
>>1656892 На просторах СНГ почти нет работы, только в каком-нибудь доктор вебе или лабе касперского, но туда попасть еще нужно постараться. Гораздо легче уебать в СШП/Германию/Израиль и быть безопасником там, им там и платят нормально, в отличие от околорашкинских стран, где обоссаная вебмакака получает больше, чем реверсер или разработчик эксплойтов, лал
>>1656921 Там ты и с багажом знаний больше в 10 раз, чем у любой веб-макаки будешь получать столько же, лал. Рыночек есть рыночек. А ещё у вебмакаки карьерный рост пройдёт в 10 раз быстрее чем у тебя, и так в любой стране. Не зря же тут ананасы за совочек-то топят!
>>1656962 >Там ты и с багажом знаний больше в 10 раз, чем у любой веб-макаки будешь получать столько же, лал. В плане, среднюю рынку погроммиста по рынку у себя в стране, а не как на родине.
>>1656962 Друг живет в США, у них реверсеры зарабатывают больше вебмакак в полтора раза, причем на старте. Я уже не говорю про разработку эксплоитов и как на этом можно не хило поднять, не угодив при этом на сгуху. И при всем при этом не заниматься поносной дриснёй для даунов типа макакавеба.
>>1654729 >Окупаются, в долгосрочной перспективе (~5 лет). Если хочешь быстрого результата, то иди в js тред.
В долгосрочной перспективе РФ придётся создавать свои компиляторы, операционные системы, драйвера и прочую низкоуровщину. Вот тогда-то резко возрастёт спрос на знание ассемблера и реверса. А пока эти знания надо как-то не утратить, в преподы податься, накрайняк. Кстати, существуют ли сейчас на ютубе образовательные каналы по этой теме, которые приносят доход?
>>1657173 У тебя фотокарточка с сралиным не отвалилась случаем? >Кстати, существуют ли сейчас на ютубе образовательные каналы по этой теме, которые приносят доход? Доход на ютубе приносят только большие каналы (100к+) с платежеспособной аудиторией. Ни первого ни второго пункта с такой тематикой достичь нельзя, лол.
>>1657003 Так и у нас тоже самое, лол. Баг хантингом вообще шик в рашке заниматься. Несколько багов нашел и можно год как барин жить. Долбаебов-неосиляторов как всегда в тред набежало.
Сап! У меня в универе задание: вот программа(исполняемый файл), которая принимает на вход число и возвращает число, причем в зависимости от того если запустить ее на амд или интел, результат будет разный, написать прогу, которая будет исполняться на интел, а вести себя как данная на амд. Не понимаю какая между ними разница вообще, в гугле ничего кроме сравнения фпс не нашел. Дайте мне ссылку на сравнение их инструкций, а еще, если есть, на эмулятор амд на интеле, это вообще было бы заебись. Спасибо!
>>1660164 Если у тебя есть программа, зачем ты у нас спрашиваешь, почему ты ее не отреверсил? Внутри там либо cpuid какой-нибудь, либо что-то специфичное для интела/амд (типа 3DNow!).
Здарова, реверсач Как обычно анализируют как прога получает вводные данные извне? Вручную или есть тузлы/техники для этого? Я бы не прочь даже заимплементить такое сам, но яхз как в огромных бинарях определяют все возможные инпуты извне, особенно если из бинаря повырывали все символы. Не будешь же ты вручную искать среди нескольких сотен/тысяч функций те, которые обрабатывают вводные данные. А если таких дохуя? Это ж пиздец. Я знаю что так готовят почву для фаззинга, но как именно это делают - хз. Анон, помоги плиз!
>>1660601 А как ты будешь знать куда ставить брейкпоинт, если бинарь огромный и без символов с несколькими тысячами функций? Получается, только вручную реверсить, чтобы понять какая функция обрабатывает инпут и куда имеено ставить брейкпоинт, чтобы понять оно это или нет? Наверняка же есть хотя бы полуавтоматические методы обнаружения таких функций.
Это если вдруг кто захочет со старыми доками курсов SAN и OffensiveSec ознакомится (надеюсь абу не сломает магнитную ссылку). magnet:?xt=urn:btih:f91feb6d2ea93f1c3c03b6be52051c2df72da1b7&dn=CERTCOLLECTION+-+BASELINE+-+SANS+%26+Offensive-Security&tr=udp%3A//tracker.coppersurfer.tk%3A6969&tr=udp%3A//tracker.zer0day.to%3A1337&tr=udp%3A//public.popcorn-tracker.org%3A6969&tr=udp%3A//tracker.leechers-paradise.org%3A6969&tr=udp%3A//explodie.org%3A6969
Ребят привет, помогите пожалуйста исправить программу, написанную на ассемблере. 20 вариант. на счет моего варианта программы, я ее написал, но она не заработала и я психанул и стер ее. Если кто-то захочет помочь, то я восстановлю свою версию и помочь исправить мою Также есть таблица команд микропроцессора, дл которого нужна собственно программ
>>1661086 Обработчики чего именно? Ты можешь пожалуйста внятно написать? Обработчиков есть дохуя и больше, какие именно ты имеешь в виду? Скрин даже пиздани, пожалуйста, если совсем щедрый
Хочу переводить визуальные новеллы. Но проблема в том, что надо как то разбирать их ресурсы и вытаскивать тексты. Говорят нужно дизассемблировать. Насколько все это сложно? И нужно ли знать именно ассемблер, или можно обойтись сишкой?
>>1664033 > Насколько все это сложно? Что касается ресурсов, почитай DGTEFF из шапки. Осилишь - сможешь сам решить, сложно ли это.
> можно обойтись сишкой Для реверсинга можно HexRays, и если не лениться проставлять типы, тогда сишный листинг в большинстве случаев будет вполне читаеым. Но ассемблер понадобится, чтобы, например, запатчить поддержку шрифтов, тот же декодер Shift-JIS заменить на 1251 или UTF-8.
Алсо, писать много анпакеров на сишке ты заебешься, бери питон сразу.
Извеняюсь за нубские вопросы. Кресты код компилят по умному - условиях суют не простые прыжки, а вызов диспачера с какими-то данными, который и вызывает нужную функцию. Если исходить из этого листинга. Пикрил - условие if в крестах (я знаю как оно выглядело, потому что часть сорцов открыта, они не сразу закрылись). Вызывается соответственно c++ scope этого условия. Вопрос: как понять, какой адрес вычисляется и зовётся из sub_1805A6810 - без использования дебаггера?
И таких случаев много, не любой "вызов" понятен сам по себе. Особенно при наличии тимплейтов, классов и прочих высокоуровневых свистелок.
>>1664235 > вызов диспачера Не вижу тут вызова диспетчера, а вот обычный вызов метода класса вижу. И это даже не виртуальный метод нихуя. И даже ни одного indirect вызова внутри нету. Как вы эту хуйню читаете? Нихуя не понятно, какие-то квадратики, стрелочки разноцветные... Говна кусок, а не листинг!
> тимплейтов Нихуя не меняется, та же сишка, просто кода больше, и аллокатор на аллокаторе аллокатором погоняет.
> классов Не ленись структуры создавать и t в листинге тыкать, тогда оно внезапно становится читаемым.
>>1664255 >Не вижу тут вызова диспетчера, а вот обычный вызов метода класса вижу. И это даже не виртуальный метод нихуя. И даже ни одного indirect вызова внутри нету. Куча условий в коде компилится в асм, который для всех условий зовёт общий метод, который определяет, что дальше исполнять. Схожий паттерн. Алсо я теперь думаю что за это отвечает этот вызов с new int.
Короче думаю не парится и попробовать дебажить эту dll вместе с её программой. Не хочется всё это вместе запускать, мне ж только код подсмотреть надо.
Pimp My IDA contest
Аноним22/04/20 Срд 22:01:26№1664986277
Relook IDA and send us your creation by the 1st of May. The best proposals will be posted on our webpage from the 8th of May to the 22nd of May. Visitors will be able to vote for their favorite version of IDA. The picture that will receive the most votes by the 22nd of May will win the contest.
We will contact the winner by the end of May and will send him/her a free copy of IDA Home.
Как иконка приложения, Ада действительно всратая, может Ильфак уже наймет себе десигнера.
>>1664986 > Как иконка приложения, Ада действительно всратая Зато узнаваемая. Алсо, древняя черно-белая была лучше, и нахуй они ее раскрасили - совершенно непонятно.
>>1601545 Советую купить отладочную плату на каком-нибудь 32 битном МК и начать еще изучать. Лучше брать отладочную плату с той, периферией, которая интересна(ethernet, CAN, звук, экран и прочее). Куча вопросов отпадет по ходу, а до новых ты еще не дошел.
Это у иды реально такой простенький дебаггер, или я не умею им пользоваться? Чёт графа по функциям как в обычной иде не прилеплено, не коментит доставание из памяти всяких переменных, rsp+160h = 0 а на самом деле нихуя не равно если глазами посмотреть.
Есть DLL-библиотека из конца девяностых, msvc, содержащая API; есть программа, которая ее использует. Ничего скорее всего не шифровалось, библиотека была предназначена для использования сторонними приложениями, но сорсов, документации и прочего - не сохранилось, достать нигде нельзя. Хочется использовать данную библиотеку
Вопросы: 1. Каков прогноз: ее вообще реально расковырять (учитывая наличие работающего приложения)? 2. Если да, то как, что почитать?
В принципе задача выглядит как довольно типовая, но какого-то готового решения не нашел. Есть Detours, есть IDA, но как-то все ультра-сложно и вообще непонятно, возможно ли в принципе.
>>1672727 >web.archive.org Естественно пробовал, но софт писался в те времена, когда интернет еще только зарождался. Либо никаких следов не сохранилось, либо документация никогда не выкладывалась, что скорее всего.
>Так ведь: > есть IDA Ну и что с ней делать? Может есть кейс стади/туториал или типа того, где решается аналогичная задача?
>>1672867 > Ну и что с ней делать? Загружаешь, нажимаешь Ctrl+E, изучаешь экспортированные функции. Можешь на них Tab потыкать и смотреть псевдокод от HexRays. Но в любом случае, надо хоть немного асма и знаний.
VX-анон, я знаю что ты тоже сидишь здесь. Посоветуй что почитать актуального, куда вкатиться, какие доки/туториалы изучить чтобы ворваться в этот увлекательный мир. Нашел разные журналы типа 29а, но они все безбожно устарели. Хотелось бы понять в какую сторону надо копать. Вся надежда на тебя, анон.
>>1679241 Викс мертв,осталась просто комерческая малвара если хочешь делать что-то свое,то можешь подписаться на пару десятков дебилов вроде кремеза в твиттере и реверсить малварь которую они постят
>>1679368 Учи Си, кресты, ассемблер, ОСь, на который хочешь пвнить, причем углубленно. Я тебя не знаю, соответственно яхз какой у тебя бэкграунд, но если ты не особо опытен в программировании как таковом - сначала начни программировать, причем плотно. Для пвна идеальный бэкграунд - ламповое лоу-лвл системное программирование (на уровне API операционной системы или же вообще кернел-спейс - драйвера, например). Потом учи примитивы уязвимостей, современные способы эксплуатации оных, ищи CTFы и постоянно практикуйся. Если не знаешь англ хотя бы на уровне upper intermediate - даже не суйся. Да и все кошерные материалы по этой теме в интернете только на английском. Если есть англ + база лоулвл программирования - ты в шоколаде, сразу ныряй в эксплуатацию и CTFы. Без определенной базы в пвне ловить нечего.
>>1679499 Понял,спасибо Англ я знаю так,средне,читать могу,но говорить или фильмы смотреть нет из знаний наверное си только,какая-то база асм под x86 Буду дальше учить.За сколько времени можно вкатиться чтобы писать врайтапы такого уровня https://xss.is/threads/37092/ ?
>>1679595 Если фильмы смотреть не можешь - это достаточно тревожный звоночек, подтяни все же англ. Твоей базы недостаточно, вкатись плотно в кресты и OS internals помимо всего прочего. И подтяни то, что ты сказал (асм и си), а то ответ был какой-то смазанный, такое чувство, что ты не уверен, что шаришь в этом. По ссылке - очень базовые вещи, связанные с пвн, это весьма базовый уровень. В настоящих кейсах, особенно если пытаешься атаковать более или менее серьезную программу, нужно искать несколько уязвимостей и составлять цепочку эксплоитов, чтобы добиться произвольного исполнения кода. Как пример - на последнем pwn2own нужно было построить цепочку из ДЕВЯТИ разных эксплоитов, чтобы удаленно исполнить код через дыры в safari, минуя сэндбокс и митигации. Часто приходится подключать поиск дыр в ядре. Но до такого уровня нужно пахать годы, ты пока подтяни базу и базовые знания эксплуатации. И выкинь нахуй все материалы на русском языке, они бесполезны.
>>1679241 Как ты узнал?! А если серьезно, то из виксов выросли и разошлись кто куда, опоздал ты.
>>1679368 Только CTF и желательно самому, без подглядываний.
>>1679595 Да это херня полная, копипаст и вода. Не советую сидеть на этих околотематических бордах которые создают иллюзию движа, там нет контента и знаний. Лучше подпишись в твиттере на топовых спецов, чтобы быть в курсе актуальных событий, следовать по течению и следи за конфами https://infocon.org/cons/.
>>1680221 спасибо,а можно примеры топовых спецов в твиттере? Просто по крайней мере смотря на аналитиков малвари оттудава мне хочется плакать и смеятся одновременно
>>1680325 Члены Google Project Zero - natashenka, 5aelo и прочие. Вот отсюда >>1664140 можно бложики/твиттеры выступавших собрать. Если накидаете своих линков, также был бы признателен.
>>1584716 (OP) хелпаните плезс. Почему у меня при делении происходит такая бяка? Пишу в Сасме на насме х64 Вот код - https://pastebin.com/n7QbfSTt Собственно я пишу лабку(сначала на спп написал, чтобы легче было).
>>1681198 > fld qword[x] Читает double, 8 байт, дробь с плавающей точкой. Ты хочешь fild dword[x]? > i_fmt db "%d",0 Вводит инт, 4 байта, целое число. То же самое и с выводом.
Алсо, в коде на крестах у тебя вообще везде целые числа. Хуй знает, что тебе нужно сделать. Дальше не читал.
>>1681471 У меня дано число, которое состоит из 3-х цифр. Нужно получить 6 чисел, образованных при перестановке :1 >Читает double, 8 байт, дробь с плавающей точкой. Ты хочешь fild dword[x]?
Емм, да нет. Я просто поместил х в вершину стека FPU, чтобы делать разные над ним операции.
А есть другой способ?
Мне какбы да, нужно только с целыми числами работать.
>>1655676 мне нравится CheatEngine с его функциями отслеживания. Очень удобно смотреть что пишет-читает по адресам и бряки ставить самому не надо. Попердолил то что можно изменить, нашел область в памяти, нашел область в либе (если не exe), засунул туда INT 3 и потом ковыряешь в другом отладчике.
>>1681506 Я уже и не вспомню, это вообще на консолях было. Но обычно тебе нужно найти декодер (обычно часть какого-нибудь draw_text, но бывает копия в других местах, типа подсчета ширины строки в пикселах или в кастомном strlen). Этот декодер последовательность символов преобразует в последовательность текстурных координат глифов, ты его патчишь/заменяешь, текстуру перерисовываешь или дорисовываешь или несколько текстур, смотри как в майнкрафте юникод сделан. И еще координаты глифов находишь и патчишь, если глифы не моноширинные. Ничего сложного в таких патчах нет.
Обычно не заморачиваются и делают 1251, потому что русский в UTF-8 - это два байта на символ, и текст может куда-нибудь не влезть. Если проблем со свободным местом нет и лимитов движка на этот счет нет - можно запилить UTF-8.
Дайте подсказку нуфагу Нужно реализовать простой цикл на fasme Я в нем полный нуб, написал такой код, по идее должно в ecx доходить до 15, после выходить из цикла. Результат - пик. Еще раз говорю, я в асме почти не шарю, не бейте палками за говнокод.
>>1682463 нет,тут никого из нии,тут всякие разрабы эксплойтов,малварщики,реверсеры,разработчики читов и студенты собственно почти все выше перечисленные получают больше веб макак
>>1682518 Гугли x86 calling conventions (конкретно __cdecl). У тебя printf пидорасит eax/ecx/edx. Используй другие регистры (esi/edi/ebx/ebp) или сохраняй и восстанавливай эти (push/pop).
Функция printf возвращает количество напечатанных символов (в регистре eax). Т.к. при первой итерации цикла она вернет 1, а добавление у тебя идет перед сравнением, то eax = 1, ecx = 2 ? (этот регистр тоже volatile (caller-saved) и может быть перезаписан во время вызова функции).
>>1682463 Вообще заебись, только не НИИ, а крупный энтерпрайз не рыбные котлеты, а королевские креветки. С авокадо спелым вообще пиздатейше, лимонным соком полей - закачаешься. Затарился паулайнером, а брецели забыл сука, сча в азбуке вкуса доставку заказывать буду
Анончики, помоги, пожалуйста, решить лабу. Вылезает ошибка integer overflow при делении. Как исправить? Или что надо переписать, чтобы решить эту систему?
>>1683455 А dx-то обнуляешь? Делится-то dx:ax на указанный регистр/память. Или на 8-битный регистр дели, тогда делимое будет в ax, а частное и остаток в al/ah соответственно.
Подскажите, как впихнуть три условия. Задание: "Программа, которое вычисляет сумму значений функции, заданной системой уравнений для аргумента, изменяющегося в диапазоне [-2, 2] c шагом 1. [a, b], шаг = p В программе должен быть предусмотрен ввод значений переменных в допустимых границах."
Друзья в курсовой надо в теоретической части написать про fasm/nasm/gas есть какие-нибудь источники со сравнением/описанием/хар-ками, желательно на английском языке, с меня как всегда
Суп, аноны. Я, может, не совсем по адресу, тогда направьте, пожалуйста. Суть вопроса такова: есть одна древняя игруля (сейчас уже мёртвая и никому не интересная, если что, т.е. никакого коммерческого интереса), есть бинарник её форка, перепиленный васянами и выложенный в интернет (не спизженый, самими авторами расшареный много лет назад без каких-либо лицензионных условий и соглашений); также есть исходник версии, которую форкали, их выложили на гитхаб авторы без лицензии. Так вот что я сделал -- это пока частично отреверсил бинарник форка, активно пользуясь исходниками. Могу ли я теперь заливать на гитхаб результат в принципе и под GPL2 в частности? Какой вообще статус кода, полученного в результате реверса (да, он зачастую запрещён явно лицензионным соглашением, но ведь не всегда, в частности не в моём случае)?
>>1684474 В линуксе проще с nasm, у которого есть нормальная отладочная информация, которую жрет gdb. Если у тебя винда, или некоторые неудобства под линуксом не пугают, или ты хочешь писать всякие патчи на макроязыке fasm - бери fasm, комьюнити вполне живое, всегда подскажут.
>>1684425 > Могу ли я теперь заливать на гитхаб результат в принципе Заливать ты можешь что угодно. Чем старше игра, тем больше всем на нее похуй. Сейчас повадились издавать криво подправленное под современные ОС старье на gog или стиме, широко используя в том числе и фанатские патчи.
> GPL2 Нет.
> какой вообще статус кода, полученного в результате реверса Погугли "clean room reverse engineering", что это, и почему появилось. Можешь еще наезды на ReactOS погуглить.
>>1684569 >clean room reverse engineering Большое спасибо, почитал. Пиздец как копирасты охуели уже в конец. Также нашёл годный FAQ от EFF https://www.eff.org/ru/issues/coders/reverse-engineering-faq , настроение такое же. Ну и в конце набрёл на ГК РФ ст. 1280, которая в ч. 3 п. 3.3 явно запрещает мне шарить декомпилированный код. Какое же днище вся эта система...
>> GPL2 >Нет. Ну, продолжение игрушки (код на 80-90% тот же) авторы уже выкладывали сами под GPL2, так что тут точно могут быть обидки.
В общем, я решил по итогам всех чтений, что везде укажу авторов оригинала, авторов форка, и выложу в итоге на гитлаб, а не гитхаб; вроде, так риски бешенства копирастии минимализируются.
>>1684929 1.Что такое "малвар сайтс"?c2?Файлы где малварь распросмтранялась?Что вообще ты этим сказать то хотел? 2.Нахуй ты это припер в тред посвещенный асму?
Sup, /pr/. Вкатываюсь в RE. По совету шапки начал с Дениса Юричева - RE для начинающих, честно читал, честно понимал все, что касается x86 архитектуры, а MIPS, ARM не интересны. Но в разделе "Специфичное для ОС" почувствовал неимоверную интеллектуальную слабость, т.к. просто не понимаю как устроена ОС, знаю там про ring, про порядок загрузки, крч максимально обзорный курс, но по факту не одупляю что происходит. Кстати аналогичную проблему испытал, когда видел листинги шифраторов или генераторов хэша. Вопросик в чем собственно. Есть что-нибудь фундаментально, что можно еще взять почитать? Вроде примеры разобрал, управления делал, а скачиваю crackmes.one что-нибудь, не вывожу. Анончики, как подступиться к великому???
>>1689286 На мой взгляд читать Тененбаума и прочие книжки по ОС какая-то не то чтобы пустая трата времени, но неоптимальность в этом деле. Самое эффективное взять и прочесть код маленькой ОС, у меня только после этого сложилось понимание. Советую сюда глянуть https://pdos.csail.mit.edu/6.828/2018/schedule.html Ещё можешь пройти курс на степике по ос, их там кажется 2, тебе нужен где помоложе чувак ведёт - но обязательно заходи на гитхаб курса и читай код, там помнится таки написана ОС. Без кода имхо уверенного понимания не появиться.
>>1684674 идеально было бы переписать игрушку своими словами, копируя механику оригинала. (такое не редкость, см. опенсорсные форки) но этого надо очень захотеть.
Поясните за radare и прочее такое. Они могут в работу через stdin / stdout? Т.е получили на вход инструкцию с операндами и на выходе выдали значение всех причастных регистров? Гуглил насчёт GDB, он под шиндовс как-то мутно устанавливается. И ещё то же про LLVM интересно, есть для него отладчики под шиндовс с вышеописанной возможностью? Опять же потому что с LLDB все как-то неоднозначно.
>>1697216 > dynamic binary instrumentation > Очевидно что речь о dynamic binary instrumentation и dynamic symbolic execution Что вообще никак не связано с вопросом >>1696425 Ясно, понятно.
>>1584716 (OP) Аноны, как нормально реверсить форматы файлов? Знаю что там используется какое-то сжатие, xor-обфускация и в этом лежат шифрованные RC4 данные. Теоретически есть ключ для RC4, но похоже из-за сжатия/обфускации он не подходит. Два дня убил, результатов пока ноль. Реверсить алгоритм чтения? Ковырял гидрой, нашел где всё это безобразие происходит, но там пиздец, основная функция на 1000 строк и ещё десяток функций в ней. Логично было бы от получения данных с диска идти, но распаковка где-то не рядом происходит. Может есть хоть какие-то примеры как люди ковыряюсь такое говно?
>>1697266 А какая цель: получить содержимое файла или алгоритм узнать?Работащий экземпляр программы есть, которая файлы читает, откуда алгоритм чтения?
>>1697434 > алгоритм узнать Это. Пердольный способ криво распаковать и так есть. > Работащий экземпляр программы есть, которая файлы читает, откуда алгоритм чтения? Да. Но там десятки функций между функцией, принимающей параметры чтения и путь, до виндового ReadFile. IDA вообще нечитаемый пиздец высерает пикрилейтед, в гидре вполне читаемо, но нихуя не понятно в такой куче. Как мне, например, проследить путь данных от ReadFile? Тут какой-то ООП и данные сразу уходят из функций в никуда и хуй поймешь что потом их обрабатывает.
>>1697225 > Т.е получили на вход инструкцию с операндами и на выходе выдали значение всех причастных регистров? > Что вообще никак не связано с вопросом Иди учи мат. часть, потом возвращайся.
>>1697491 Ну, по алгоритму - тебе придется разбираться самому с переменными и названиями, и что они обозначают. Подстановка нормальных имен несколько упростит дело, как писали выше. По поводу формата файлов, чтобы проще было начать раскручивать цепочку архиваций - погугли список заголовков файла-архива в зависимости от типа архива. Вот zip-ники к примеру с "PK" начинаются
>>1695200 Объективно нереально... Там 2000+ функций, исходники оригинала в 110к строк олдовой сишки (т.е. с функциями по 300+ строк, макросами для односвязных списков, свой мини-менеджер памяти, мини-субд и даже блять скриптовый язычок для ИИ), в форке который реверсю из бинари ещё напердолено процентов 10-15 от этого по объёму. Я сам игровую механику знаю только в малой части, чтоб с нуля запилить.
Но я с новым вопросом. Вот что-то нарисовалось в гидре в первом приближении. Теперь я это всё экспортирую в декомпилированном виде. Я верно понимаю, что аналогичной кнопки для экпорта типов (структур, енумов) нету? А то их 100+, во многих десятки полей, руками лень. Питухон-скриптингом это наверняка решится, но есть ли лучший способ? Загуглить не удалось. Аналогичный вопрос с константами. Со строковыми у меня костыльный внешний скрипт, который ищет их в выводе гидровского декомпилятора и подставляет фактическое значение в кавычках из указанного адреса, а есть ещё и просто константные массивы чисел/структур. Их бы в си-синтаксисе вывести. Тоже скриптом изнутри гидры надо делать?
>>1699552 > Объективно нереально... Там 2000+ функций, исходники оригинала в 110к строк олдовой сишки (т.е. с функциями по 300+ строк, макросами для односвязных списков, свой мини-менеджер памяти, мини-субд и даже блять скриптовый язычок для ИИ), в форке который реверсю из бинари ещё напердолено процентов 10-15 от этого по объёму
Пфф, люди клиенты онлайн-игр реверсят и сервера с нуля пишут, WoW как пример. Было бы желание и время.
>>1699575 Это делают наёмные команды реверсеров и разработчиков. И получается плохо совместимое говно, лишь по форме напоминающее оригинал, и то благодаря тому, что клиент тот же самый.
>>1699575 >trinitycore >является форком проекта Massive Network Game Object Server. В самом начале проект разрабатывался девелоперами UDB >На данный момент, в репозитории присутствуют патчи более чем от 180 авторов.[7] >90% Blizzlike with custom fixes >blizzlike >blizzlike >99% compatible >blizzlike
Да ты же троллишь. Зачем реверсить игровую механику? Запили свою! Зачем реверсить задачу CTF? Запили свою! Зачем реверсить малварь? Запили свою!
>>1700275 Я, честно, не понимаю, в чём ты меня хочешь убедить. Есть игра, с механикой несколько сложнее, чем у тетриса; реверсить её как "чёрный ящик" вообще не вариант, чтобы разобраться как всё работает я и полез в исходники оригинальной версии, там выяснил, что в форке много чего переделано и доделано, как именно -- а хуй знает, опять же, слишком сложный чёрный ящик. Отсюда необходимость реверса. А ты мне предлагаешь делать своё, "похожее". Да нахуй оно мне надо-то? Похожих опенсурсных игр ёбаная тьма, больше чем игроков в них осталось (а-ля рогалик). И это в треде про реверс я оправдываюсь за реверс... нонсенс. Лучше б дал скрипт для вытягивания из гидры тайпдефов и константных структур в си-синтаксисе.
Помогите мне, пожалуйста. Я отчаялся. Написал я программу. Все работает. Второй пункт задания была вызов этой функции из под си. В си мы вводим вещественное число, передаем в асмовскую функцию, а она ее возвращает. Не могу никак написать код возвращения. Читал, что нужно использовать для этого ФПУ(st0) - пробовал(пик 1) - не работает. Также через еах пробовал. Тоже не работает Помогите. Код прилагается: 1. Сишный код(пик) 2. Асм - https://pastebin.com/k4bqgFKr [nasm, sasm]
Сап, реверсач. Рубрика вопросов от ньюфага. Учил насм по Assembly Language Step-by-Step, и местный дядька всё по красоте разъяснял. Но увы, чересчур дохуя воды, потому решил пушить язык первосоздателей через РЕ хеллоуворлдов у Юричева(первые две главы) осло читается просто охуенно Так вот вопросы: -насколько адекватен подход обучения асме через РЕ; -посоветуйте что-нибудь простенькое для проверочки знаний: парсер-хуярсер, польский калькулятор, небольшая утилитка..
>>1710792 >подход через РЕ ТОЛЬКО ЕСЛИ тебе будет ментор компилить что-то, потому что ты можешь понезнанке компильнуть этот хеловорлдец в условной студии2012, которая в листинг напихает кучу непонятной для тебя хуеты.
>>1710827 >хеловорлдец в условной студии2012 Пока компилирую только в гцц с разными ключами на оптимизацию. Студии, арм и мипс не трогаю.
>ТОЛЬКО ЕСЛИ тебе будет ментор компилить что-то И где такого дядьку взять? Помогать на чистом энтузиазме со всяких лоров врядли кто-то будет.
>, которая в листинг напихает кучу непонятной для тебя хуеты. То что гцц выдаёт - относительно ясно и понятно. Листинги от Юричева по другим архитектурам читаю по диагонали и не сказать, что там уж очень много магии.
>>1710792 Немного туда же вопрос, а челленджи у Юричева ньюфаг осилит? И да, я так понимаю, хорошо бы вникать и в арм, и мипс, чтобы суть вопроса увидеть с разных сторон - или это чисто идеалистическое представление, т.е. если интересна архитектура x86-x64, то можно и скипнуть?
В тред призываются мамкины хакеры оффлайн игр. Есть игрушка Kenshi и у меня появилось желание взломать статы, чтобы ускорить процесс раскачки на поздних стадиях, но игра использует mulss, addss и оперирует регистрами rx и xmm. Собственно я совсем не понимаю, как мне написать скрипт и сделать интеграцию в бинарник Кенши. Если хоть кто-то готов мне помочь я буду уже скидывать инфу по процессу
>>1713360 По делу не помогу, но: > вообще правильно ли я транслировал? У тебя есть .s, собери его. У тебя есть твой код, собери его. Потом накорми оба какими-нибудь данными и сравни.
>>1584716 (OP) > Денис Юричев: "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна! Вот прямая ссылка https://beginners.re/RE4B-RU.pdf Хочу напечатать ее в типографии, чтобы с твердой обложкой и переплетом. Никто тут этим не занимался? А то с компьютера мне тяжело читать, все плывет.
Не подскажите, какая инструкция используется в ассемблере для перемножения чисел с плавающей точкой. Есть у меня значение 100.0 в регистре eax и есть 1.2 в ebx. Мне их надо перемножить, а то с использованием mul и imul у меня выдаёт целое
>>1714877 Опять пишу, чтобы мне поведали истину. Можно ли в ассемблере сделать сравнение по типу больше чем? То есть у меня есть код и мне надо, чтобы он остановился после того, как значение превысит 100, дело в том, что сравнивать надо тип float, а стандартное cmp не может сравнивать больше чем. Может есть инструкция, которая может?
Кстати, с умножением разобрался, кто же знал, что mulss требует двух операторов
>>1715052 >The (V)MULSD instruction multiplies the double-precision floating-point value in the low-order quadword of the first source operand (an XMM register) by the double-precision floating-point value in the low-order quadword of the second source operand (an XMM register or a 64-bit memory location) and writes the result in the low-order quadword of the destination XMM register.
Но насм сообщает о мисматче между xmm и 8 байтами. Куда ходить дальше?
>>1715113 >>1715113 >За нормальным ассемблером. за флатом? >Или скажи ему, что там tword, и он заткнется. tword - 10 байт, xmm - 16 байт. Как ни странно, насм его понимает, однако та же беда с мисматчем. Пробовал dqword и xword(по 16 байт), но с ними насм вообще не дружит, судя по мануалу и фактам.
Уважаемые байтоебы, BugTraq за авторством seclists.org с февраля болеет. Хотел спросить, где вы еще собираете аналогичную информацию по свежим дырам помимо очевидного nvd.nist.org?
>>1717157 >Все работает, если размер не указывать вообще. Спасибо, анон.
А правда, что весь патчинг сводится к изменению опкодов и иммов в бинарях? Если да, то есть смысл практиковаться писать патчи, скрипты, когда можно всю работу спокойно сделать через условный радар?
не первый раз открываю ваш тред хочу начать вкатываться, но потом почему-то пугаюсь и закрываю тред. я даже в своих с\с++ не силён, какие мне asmы хотя мне сказали что освоение asm поможет мне понять некоторые моменты в с\с++
Хочу попрактиковаться в ассемблере для arm. Существуют ли виртуальные эмуляторы симуляторы arm процессора, чтобы можно было запускать код без наличия физического устройства?
>>1723907 qemu (можно прямо qemu-aarch64/qemu-arm, чтобы запускать ARM-ные бинарники - оно будет на лету транслировать исполняемый код, но использовать системные вызовы твоей ОС). Если нужна полноценная вм, то qemu-system-arm/qemu-system-aarch64 соответственно.
>>1724230 Антивирусные компании,ресерч,эксплойт дев(на гране,но если на какой-то зиродиум,то норм),поиск зиродеев,реверс ембеддед прошивок,приложений и много чего еще(на хх иногда появляются вакансии даже с приличными зп в 200-300к) Ну вообщем много вариантов,это достаточно перспективно как мне кажется.Возможно вакансий меньше чем быть вебером или там на джаве что-то писать,но за то ты редкая птица,тебя так просто не заменить и не уволить Я особо не боюсь получить по рукам-авторы программ не из россии,не платят налоги или чего-то такого.Да и использовать эти проги будут пару человек которые у меня это заказывали
Есть что-то лучше AsmJit? Алсо, стоит обмазываться дизассемблером для автоматизации патчей или это слишком медленно и лучше вручную смотреть байты в отладчике?
Есть, LLVM. Разработчики эмулятора PS3 даже него как раз целиком перешли в качестве машинокодогенератора. Раньше у них был LLVM для основного ядра powerpc и asmjit для недоядер SPU
>>1724656 > LLVM Но он же для других задач, разве нет? Он же как JIT херовый, только под компиляцию заточен. Посмотрел примеры и там ад какой-то. Как вообще кодить с ним? Плюс он тяжелый, заебешься таскать с собой. А весь AsmJit весит 100 кб. С AsmJit хуяк-хуяк и запускаем код, а на LLVM какие-то портянки никак с асмом не связанные. Да и я же не пишу ЯП, мне просто на ходу код генерить и запускать. Расскажи хоть как его кушать правильно.
Сап, байтоёбы, что за двухрегистровое ископаемое с нижеприведенным сэтом:
>"IM n" // load the constant value n into R0 >"AR n" // load the n-th input argument into R0 >"SW" // swap R0 and R1 >"PU" // push R0 onto the stack >"PO" // pop the top value off of the stack into R0 >"AD" // add R1 to R0 and put the result in R0 >"SU" // subtract R1 from R0 and put the result in R0 >"MU" // multiply R0 by R1 and put the result in R0 >"DI" // divide R0 by R1 and put the result in R0
Пытаюсь из игры выдернуть файлы ресурсов. Наткнулся на закономерность, что у всех запакованных данных есть сигнатура 2 байта 78 9C. Почитал про нее пока бегло, нашел информацию о том, что это сжатые данные библиотекой zlib. Через пару дней смогу только попробовать применить, если я правильно понял, к буферу с данными функцию inflate.
>>1727984 Что имеешь в виду? Если ты о том, что придется разбирать структуру условного PNG файла, если это, например, текстура, то в этом проблем нет. Данные могут быть и не очевидными, но суть не в этом. Мне главное быть уверенным, что эти данные сжаты именно zlib и что декомпрессия 100% вернет данные в их изначальном состоянии. На практике проверить смогу только завтра.
>>1728060 Ты слишком много думаешь, взял да затестил, дел-то на полминуты. Ты откуда-то этот пост написал, а если есть девайс, есть и компилятор, ну или интерпретатор питона на худой конец.
Ух бля... Да, сигнатура оказалась действительно сжатым потоком zlib. Но после декомпрессии, оказалось, что надо еще дрочить и жонглировать байтами, чтобы понять что происходит. Ты >>1727984 был прав.
Итог: 1. Ушло чистых 18ч на то, чтобы выдернуть из игры описание нпс, квестов и т.п. текстовую инфу в формате XML!!! Которая до запаковки в клиент была разбита на ~500к файлов, в каждом из которых не больше 128 байт текста с учетом того, что кодировка UTF-16. Что, бля? Нахуя??? Ладно, не суть... 2. С текстурами пока не ясно, уже наверное только завтра сяду. Но закономерность следующая: 4 байта - максимальный индекс (N) чего-то (обычно 5-7) (подозреваю использование mipmap'ов) 4 байта - размер следующего блока в байтах [блок N] 4 байта - N - 1 индекс 4 байта - размер следующего блока [блок N - 1] ... и т.д. до 0 индекса, при этом размер блоков постоянно увеличивается в 4 раза: 32(байта) -> 128 -> 512 -> 2048 -> 8192 -> 32768
>>1729396 > подозреваю использование mipmap'ов Да.
> есть идеи, вот файл Внутри мипмапов различимы блоки по 16 байтов (16 x 8 = 128 бит), значит внутри что-то уровня BCx. Возьми последний, самый крупный уровень и проверь на предмет DXT5 или выше.
мужики нужна помощь есть функция которая вызывает другую функцию находящуюся на определенном оффсете от this указателя. но если я лично хочу прочитать адрес этой функции добавив этот же оффсет к this то там оказывается нулевой указатель. я пытался это делать вручную и имея воспроизведенную структуру на с++. но в любом случае нулевой указатель.
вот листинг декомпилятора ida и мой код. то есть чтобы вы понимали там никак не может быть нуля потому что я сам могу вызвать изначальную функцию в любом месте и она вызовет ту с которой я хочу работать явно не по нулевому указателю.
>>1736620 Как ты получаешь указатель? В какой момент и откуда достаешь? Так-то ничего странного в этом нет. Особенно когда ты так шакально пытаешься вызвать функцию.
>>1736620 Перефразируй и дай больше информации. Скрины вообще никак не связанны между собой. Адрес функции нужно вычислить, а не разыменовывать адрес инструкции вызова функции.
>>1584716 (OP) Аноны, ебусь с asmjit, пытаюсь вызвать функцию. Создаю функцию, присваиваю адрес переменной через asmjit::jitruntime.add(), тут всё нормально. Чекаю адрес - всё верно. Из крестов она вызывается. Но самая ебень начинается когда я пытаюсь вызвать эту функцию из ассемблера через call. Десятком способов передавал адрес функции, но в итоге он либо нулевой, либо какие-то рандомные 2 байта и нули вместо адреса. Как передать абсолютный 64-битный адрес в call? Гуглил варианты через imm(), вариации ptr_64_abs() и прочее - нихуя не работает. Адрес в переменной есть, но в call он нулевой становится. Ничего не понимаю. Особенно что за 2 байта иногда появляются.
как происходит взаимодействие с графоном? вот есть проц с набором команд, есть граф. чип, тоже с набором, но я мб слеп, мб концепцию не выкупаю, когда проц просит что-либо отрисовывать. какая вобще прослойка между процом и видяхой? если ввод/вывод в кмд осуществляется через прерывания, то как именно происходит отрисовка не одупляю. мб есть че почитать по этому или посмотреть. заранее спасибо!
>>1743221 и про софт и про железо. слышал что есть программы, которые позволяют просматривать как строится кадр для отрисовки, наверное за ним стоят команды, которые формируют картинку, но я не встречал, не видел их упоминания нигде. Наверное все это скрыто за d3d-всякими-хуинями.
>>1743231 Сначала как обычно пишутся в видеопамять данные и исполняемый код - шейдеры. Потом уже идет работа с ними. В DX10/11 по очереди синхронно вызываются шейдеры из конвейера. Один цикл отрисовки - drawcall, их много в одном кадре. ЦП вызывает шейдер и ждет его выполнения на GPU. Кадр по частям рисуется в буфер кучей drawcall. Потом вызывается Present - готовый кадр выводится на экран. В DX12 сначала собираются команды в очередь команд, ставится Fence, а потом асинхронно запускается всё на выполнение. По окончании выполнения очереди команд, Fence отправляет сигнал в ЦП что кадр отрендерен. При этом можно готовить очередь команд для следующего кадра пока рендерится текущий. По сути ЦП подготавливает данные в видеопамяти, запускает шейдеры и посылает команды вроде отрисовки на экран. Ничего больше он не может делать. Контролировать выполнение шейдера тоже нельзя, он просто запускается и пишет результат в видеопамять.
>>1586785 покидайте примеров какие дорогие и редкие железки могут нуждаться в реверсинге? я вижу в этом единственное оправдание заниматься этим тяжким трудом, малварь - не в счет. blackfin - ебануться. отреверсишь - можешь кучи бабла рубить на продаже своего решения (помощи реверсинга и вычленения кода).
>>1627732 у девайса есть оперативка именно на внешнем чипе? чтобы поиметь черный плавник, могут понадобиться аппаратные средства для отзеркаливания оперативки и прочих логических логов. придется собирать разные проекты официальным софтом. копать и реверсить сам софт. да б-г знает что еще. какая цель? получилось ее достичь? можешь скинуть фейкомыло?
>>1743243 Анон, ну вот я купил железку за 300 тысяч рублей. И там, сука, нет даже SNMP. Точнее, он там есть, но заблокирован. А чтоб SNMP был, надо купить эту же железку, но уже за 500 тысяч. И это я даже не буду говорить о том, что себестоимость этой железки раз в 10 меньше, даже считая R&D.
И что делать, если мониторинг жизненно необходим? Если железка встанет, или перейдёт в аварийный режим работы, то мне необходимо узнать об этом как можно скорее, иначе я могу попасть ещё на несколько сотен тысяч, а заодно и штраф государству буду платить.
И что мне остаётся делать, заплатив 300 штук? Для одной железки, у которой для управления имеется нативное приложение под винду, я таки сумел написать включалку SNMP, изрядно поебавшись с идой и вайршарком. А есть ещё и другая, у которой только вебморда. И пришлось натурально писать парсер для этой вебморды. Я этих жадных пидорасов ненавижу уже, а деваться некуда - на рынке узкоспециализированного оборудования, где имеется от силы 2-3 производителя, такое говно сплошь и рядом.
>>1743243 >покидайте примеров какие дорогие и редкие железки могут нуждаться в реверсинге? Ну купи за копейки какой-нибудь древний voip-шлюз на базе Lucent из e1 в h.323 и попробуй активировать там лицензию на SIP. Ближайшие лет 10 все еще можно будет грести с этого бабло.
>>1745130 Они и так уже умирают по факту Полностью - никогда,слишком много легаси,однако сейчас уже даже написания самого эксплойта это труд чуть ли не больше чем его нахождения из-за митегейшенов Еще лет 5-10 назад с этим было куда проще
>>1745151 если бы это умирало, гугл вряд ли бы развернула Project Zero для борьбы с подобными ошибками. Ну и есть эмбедщина, которая вся на сях и скоро жестко расплодится по всему миру с выходом в интернет.
Напоминаю, что ддос атака - это тоже кибератака, которая нарушает information availability, а ддоснуть через ошибку в памяти проще простого, не нужно ебаться для того, чтобы исполнить произвольный код, можно просто переехать указатель или врезаться в одну из митигаций для аварийного завергения программы.
А вообще, даже в 2к20 году не существует ни одной митигации, которая спасала бы полностью от эксплуатации. Даже Control Flow Integrity научились обходить и исполнять произвольный код через эту защиту, а это последний писк технологий защиты от атак на память, там даже эвристический анализ крутится в динамике. Стоимость эксплоитов растет, а исследовательские компании и гос. органы, по всем этим причинам, не потеряют к этому интерес. Подноготная всея вселенной - код на С/С++. ОСи, браузеры, вьюеры для всех форматов файлов, медиасофт, аудио/видео, нутро веба (nginx и apache написаны на Си), интерпретаторы всей известной скриптопараши, виртуальные машины, эмбедщина, набирающий обороты интернет вещей и так далее, продолжать можно бесконечно. Собери это все в кучу - сотни миллиардов строк кода, если уже не триллион+ Короче, эта хуита с нами надолго. Просто как обычно продолжится игра в кошки-мышки, на каждую новую защиту придется по 1-2 обхода этой самой защиты, ИБшники тоже чето хавать должны. Что правда - порог вхождения всегда будет повышаться, ибо каждый ньюфаг должен будет изучить историю бинарной эксплуатации длиною в десятки лет, и сперва потренироваться на неревантных техниках, дабы через тернии к звездам добраться к современным атакам.
>>1584716 (OP) Аноны, объясните пожалуйста мне. Для меня это контринтуитивное понимание. Каким образом делаются подобные вещи, вроде модификаций на популярные игры добавляющие в них мультиплеер? Какими знаниями нужно обладать, чтоб сотворить такое?
Если кто-то объяснит на пальцах, очень буду признателен. Чисто ради общего развития.
>>1745277 Как это не существует? Да уже десятки разных смягчений запилены в прод, на разных уровнях и нормально так выполняют свою работу. Осталось убить все code-reuse атаки.
>>1745348 Не существует. Назови хотя бы одну (псс, такой нет, не найдешь). Попытки убить code reuse атаки - это как раз тот самый control flow integrity и pointer authentication, но это лишь усложнение эксплуатации. Для классического возвратно-ориентированного программирования есть модификации, которые позволяют обходить современные защиты. Короче говоря, серебрянной пули нет и не будет, будет усложнение. Пока язык позволяет срать в память - абсолютной защиты памяти быть не может. >>1745358 Как бы это смешно ни звучало - нет, накорню не решило бы ситуацию. Раст во многих случаях, особенно при написании лоу-лвл ебанины, обязывает девелопера абузить ансейф блоки кода, причем чем больше код, тем больше ансейф блоков, а там остаются проблемы с памятью. Кстати, это одна из причин, почему раст не взлетит - шило на мыло менять никто не будет, он только сузит attack surface, а переписывать всю Вселенную с С/С++ на раст никто не будет, ибо экономически это никому не выгодно. Зиродей атаки тратят скорее не на компании, а на отдельных лиц (не раз ловили опасных преступников при помощи зиродеев). В плохих целях - шантаж влиятельных людей или кража их личной информации. Так что помимо всего этого, рафинированная абсолютная безопасность в вакууме невыгодна достаточно многим людям и даже организациям. А на вебе далеко не уедешь, там импакт слабее намного и удаленный шелл через веб-уязвимость - это 1 на миллион, когда в бинарщине это каждый третий memory corruption.
>>1745368 >Раст во многих случаях, особенно при написании лоу-лвл ебанины, обязывает девелопера абузить ансейф Ну ты уже тут обосрался. Если посмотреть растовские крейты, то там >90% кода вообще без ансейфа. Да и с самим ансейфом есть тонкости
>а переписывать всю Вселенную с С/С++ на раст Так это и не нужно, главное переписать опасные и узкие места
>ибо экономически это никому не выгодно Если весь софт, как ты утверждаешь дырявый, если гугл говорит, что у них 80% ошибок из-за ub, а майки что 70% - почему не выгодно?
>>1745379 Потому что ios дырявое говно и произошел oversupply. Учитывая, что rce или джейлбрейк на айпонт стоили в районе 2 лямов баксов, то представь себе сколько бабок надл платить хакерам. Вот и прикрыли прием временно. Хотя это лишь показывает насколько актуальна ситуация. Если в айос дохуя дыр, прикинь сколько дыр в попенсорце, особенно в драйверах. Охуилярд просто.
>>1745378 Крейтами растовский код не ограничивается, а этих узких мест просто дохуя. Особенно новый всплеск багов наблюдается, когда пытаются впилить костыли в большую кодовую базу.
>>1745373 Ну там так не просто. Инструментов готовых считай нет, нужно подбирать фаззер, корпус, очень часто приходится допиливать напильником под конкретный таргет, добиваться высокого покрытия кода. Ну а дальше ждать, и ждать порой долго, также нужны приличные мощности, домашнего пека не хватит.
>>1745368 Мне все смягчения перечислить? Их так-то несколько десятков. Конкретно code-reuse атаки убивает CFI/DFI - это CFG/RFG/CET итд. Часть этих смягчений уже реализованы в современных компиляторах. Конкретно ROP(J/C) убивает CET, это аппаратная фича. COOP убивается на уровне компилятора (см clang). Атаки на данные - смягчаются аналогичными технологиями защиты данных, например свеженький KDP (Kernel-Data-Protection) от мелкомягких, реализованный через SLAT (NPT/EPT). Я уже не говорю про различные 3-party реализации коих тоже N-количество и они даже выполняют свою работу.
Как я и говорил, современная модификация возвратно-ориентированного программирования разбивает в пух и прах технологию CFI (Control Flow Integrity), обходя сразу 4 защитные технологии, включая эвристический анализ.
Также советую прочесть доклад одного из исследователей Google Project Zero (https://docs.google.com/presentation/d/1lfQGEX2aGEA1H7flsXw4V30ZkbnrfikYk9IrctuwZO8/edit#slide=id.p), который показывает что есть weird machines, как возможно исполнение произвольного кода при идеальном flow integrity и насколько сложно математически доказать exploitability/non-exploitability. Сам факт возможности создавать эксплоит под уязвимую программу кроется в теории вычислений. Сей доклад толсто намекает на математическую невозможность решать подобные проблемы на 100%. Вывод один, касательно ошибок с памятью, - если язык программирования ПОЗВОЛЯЕТ испортить память, то идеального защитного механизма не создать. Если программист ошибся, то это минимум уязвимость к ддос атаке, максимум - удаленный шелл, что до сих пор не редкость, несмотря на тонну митигаций.
Выход один - писать на managed языках, но там есть свои, другие проблемы. И такие языки не везде применимы.
>>1745571 Такие гаджеты нужно еще умудриться найти. Сам паттерн вычленяется на стадии компиляции, т.е можно смягчить. Шипнутый мелкомягкими CET уже смягчает ROP и будет расширен позже, осталось дождаться поддержки со стороны компилей. Да и это только один слой уменьшения поверхностной атаки. Существуют другие меры, которые даже при успешном выполнении кода, просто не позволяет оказать влияние на систему.
>>1745345 для старых 3дж гта (3-вс-са) пердолики нашли много функций, которые позволяли делать то же что и файлы с иссиями, но уже без файлов. первый мультиплеер был просто две тачки и "трейнер", который позволял двум игрокам погоняться без выхода и машин. пруф оф концепт. это было для гта 3. потом нашли дохуя всего, что-то даже допили и перепилили (например рендеринг *.x direct 3d моделей напрямую в сцену, движок об этих моделях пикапа нитро и починки ничего не знал или до сих пор не знает), шейдеры всякие и т.п. чтобы такое сотворить, нужны средние познания в реверсинге и большие непосредственно о той игре, для которой пилят мультиплеер. для гта 4 и гта 5 не знаю, но поскольку там уже есть мп, думаю это было легче. все это - жуткое байтоебство. адовое. в одиночку непосильная задача.
>>1745585 pwn2own - каждый год запускают калькулятор через дыры в известных браузерах, где помимо всех митигаций, включая защиту от code reuse, каждая вкладка исполняется в песочнице. Повторюсь, серебрянной пули нет и не будет, пока язык позволяет портить память. Но будет расти сложность взлома. С математикой и теорией вычислений спорить сложно.
>>1745594 >>1744620 тупанул. а можно ссылку на точно то о чем речь? древние не могу найти, интересно посмотреть на чем они были сделаны и насколько вообще может быть сложной работа. какой год девайса? скинь пож. модель.
>>1745593 Вот только за последние годы, нифига не ломают браузеры, разве что edge. VBS еще какая серебренная пуля в данном случае. Да и причем тут язык то вообще? Rust так-то тоже не серебряная пуля и не все memory corruption баги убивает.
Один из представителей группы по стандартизации C++ дико обосрался обозревая Rust, хотя казалось бы человек с опытом. И продолжил серить в комментах.
И таких примеров навалом (eax.me, linux.org.ru там вообще уйма таких в каждом треде про раст, почитай tsar1997.blogspot.com - абсолютно поехавший крестоёб).
>>1745602 Safari на полседнем p2o ломали, хром то ли в 2017, то ли в 2018. Но следует учесть, что у участников есть на все про все 48 часов на это. Я уверен, что есть зиродеи на подобный софт, которые не раскрывают по понятным на то причинам. А был бы реальный silver bullet против бинарщины, то распустили бы project zero, целый кусок инфосек индустрии бы отвалился, миллионы ресёрчеров потеряли бы работу, многие конференции и ситиэфы тоже бы если бы и не закрылись, то очень сильно видоизменились. Но это не так. Все куда сложнее, чем это кажется на первый взгляд. Помнится, когда пришли DEP и ASLR с разницей в год, то тоже все выли, что хакингу пришел пиздец, но как видишь.
Rust не серебряная пуля потому, что тоже позволяет срать в память, хоть и не так фривольно, как С/С++. Попробуй насри в память в пайтоне или джаве. Там это не прокатывает, ибо это управляемые языки. Хотя их подноготные все равно написаны на С/С++ и если там есть дыры, то это куда серьезнее, нежели если бы они были в аппках, написанный на этих managed языках.
>>1745822 Серебряная пуля это инструменты, а инструменты денег стоят. Посмотри цены на проприетарный софт, десятки тысяч долларов в год. Ну и стек знаний должен быть специфический, мягко говоря. Как видишь порог вката высокий, поэтому так. Это не веб-хакинг, где бурп запустил, пока чаек завариваешь и нашел пару багов.
> Но следует учесть, что у участников есть на все про все 48 часов на это Ну ты наивный конечно, они наработочки годами маринуют.
>>1746032 Кстати, а тебе не кажется странным то, что дыры в вебе намного легче обнаружить и предотвратить, чем лоу-лвл дыры, связанные с памятью? И их все равно просто навалом, да и на рынке труда в инфосеке веб ссыт на бинарщину в плане кол-ва вакансий и вообще спроса (отталкиваясь от количества, конечно же, но как по мне веб это унылая хуета, не моё)
>>1745822 >>1746032 >>1746074 Я думаю вы просто хуесосы-дармоеды. Вы нихуя не делаете. Всё это ваше байтоёбство просто хуерга. Какие-то специалисты, какие-то project zero, а по итогу просто хуйня на постном масле. Вот. Покажите мне хоть одну лоу-лвл ошибку за последние 10-15+ лет, которая хоть как-нибудь влияла на безопасность пользователя, а не просто крашила ему аппу.
>>1745822 >Но следует учесть, что у участников есть на все про все 48 часов на это Не,они заранее все готовят За 48 часов найти зиродей в хроме и написать рабочий эксплойт это что-то на гране фантастики,учитывая размеры и сложность хрома или другого браузера типа того же сафари
>>1746190 Все CVE-репорты - бэкдоры. В кодовых базах вроде Линукса (30 миллионов строк кода) и гугл хрома (85+ миллионов строк кода), написанных на небезопасных языках, не может быть ошибок со стороны программистов, это все бэкдоры, ррряяя! Ну всё с тобой ясно, здоровья тебе, анон
>>1746194 ТЫ ЦРУ. ДАВИШЬ ЖЕЛЕЗНЫМ САПОГОМ НА ДВЕРИ ЛЮБЫХ КОМПАНИЙ @ ТЕБЕ ДАЮТ ЛЮБЫЕ СЕРТИФИКАТЫ И ПОДПИСИ ПЛЕВАВ НА РЕПУТАЦИЮ. ТЕБЕ ОТКРЫВАЮТ ЛЮБЫЕ БАЗЫ ДАННЫХ И КОД @ ДЕЛАЕШЬ ВИРУСЫ ДЛЯ УНИЧТОЖЕНИЯ ЯДЕРНОЙ ПРОГРАММЫ ПРОТИВНИКА @ ИСПОЛЬЗУЕШЬ БЭКДОРЫ ИЗВЕСТНОЙ КОМПАНИИ, КОТОРАЯ ИХ НЕ ИСПРАВЛЯЕТ И РЕПОРТИТ ТЕБЕ @ ВАСЯН ИЗ ЛИПЕЦКА СПУСТЯ 10 ЛЕТ ДОКАЗЫВАЕТ, ЧТО ЭТО БЫЛИ ХИТРЫЕ БАЙТОЁБЫ-ПРОГРАММИСТЫ С УЯЗВИМОСТЬЮ НУЛЕВОГО ДНЯ
>>1746200 да-да, гугл просто так создали project zero от нехуй делать, просто бабок дохуя, заняться нечем. Ведь зиродеев вообще нет, это не опасность ни разу, митигации сделали эксплуатацию невозможной, только бэкдоры для ЦРУшников и прочих Джеймс Бондов работают, остальное от лукавого. Кудах!
Вот Эпл твари продажные, подстилки спецслужб, ишь сколько бэкдоров для АНБ наплодили, что топ зиродей-брокер даже отказывается платить за айос зиродеи из-за переизбытка репортов, ууу хитрюги!
>>1746225 >а я этого не говорил. это уже твои манякопротивляния. >Покажите мне хоть одну лоу-лвл ошибку за последние 10-15+ лет, которая хоть как-нибудь влияла на безопасность пользователя, а не просто крашила ему аппу.
Ну и что, подумаешь, переизбыток на эскалацию привилегий во всемирно известной ОС, которую юзают миллионы людей, тьфу! Подумаешь, можно удаленно исполнить код через дыру в Сафари, ха! Там же все в сэндбоксе крутится, никому ничего не грозит! Байтоебство не нужно, лоу-лвл безопасность - пережитки 90-ых! Ку-ку-ку-кудаааах!
>>1746200 >ДЕЛАЕШЬ ВИРУСЫ ДЛЯ УНИЧТОЖЕНИЯ ЯДЕРНОЙ ПРОГРАММЫ ПРОТИВНИКА Да нет,стухнет написали жиды без помощи каких-то там цру Зиродей который был в этом черве они купили,все остальное написали сами У анб и цру помоешный код,малварь на уровне говна с хакфорумс.Единственная сила у них это деньги и аутсорс,лол >ИСПОЛЬЗУЕШЬ БЭКДОРЫ ИЗВЕСТНОЙ КОМПАНИИ, КОТОРАЯ ИХ НЕ ИСПРАВЛЯЕТ И РЕПОРТИТ ТЕБЕ Зачем им это делать?Можно примеры таких ужасных уязвимостей кроме рце в smb v1? Мне чет кажется что если бы они действительно были бы в сговоре,то получали баги бы поновее чем говно 30 летней давности
>>1746241 Маня, какой же ты тупой Импакт от эксплуатации лоу_лвл дыр настолько мощный, что сферический исследователь в вакууме, найдя дыру и сумев высрать под нее эксплоит (в реалиях 2к20 года - цепочка из нескольких эксплоитов), пропочтет продать ее на зиродиуме, нежели пытаться атаковать всех и вся, в век, когда тебя найдут даже если ты сидишь через левую точку доступа + tor + vpn + 2 виртуальные машины, одна из которых qubes, вторая из которых tails. В 2к20 все бинарные эксплоиты in the wild - дело рук государств и их спецслужб, им нечего бояться. Обычным пирожкам можно только попать калькуляторы на специально отведенных соревнованиях, в противном случае тебя просто уберут. Ты поди клишированных фильмов про хацкеров пересмотрел.
>>1746252 >когда тебя найдут даже если ты сидишь через левую точку доступа + tor + vpn + 2 виртуальные машины, одна из которых qubes, вторая из которых tails. пруфов конечно не будет, да?
у тебя пиздец крышу рвёт от твоих маняфантазий. и это ты мне говоришь про клишированные фильмы про хацкеров?
у тебя хоть один реальный кейс есть подобного? или информация настолько засекреченна, что известна только тебе и ещё двум анонам с двача? сразу видно человека с соц. проблемами
>>1746250 Блин,правда наверное Ведь жиды не могли спиздить эти серты как это делали авторы зероаццесов,ТДЛей,салити,газавата и прочей залупы тех времен Нахуя компаниям этим заниматься,ебик?
>>1746268 слышал? был такой челик сноуден. представляешь, он говорит что якобы крупные американские компании поголовно сотрудничают с анб и цру. но я думаю он дурачёк просто.
>Ведь жиды не могли спиздить могли, не могли. какая хуй разница? зачем им это делать, если у них спецразведка и цру в друзьях.
зачем ты придумываешь эти манякопротивляния? очевидно, что всё гораздо проще. но видимо байтоёбам это не так очевидно, им нужны схемы с суперхакирами как в фильмах, потому что так круче.
>>1746265 Настолько, что через эксплуатацию лоу-лвл дыр возможно исполнение произвольного кода от имени уязвимого процесса (в других типах уязвимостей, не связанными с памятью, это БОЛЬШАЯ редкость)
>>1746285 Отсосать большой черный хуй Иди нахуй из асмотреда,кабанчик ебанный Тебе же еще надо договориться с трендмикро чтобы они тебе бекдоры и серты подарили
>>1746252 >>1746252 кстати вот удалось найти в одной старой проге переполнение когда грузишь кривой сохраненный файл. в отладчике выполнение вываливает на те же самые байты как в файле. кроме 90 и прерывания не придумал что туда запихать. хотелось похачить, в итоге оказалось, что вручную слишком много патчить. ключи для нее и так есть. это кстати большое поле для экспериментов. для вин рара такое читал что есть. читал креклаб и доставило как там патчили прогу чтобы она сама себе ключ подбирала (там были не сложные ключи).
>>1746169 Значение знаешь? У меня уже больше года парочка kernel information disclosure багов валяются, это их не делает zero-day? Надо бы зарепортить кстати, да все руки не дойдут.
>>1746378 что тут васянского? имхо вообще сложно пиздец, а чтобы заработать - надо реально много знать. курсов не хватит. полгода-год безвылазно обмазываться придется.
>>1746383 Полгода-год? Лолшто? Это для ссаного веба мб, для байтоебства нужно годика 3-4 поебашить как минимум, чтобы из себя представлять хоть что-либо.
>>1746288 Я другой анон Далеко ходить не надо. Wanna Cry в 2017 распространялся через эксплоит, который использовал переполнение в куче в протоколе SMB. Последствия - сам понимаешь.
>>1746383 Если бы полгода-год. Нужно уметь прогать, реверсить, знать архитектуру и устройство ос, шарить в продвинутых топиках и тулзах, даже матан нужен, внезапно!
реверсач, помогите пожалуйста. start proc - она же entry point. Под фиолетовыми стрелочками: почему при запуске ss и es связаны с ntdll.dll? Инструкция от начала красной стрелки вызывает исключение, которое не могу побороть. Я буквально не могу понять, что происходит, кроме, разве что, проверки, в каком месте загрузилось приложение. А почему регистр стека не nothing, почему память не может писаться по этому адресу - не понимаю.
>>1745822 >Попробуй насри в память в пайтоне или джаве. Берешь и находишь дыру в интерпретаторе. Как будто есть какая-то принципиальная разница с лоу-левел эксплойтами.
>>1746510 Вообще не обращай внимания на сегментацию в винде, у тебя (кроме fs/gs) базы у всех сегментных регистров ноль, а лимиты ~0, то есть абсолютно похуй, через что адресоваться.
>>1748382 А откуда этот код, который подозрительно напоминает шелкод? Может, ты его распаковывал и распаковал криво? Может, там TLS initializers? Может, там какие-то длл, которые грузятся раньше и что-то с ним делают?
>>1748472 > В иде поставил флаги Мог бы с тем же успехом у себя на лбу написать. В файле правь, а не в базе иды. Винда про базу ничего не знает, отлаживаешь ты файл.