В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (RE).Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда.Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.Книги по RE:beginners.re - "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна!Чтобы не палить свой адрес почты, вот прямая ссылка https://beginners.re/f572d396fae9206628714fb2ce00f72e94f2258f/Рикардо Нарваха: Введение в реверсинг с нуля, используя IDA PRO https://yutewiyof.gitbook.io/intro-rev-ida-pro/Введение в крэкинг с помощью OllyDbg https://backoftut.gitbook.io/intro-cracking-with-ollydbg/https://mega.nz/#!Bc9VVAYC!Vk6CFlW6VIoskLNgDKXbsL6FacDQeOKe6LX92wNicKY Нарваха практический курс по дебагингуhttps://www.goodreads.com/shelf/show/reverse-engineering - список книгСайты по RE:http://wiki.yobi.be/wiki/Reverse-Engineeringhttps://www.reddit.com/r/ReverseEngineering/comments/hg0fx/a_modest_proposal_absolutely_no_babies_involved/http://www.program-transformation.org/Transform/ReengineeringWikihttp://blog.livedoor.jp/blackwingcat/https://yurichev.com/blog/http://wiki.xentax.com/index.php/DGTEFFhttps://exelab.ru/Инструменты для RE:Дизассемблеры:1) IDA Pro 7.2.torrent2) IDA Pro 7.0.torrent (x64 only, для XP нужно патчить PE + вылеты)3) IDA Pro 6.8.torrent4) IDA Pro 5.0 - бесплатная версия для некоммерческого использования5) Radare 2 - наконец прикрутили гуй, но по прежнему нужна только клиническим, не умеющим в скачивания торрентов, или пользователям альтернативных ОС6) Ghidra для любителей анальных зондов от АНБ не такие уж они и анальные7) ОстальноеВсе книги и статьи Криса Касперски (R.I.P.)https://yadi.sk/d/CxzdM1wyea4WP или https://rutracker.org/forum/viewtopic.php?t=5375505+ https://rutracker.org/forum/viewtopic.php?t=272818Книги по ассемблеру:"Архитектура компьютера" Э. ТаненбаумЮров В.И: Assembler http://booksdescr.org/item/index.php?md5=73957AEFEADCB7F0C112DCAED165FEB6С.В. Зубков: Assembler. Язык неограниченных возможностей.Randall Hyde: The Art of Assembly Language http://booksdescr.org/item/index.php?md5=9C0F88DC623FCE96A4F5B901ADCE95D3Сайты по ассемблеру:Замена почившему wasm.ru- https://wasm.in/ , архив старого сайта https://rutracker.org/forum/viewtopic.php?t=407571 или восстановленный https://vxlab.info/wasm/index.php.htmhttps://www.unknowncheats.me/wiki/Assemblyhttp://asmworld.ru/https://software.intel.com/en-us/articles/intel-sdmhttp://www.nasm.us/doc/https://sourceware.org/binutils/docs/as/index.html#Tophttps://msdn.microsoft.com/en-us/library/afzk3475.aspxhttps://conspectuses.blogspot.com/2019/03/fasmg.htmldisassembler.io Дизассемблер онлайнДля ковыряющих винду и софт под неё, сайты с описанием структур со смещениями и разными версиями оных:http://msdn.mirt.net/http://terminus.rewolf.pl/terminus/http://geoffchappell.com/«Внутреннее устройство Windows» интересующего издания.Документация Intelhttps://software.intel.com/en-us/articles/intel-sdmРазноеMichael Abrash's Graphics Programming Black Book Special Edition http://www.phatcode.net/res/224/files/html/index.htmlhttp://www.phatcode.net/res/224/files/html/index.htmlhttps://www.agner.org/optimize/http://booksdescr.org/item/index.php?md5=5D0F6DBC1410E10BC489167AFE8192DFhttps://www.cs.cmu.edu/~ralf/files.htmlhttps://www.sandpile.org/http://ref.x86asm.net/index.htmlhttps://pnx.tf/files/x86_opcode_structure_and_instruction_overview.pnghttp://www.jegerlehner.ch/intel/Предыдущие№8 https://arhivach.ng/thread/455487/№9 https://arhivach.ng/thread/489188/ >>1439555 (OP)
Продублирую Может кто объяснить почему при создании буфера char[128]https://pastebin.com/e7ZzDKGkВ машинном коде к регистру ESP прибавляют 0xffffff80, это на 127меньше чем 0xffffffff, но вопрос не только почему 127, почему по сути стек растет с конечных адресов. Это норма? Я думал он со середины куда-то растет(к уменьшению или к увеличению)https://pastebin.com/69BBJeLa
>>1500019> это на 127> почему 127Это дополнительный код. Отрицательное число. 0x100000000-0xffffff80=(~0xffffff80)+1=0x80=128> почему по сути стек растет с конечных адресовВ числе прочего - легаси. Раньше было так (считая с младших адресов): код, константы, инициализированные переменные, неинициализированные переменные, неиспользуемая память ... стек. Память выделялась вперед, к стеку, к старшим адресам, стек рос назад, к памяти, к младшим. Очень удобно, размер стека ограничен общим размером всех данных, кода и адресным пространством, и он не фиксирован. Так и прилипло. А сейчас это уже захардкожено в каждом первом процессоре, даже в тех, которые вроде бы умеют в любой вариант стека например, в ARM в нормальном режиме - будет расти, как сам решишь - он аж четыре варианта умеет, а вот в Thumb уже захардкожено.
В начале недели на редите в RE разделе был занятный пост о том, как челик начал потрошить актуальный BattlEye с его VMProtect-ом. В посте была только ссылка на бложик, но я никак не могу найти ни тему, ни сам бложик наверное я рукожоп и мое гугл-фу недостаточно сильно, а может разрабы надавили какой-нибудь своей EULA-ой и заставили все потереть.Может кто-то тоже видел/заинтересовался/схоронил?
>>1500019>почему по сути стек растет с конечных адресовМне понравилось сравнение Юричева - представь что ты студент и у тебя одна тетрадка память приложения для записи лекций и практических занятий всякие text/bss/heap/stack. Ты можешь их чередовать и потом ебаться разбираясь что и где записано или просто ебашить лекции с начала, а практику перевернув тетрадь с конца.Ну и как >>1500094 антон заметил, все эти правила - реализация конкретной архитектуры.
>>1501069"идут навстречу друг другу", по-русски говоря )>>1501062не это примерно?https://www.google.com/search?q=reddit+%22voski_rvt%22&client=firefox-b-ab&source=lnt&tbs=qdr:w&sa=X&ved=0ahUKEwi-s9-z3KvlAhVNxKYKHZOPDmsQpwUIJw&biw=1111&bih=695
>>1501107>идут навстречу друг другуВсе верно иногда не стоит углубляться в сравнения>не это примерно?Спасибо, но нет)Тему нашел просто искал жопой, вдруг кому интересно:https://www.reddit.com/r/ReverseEngineering/comments/dbtnnh/hello_all_started_on_the_past_week_working_on/
>>1499956 (OP)>beginners.re - "Reverse Engineering для начинающих"-Блядь, я по приколу скачал, не могу остановиться лол.Охуенно пишет.Очень нравится привязка к С, написал - хоп, посмотрел что высралось в годболт.Вообще класс.
>>1502542>>beginners.re>связь между кодом на Си/Си++и тем, что генерирует компилятор, вбилась в его подсознание достаточно глубоко.Так и деградирует программист в типичного реверсераДальше можно не читать.
А насм это точно про "низкоуровневость"? Макросы-хуякросы, строковые контсрукции; а я думал, мне тут будут пояснять как с mov и inc помещать "приветмир" на вывод.
>>1502578Просто не зашло, бывает.А мне очень понравилось.>>1502602>Так и деградирует программист в типичного реверсераЯ не программист, хуй я клал на программирование с галерами. У меня профессия есть.
>>1503195> Как вам коллега?Очень плохо, до обычного уровня CppCon не дотягивает. Настоящие программы с множественным наследованием, интерфейсами и без символов она не реверсила, иначе презентация была бы о другом. Все, о чем она рассказала, знает любой C++-мидл, не являющийся реверсером никаким местом.
https://github.com/REhints/HexRaysCodeXplorerУ меня на 7.0 и 7.2 иде не хочет работать. У кого также?
>>1503529А насколько оно удобнее стало со времен конкурса? В то время плагин был совсем неюзабельным, reconstruct лажает,object explorer нинужен, больше там не было ничего. Проще свои скрипты писать.
Перекатываться на гидру или подождать еще? В разы быстрее иды развивается, плагины пилят каждый день. Отговорите меня.
>>1503290куда воевать, чтобы знать столько, сколько С++миддл не являющийся реверсером никаким местом?
>>1507008Ну везде же описывается, как крестообъекты и крестоисключения устроены в основных компиляторах. Про исключения даже на том же CppCon было.
>>1507031>>1507969>Бабла ща хватает?>Не хватает.Вот сейчас без рофлов:- Есть тут те, кто зарабатывает на жизнь реверсингом? Как к этому пришли?- Какие варианты вообще пристроить свою тушку сейчас существуют? Понятно, что самое явное из белого это AV, возможно поиск/продажа дыр заинтересованным. А из серого, помимо явной мальвари/сплоитов?
>>1507008Для начала с уровнем джуна ознакомиться.https://www.youtube.com/playlist?list=PLlb7e2G7aSpTFea2FYxp7mFfbZW-xavhLhttps://www.youtube.com/playlist?list=PLlb7e2G7aSpRs7YafQ1GgJvyRku10m1RNПаралельно работа виндовс/линукс/алгоритмы/патерны
Что значит эта символика в Ida? Некоторые функции экспорта помечены ею, самих функций в бинарнике нет.
>>1509278> функции экспортаЭто значок ASCII-строк. Либо это forwarded-функции, т.е., указание лоадеру брать функцию из другой длл (у строки формат "ИмяДлл.ИмяФункции"), либо IDA ошибочно распознала функцию как строку, такое бывает.
>>1509459Как это работает? Во время загрузки изображения в память, загрузчик автоматически проставляет переходы? И при вызове этой функции, напрямую вызывается функция из другого модуля, правильно?
>>1509472> И при вызове этой функции, напрямую вызывается функция из другого модуля, правильно?Правильно, если при ресолве импорта загрузчик видит, что экспортируемая функция - это форвард, он подгружает целевую длл (которая до точки) и ресолвит функцию оттуда.
>>1510020> как мне самому собратьПоложить вместо адреса функции строку с именем форварда, при этом, чтобы она была воспринята как имя форварда, а не как эспортируемая переменная, эта строка должна находиться в пределах директории экспорта. Пример на fasm:MyFunc: ret ; Обычная функция для примера....data exportexport 'MYDLL.DLL',\ MyFunc,'MyFunc',\ ForwardName,'ForwardedFunc'ForwardName db 'KERNEL32.ExitProcess',0end dataПример с линкером, для сишки/масма:// mylib.c #include <windows.h>void MyFunc(void) {}BOOL CALLBACK DllMain(HMODULE hInstDLL, DWORD fdwReason, LPVOID pvReserved) { return TRUE; }// mylib.defLIBRARY MYLIBEXPORTSMyFuncForwardedFunc = KERNEL32.ExitProcessСобираешь и линкуешь: cl /c mylib.c && link mylib.obj /DLL /DEF:mylib.def.
>>1508721Хороший курс, просмотрел первую часть, узнал больше вещей, чем за все курсы со степика и прочих онлайн дрочильнь, в которых кроме жиденького ОПП ничему не учат.
>>1499956 (OP)>Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС?Для этого есть си с классами
>>1511634Если компилятор поддерживает интринсики, то асм совершенно необходим только в обработчиках прерываний и для переключения контекста. Буквально полсотни строк на весь проект. Остальное отлично делается интринсиками.
>>1511664О, вылез очередной скриптохолоп со своей сермяжной правлойtmА ничего что это реверсинга тред и тут похуй на чем ты та накропал свое говно?Нам же за тебя, обосрыша, разбирать твои какули.
>>1512051Вопрос конечно глупый, но есть же какие то штуки, которые можно попробовать. Вот я открыл его в hex редакторе и заметил там одну деталь. Повторяющиеся почти одинаковые последовательности. Че дальше хз
>>1512270Если картинка с палитрой, то черный пиксел и серый рядом, например. Тащи файл, по куску скриншота, не зная формата, ничего сказать нельзя.
>>1512358А ты уверен, что тебе нужно лезть в бинарное представление данных? Я вижу 4 цвета, которые можно раскодировать в 00, 01, 10, 11 тупо читая файл построчно любой либой для работы с PNG. Непонятно правда, что означают прозрачные блоки, да и над присвоением комбинации цвету нужно повозиться, но это вопрос простого перебора.
>>1512718> 4 цвета, которые можно раскодировать в 00, 01, 10, 11Этого явно недостаточно. Пока моя самая гениальная мысль состоит в том, что семь сегментов на картинке - это битовые плоскости, которые потом собираются в байт.
>>1513346>Это задача для 10 классаЕсли не шутка, то меня сейчас немного задело.. мимо-другой-анчоусА можешь саму задачу в оригинале скинуть, может там в контексте какие-то подсказки есть? Просто явной, школьного лвл-а, стеганографии текстовые чанки, EXIF, вставки после IEND в файле не вижу. В самой картинке в разных BitPlanes режимах подсказок тоже не увидел хотя картинка большая, может конечно где-то что-то проглядел...
>>1513422Скрин задачи не кину. Олимпиада закрыта уже. Но там ничего не было. Задача называлась цифровизация. Задание было "расшифруйте. В ответе запишите фразу"
>>1512064Дебил блядь, нахуй ты это сюда кинул, ведь весь вечер потрачу чтоб это раскодироватьмимо Джон Нэш
>>1513448может попробуй наложи куски у которых голубые квадраты по угам и смотри где цвета на всех шести совпадают, то там 1, иначе 0 или я хз. ПРИДУМАЙ ШТО-НИБУДЬ
Пишу, значитMESS1 db "privet $"MESS2 db 0dh,0ah,"kak dela? $"MESS3 db 0dh,"chto delaesh? $"MESS4 db 0ah,"jasno",0dh,0ah,"$"Эти сообщения выводятся ровно в столбик, как и положено. Почему?
>>1514648> Эти сообщения выводятся ровно в столбик1) Используешь недоэмулятор (DOSBox в дефолтном режиме или NTVDM), который трактует \n как \r\n. Возьми образ доса и нормальную виртуалку или сделай в досбоксе boot msdos.img для полноценной эмуляции - увидишь разницу.2) kak dela выводится, но тут же затирается следующей фразой, ты не должен его видеть даже если у тебя пункт 1.
>>1514918Кстати, а ведь зачем писать 0dh, если 0ah это перенос на новую строку? Если мы переносим курсор на новую строку, то он по умолчанию должен быть в начале строки, ведь строка новая.
>>1514932> то он по умолчанию должен быть в начале строки, ведь строка новаяНет. Ну то есть в 2019 да, но легаси. Пока не смыло, смотри сюда: >>1484880 Если ты возьмешь нормальный дос, то увидишь, что после 0a позиция курсора внутри строки не меняется, меняется только строка. То же самое, после 0d строка не меняется, и ты можешь делать няшные спиннеры и прогрессбары, каждый раз затирая их новой строкой.
>>1514932Видел старинные печатные машинки? Вот там машинистки делают так рукой справа на лево громко, хуяк, и печатают с новой строки.Тут тоже самое - 0dh (перевод коректи в начало строки), 0ah (просто переход на новую строку).>он по умолчанию должен быть в начале строкиТолько в твоем сознании зумера, фактически раньше бы просто шагнуло вниз на новую строку.
>>1514949Не видел и мне это не интересно. Сейчас 2019 год, ни о каких печатных машинках и речи быть не может! Компьютер НЕ ПЕЧАТНАЯ МАШИНКА!
>>1514983>Компьютер НЕ ПЕЧАТНАЯ МАШИНКА!Компьютер это ёбанный фрактал из легаси, привыкай. Даже ширина ракеты зависит от толщины лошадиной задницы.
>>1515059Судя по слову "dataseg" - нет. А вообще, да. Желательно, чтобы одновременно используемые переменные лежали рядом, чтобы они не вылетали из кэша, и все такое.
>>1515063У меня в методичке именно dataseg, а не .data. По значение порядка там напрямую не написано, но судя по примеру, это действительно важно. Спросил здесь чисто чтобы развеять сомнения.
>>1515069> У меня в методичке именно datasegЯ имел в виду, что для доса похуй.> скринДа, тут важно, потому что фактически это структура, а не отдельные переменные. При нормальных ассемблере и преподе у тебя была бы структура.
>>1499956 (OP)Здравствуйте. Вообщем есть такая задача пик 1.Вот мой вариант решения. mov ax, 10110110band ax, 10100010bxor ax, 10101010bsar ax, 2not axПрепод говорит что неправильно так как. Алгоритм данного задания должен выполняться для любого числа. Я вообще не понимаю как это можно реализовать для любого числа. Может подскажет кто?
>>1515191Ты на верном пути, но: маска в and у тебя явно неправильная - во-первых, она обнуляет по большей части четные разряды, а надо нечетные (разряды принято считать справа и с нуля), а во-вторых, она и один нечетный затрагивает; маска xor у тебя флипает нечетные разряды, а надо четные; и вообще маски по-хорошему нужно расширить до 16-бит, если ты с 16-битными регистрами работаешь; ну и вопрос выбора между sar/shr - спорный.
>>1515713я официально в ассемблере не очень, тем не менееmov ax, 10110110b так понимаю что тут мы записываем число для издевательствand ax, 10100010b если это маска обнуления нечетных разрядов, то я написал бы её так: 10101010bмаска в xor на мой взгляд правильная, как раз чётные разряды переворачиваются.
>>1515713>>1515774Этому зумерку был дан правильный ответ в ньюфаготреде, но он начал кидаться какашками по причине своей тупизны
Есть шеллкод из метасплоита. Как сгенерировать экзэшник чтобы этот шеллкод был в сегменте текстаи при этом сам бинарник был корректный. Не важно, что он на рантайме крашится. Главное чтобы он просто создался
Кто то знает как именно можно узнать инфу про температуру и скорость вращения куллера проца? гуглил чип монитринга, который установлен на моей мат плате. Там обьяснено, но нихера не понятно
>>1516700Может быть, не DOSBox, а окно консоли (NTVDM)? Да, так и должно быть, если ты запускаешь программу не вводом команды в консоли, а непосредственным запуском бинарника. Можешь воткнуть перед выходом ожидание нажатия клавиши (xor ax,ax int 16h или mov ah,1 int21h).
В чем различие данных от исполняемого кода? Допустим у меня есть массив байтиков, как понять данные это или инструкции ( исполняемый код) ?
>>1517268> как понять данные это или инструкцииНикак. Исполняемый код - это непосредственно байт (или байты) на который в данный момент указывает IP (PC, или как он там в твоем процессоре называется). Все остальное вполне может быть данными. Или кодом. Или и тем и другим одновременно. Или даже несколькими параллельными потоками кода. Например, 68 5a 31 с0 с3 может быть данными, может быть кодом push 0c3с0315ah (с непосредственным значением, которое вроде бы данные), а стоит добавить к этому коду jmp $-4, и это становится вторым потоком кода, который делает return 0 (5a 31 c0 c3: pop edx, xor eax,eax, ret).
В ассемблере всякие jz, jl и подобные команды выполняют переход к команде с двоеточием в случае соответствия тому, что про них пишут? Например, в случае с
В ассемблере всякие jz, jl и подобные команды выполняют переход к команде с двоеточием в случае соответствия тому, что про них пишут? Например, в случае с:mov AX, 1cmd AX, 1jl perehodadd AX, 1perehod:AX станет содержать число 1 или 2?
>>1517344Понятно, но по косвенным признакам то можно сделать предположение? Например, в ридонли памяти скорее всего лежат данные, в r/e - код. Какие еще признаки могут быть?
>>1517445Да, будет 2. Все же читаемо в простых случаях: "compare ax with 1", "jump if it was lower".>>1517460Зависит от бинарника. Но вообще статически трейсят control flow просто, строят граф (естественно, это ломается на первом же виртуальном вызове или таблице переходов). Или тупо пытаются попробовать дизассемблировать, и потом либо оно обламывается совсем, либо ты можешь всякие эвристики притащить на тему странно выглядящего кода. Всякие избыточные инструкции, которые перезаписывают результаты предыдущих инструкций, ебля сегментных регистров, различные привилегированные инструкции, несбалансированный стек - это либо написано вручную, либо упаковано/обфусцировано, либо не код совсем.
Это нормальный алгоритм поиска количества вхождений строки в подстроку? Какие регистры тут лучше не использовать так, как я их использую здесь? На какие поменять? Я ведь в правильный тред пишу с таким вопросом?
>>1517508> Я ведь в правильный тред пишу с таким вопросом?Нет, ты доской ошибся. https://2ch.hk/pa/> Какие регистры тут лучше не использоватьКак минимум SP портить не стоит, иначе программа кончится, как только произойдет прерывание. Остальные регистры можно сохранять, если они тебе нужны и не сохранять, если не нужны.
>>1517510Какой ещё есть свободные в такой задаче регистр? Не хотелось бы через стек значениями жанглировать.
>>1517511>Какой ещё есть свободныЙй в такой задаче регистр? Не хотелось бы через стек значениями жОнглировать.
>>1517344Понял, спасибо. Человек же сразу почти видит, что перед ним, мусор из байтиков или код. В теории, какие-нибудь нейросетки тоже смогут различать?
Аноны, молю о помощи. Ищу годную книгу (офк, желательно на английском) по сетевой безопасности, желательно, которая совмещает теорию с кодингом по сабжу.Как пример для годного контента - ламповая книга Hacking: The Art of Exploitation 2nd edition 2008 года, там есть очень вкусная глава по сетям, которая совмещает описание различных сетевых атак со снипеттами с кодом для лучшего понимания. Проблема в том, что книге скоро 12 лет и там есть лишь одна глава по сабжу, а я ищу фулл книгу по подобной тематике и желательно поновее. Все, что находил до этого, унылый шлак с кучей теории и хуйней для скрипт-кидди вроде метасплойта. Погромирую на Си, крестах, знаю х86 асм, основы ОС (с явным уклоном в Линукс) и основы сетей + программирование сокетов.С меня цистерна чая и лучи добра с пожеланиями вечного здоровья и счастья всем, кто поможет. Заранее спасибо.
>>1518324Могу https://www.corelan.be/index.php/articles/ посоветовать, правда он больше по винде.И опять дать книжку real world bug hunting, lol
>>1518320Не знаю. В x86 может и видно, а возьми какой-нибудь восьмибитный мк, да еще если не слишком хорошо архитектуру знаешь, и у тебя тут же проблемы.>>1518361> Как в иде фильтры работают?Плохо.> Хочу отобразить символы из нужной мне секцииВ Functions можно фильтровать по сегменту, в Names нельзя, import idaapi тебе в помощь или по адресу отсортируй и ищи нужный кусок.
Ананасы, имеет ли значение каким компиллятором собирался бинарник? Влияет ли это на реверсинг самого бинарника?
>>1518584Спроси более развернуто. По идее, код более-менее одинаковый, если, конечно, gcc с tcc и прочими "игрушечными" компиляторами не сравнивать. В основном все же влияет то, с какими оптимизациями код был собран, включена ли link time code generation и все такое.
Пишуmov DI, 1mov SI, 0cmp DI, 1jnle PEREHODadd SI, 1PEREHOD:SI=1. При DI=2 SI=1, и при DI=0 опять SI=1. ПОЧЕМУ???!!!!!!jnl, кстати, тоже нихуя не работает.
>>1518904Пушто мнемонику полезно запоминатьjump if not less or equal - т.е. аналог jg jump if greater
>>1518932Реально, но долго. Обмазываешься optimization manual-ом от интела, агнерфогом, профилировщиками всякими, vtune-ом и пишешь.
>>1518938>нахуя сажа то тред сагнул сага сага пасскод абуВот ещё вопрос:Какой уровень знания языкаозначает, что ты не червь-пидор?Или так и надо - знать только то, что сделал сам?По вершкам знаю дохуя языков, могу понять чужой код, чтобы спиздить, а че-нить достойное жид хаба высрать не могу.
>>1515950а энтри поинт он сам подефолту в начало сегмента текста ставит? написал так, скомпили и работает?
>>1518932Лучше O3 кода от васяна - да, лучше O3 кода от себя самого, при условии что ты обмазался >>1518938 - нет
Ананасы, че там по эксплоитам в 2к19? Слышал, что появляются новые языки для системщины, вроде раста, который безопасный и сводит на нет все возможные ошибки, связанные с memory corruption. Когда яп немножко окрепнет, как можно будет ломать такое чудо? Это же пиздец. Он даже некоторые виды состояния гонки между тредами нивелирует, если код не будет писать совсем макака - пиши пропало.
Анонасы, как реализовать уникальную для каждого потока глобальную переменную?Пока вижу два варианта:1. thread environment block ( использовать unused/reserved/padding ячейки )2. thread local storage ( __declspec(thread) global )Кстати, кто-нибудь подскажет, как получить доступ к этой переменной из masm файла?
Ку, реверсачЕсть ли ресурс наподобие overthewire, только более серьезного уровня, который хоть как-то связан с реальным миром, а не эксплуатацией ебучего хэллоуворлда?
Вы тут спрашивали куда реверсер может вырасти из ковыряльщика малвари, вот вам пример: https://vimeo.com/335166152Красавчик мужик, крадет прямо из под носа у мягких целые ОС и тусит с няшами в командировках. Глянул ценник на посещение его двухдневного семинара, чуть в обморок не упал, несколько тыщ вечнозеленых, такие вот дела.
>>1519488впаривать курсы по всякой хуйне всегда было оч выгодно. И не важно ойти это , лнп, пикап или еще что угодно. Суть уметь втирать дичь, а не быть спецом)
В WinDbg есть аналог xrefs? Как найти все ссылки на определенный адрес из дампа памяти? Какой же в этом дебагере низкий юзабилити.
>>1519196> уникальную для каждого потока глобальную переменнуюА чем тебя tls не устраивает? Оно уже 9 лет как в стандарте Си (_Thread_local/thread_local).> как получить доступ к этой переменнойПеременная в сишке создается? Тогда у тебя имя_переменной в том объектнике, и ты такой:mov ecx,[__tls_index]mov eax,[fs:0x2c] ; gs:0x58 для 64-битной виндыmov edx,[eax+ecx*4] ; Укозатель на блок переменных в TLS.mov eax,[edx+имя_переменной]И все. То же самое ты можешь делать вручную, кладешь имя_переменной dd 13245 в секцию .tls$, а __tls_index для тебя создаст линкер.>>1519503> re4bИ что? Ты точно не промахнулся с ответом?>>1519537> Какой же в этом дебагере низкий юзабилити.Он предназначен не для обратной разработки, а для отладки свеого кода. С доступными символами.
>>1519550> А чем тебя tls не устраивает? Оно уже 9 лет как в стандарте Си (_Thread_local/thread_local).Может есть варианты лучше, решил спросить.>>1519550> Переменная в сишке создается? Тогда у тебя имя_переменной в том объектнике, и ты такой:В сишке. Нужен быстрый доступ, как в случае с TEB, те mov eax, [gs:0e8h]. Я так и не понял, могу ли я сделать что-то типо mov eax, globalvar_in_cpp_file ?> Он предназначен не для обратной разработки, а для отладки свеого кода. С доступными символами.Это же единственный отладчик режима ядра, чем еще крашдамп анализировать? Что правда нет аналога xrefs? Как жить то..
>>1519651> могу ли я сделать что-то типо mov eax, globalvar_in_cpp_fileНет такой магии. Разве что ты будешь код для каждого потока дублировать в память, и при старте впатчивать вычисленные адреса thread-local переменных прямо в код.> Нужен быстрый доступ,А кто мешает? Выделяешь один регистр под это. В начале треда/процедуры выполняешь первые три строки из кода, который я выше постил. Кладешь результат в какой-нибудь ebx. Когда нужна переменная - ходишь до нее через [ebx+имя]. Если жалко ebx, можешь выкинуть стекфрейм нахуй и использовать под TLS ebp, а к локальным переменным на стеке адресоваться через esp. Если стекфрейма жалко, просто кладешь вычисленный адрес TLS в стек, тогда доступ будет mov eax,[ebp+tls_addr_in_stack], mov eax,[eax+имя].
>>1519733Дело в том, что это каллбек с неопределенным количеством аргументов, который передает управление в другое место в зависимости от индекса, который я загружу в eax регистр. Придется шифтить аргументы туда сюда, чтобы освободить регистры и моя асм портянка из пары строк кода разрастется на экран в лучшем случае... А для меня это боль, ибо я не гуру асма..
>>1519782В любом случае спасибо, поступлю дедовским методом, реализую оба метода и уже походу решу какой использовать.
Ананасы, помогите советом. Хочу глубоко вкатиться в exploit development, есть неплохая база для этого (Си, кресты, асм х86, знания основ ОС, базовый уровень реверсинга и эксплуатации простых уязвимостей). Сразу говорю, отговаривать меня от этого не надо, в моей стране это более востребовано, чем в странах СНГ, и в этом работают здесь далеко не невыездные тарищи майоры за 40к рублей в месяц.Суть: как сделать так, чтобы хотя бы пригласили на собес, а не выкинули резюме в мусорку при подаче оного? Подрочить pwnы на HackTheBox? Или сходить на CTFы пару раз? Ведь на реальных примерах это не показать, ибо, ясень-пень, незаконно.
>>1520064Так делай локальные сплоенты. Вон в блокноте умудряются шелл запускать.алсо в помощь https://www.corelan.be/index.php/articles/
>>15200641) Напизди в резюме про опыт работы;2) Закидывай резюме вообще на все вакансии (даже смежные) на похуй (большая часть всё равно не ответит ибо висит на сайте из-за проёба хрюш);3) Ходи на все тусовочки по теме.
>>1520103спасибо за линк, но я покамест грызу эксплуатацию в юникс-подобных системах. Винду потом по мере необходимости подтяну
>>1520064Забугром без сертификатов тебя никто на работу не возьмет. На HTB нужно быть в топе, чтобы это хоть что-то значило для работодателя. Ну и вся мякотка в том, что не бывает джунов в этой теме, ты либо компетентен и тебя нанимают для выполнения реальной работы, либо ты сидишь дома и учишься, получаешь сертификаты и становишься компетентным.
>>1520471но сертификации есть только по веб-хакингу, который к бинарой эксплуатации не имеет никакого отношения. Ну и про сетевой безопасности там что-то, но по реверсу и разработке эксплоитов я не видел.
>>1521676> но сертификации есть только по веб-хакингу, который к бинарой эксплуатации не имеет никакого отношения. Ну и про сетевой безопасности там что-тоПрикинь, это 90% всех сплоитов. Еще скажи, что JS учить не хочешь, а придется. https://www.giac.org/certifications/get-certified/roadmap
можно как то не особо сложным способом вставить свои опкоды в x86/arm линуксовую либу и прыгать в них а потом обратно?и вопрос по иде. есть игра только с арм либами, соответственно она под эмулем работает через гудини. Пробую дебажить через x86 сервер, ида логично посылает меня нахуй, пробую армовский но ида коннектится к процессу и сразу отваливаентся. У меня выбор только арм виртуалка или физ устройство?
Знаю, что вопросы не по теме, но также знаю что здесь сидят нужны эе люди.Есть одна игра и два человека, которые написали ботов, которые распознают экран и не лезут в память. Одного банят, второй спокойно играет.1. Как можно задетектить бота, который не лезет в память, и единственное что делает это эмулирует нажатия на клаву?2. Как может быть, что за эмуляцию одного банят, а второго нет? Может зависеть от способа эмуляции нажатия?
>>1522566> Одного банят, второй спокойно играетОдин жадюга фармит 24/7, другой ставит на пару часиков. Бан скорее всего ручной, по логам.> Как можно задетектить бота, который не лезет в память, и единственное что делает это эмулирует нажатия на клаву?Есть несколько способов сделать это из юзермода. Низкоуровневый хук мыши и запрос операции ввода мыши. Дай угадаю, игра WoW? Они как раз второй метод используют.
>>1522600>Один жадюга фармит 24/7, другой ставит на пару часиков. Бан скорее всего ручной, по логамХз хз, один делал рыбалку, второй гоняет по квестам. Возможно, они просто детектят все эмуляции именно на рыбалке и игнорируют остальные.>Есть несколько способов сделать это из юзермода. Низкоуровневый хук мыши и запрос операции ввода мыши.>Дай угадаю, игра WoW? Они как раз второй метод используют.То есть нарушают законы и пишут малварь? Им же никто не давал разрешения хукать мои процессы. Нет, игра Lost Ark из новых.
Реверсач, приветЯ начинающий реверсер, хорошо знаю асм, си и кресты тоже хорошо знаю, но вот заметил, что статический анализ даже относительно простых крэкми занимает у меня довольно много времени, плюс у меня есть постоянное желание рисовать стэк на бумаге, чтобы помочь себе не запутаться по ходу анализа. Мб я неправильно юзаю софт, мб есть акие-то фичи, чтобы реверсить быстрее и без использования листочка? Или нужно просто очень много опыта и нет никаких фокусов/трюков для облегчения самого процесса реверсинга в плане "не потеряться"?
>>1522604>То есть нарушают законы и пишут малварь?Коммерческие античиты очень многое себе открыто разрешают прямо в EULA. Не удивлюсь, если в темную они используют совсем уж грязные способы детекта.В конце концов, раз речь идет о деньгах, то прайваси потребителя может и сходить найух.
https://exploit.education/Если я пройду все виртуалки здесь, я буду компетентен хоть на какую-то йоту или это все игрушки?
>>1522604> То есть нарушают законы и пишут малварь? С пробуждением. Я тебе больше скажу, винда сама по себе малварь.
>>1522600>Низкоуровневый хук мыши и запрос операции ввода мыши.по факту всё это можно обойти просто юзая посредника в виде железного эмулятора клавомыши на стмке к примеру?
>>1519550>И что? Ты точно не промахнулся с ответом?да, промах, ответ должен был быть туда же куда и твой
Сап, реверсачИмеет ли место быть бинарная эксплуатация в языках типа раста, джавы, сишарп, где сложно выстрелить себе в ногу из-за автоматизированного мемори менеджмента? Или все эти ваши зиродеи только в дырявых сишечке и плюсах? Я говорю именно про разного рода переполнения, юафы и т.п., не про веб-атаки
>>1523600Это известно, многие об этом говорят. Но вопрос состоит в другом - ПОЧЕМУ есть такая надобность? Без этого код недостаточно гибкий?
>>1523164Конечно, если устройство будет представляться обычной мышкой и эмулировать все проверяемые паттерны. Ещё можно индуса посадить.
Дратути. Допустим я планирую читать память игры, сможет ли античит меня выловить, существуют ли у него такие способы?
>>1524074>сможет ли античит меня выловитьЕсли сделан не на отъебись, то сможет.>существуют ли у него такие способыВагон и маленькая тележка.
>>1524074Вот тут >>1524186 я про чтение внаглую из юзерспейса с использованием стандартных WinAPI.Уточнение, на всякий случай.
>>1524074Запусти игру в виртуалке. поставь Из хоста поставь процесс виртуалка на паузу, сдампь память волатилити, извлеки из дампа всей виртуалки только память процесса игры. Античит даже не поймёт, что игру прерывалиРейт идею, кто шарит
>>1524865Античит может обнаружить присутствие гипервизора/отладчика и прочий известный инструментарий. Вообще каждая игра может быть запущена отдельно от античита на какое-то время, этого вполне достаточно чтобы сделать дамп.
>>1524999Чекнул. Действительно античиты вполне рутинно детектят гипервизор. Оказывается не только малварь пытается избегать виртуалок
Нужно добавить секцию в файл программно, читаю файл в заранее выделенный буфер, через ReadFile. Что дальше то делать? Просто добавить описание секции в хедер, указать на пустой участок памяти и сделать запись в файл?
>>1525635Если в OptionalHeader.SizeOfHeaders заголовок секции влезет - то все так. Если не влезет, придется расширять последнюю секцию. Ну еще про выравнивание в файле и в памяти почитаешь.
Реверсач, сяп. В каком из регистров или где именно в стэковом кадре может храниться количество переданных аргументов в функцию конвенция cdecl, разумеется? Или хотя бы оффсет к стэковому поинтеру как узнать, чтобы вычислить это количество?Если что, в асмах не разбираюсь нихуя, так что нид хелп.
>>1525750Эта инфа не хранится в регистре. Когда у тебя начинает стэк фрейм новой процедуры, обращение к аргументам процедуры происходит через [ebp+Z] где Z = 0x4, 0x8, 0xc... в случае 32-битного бинарника и 0х8, 0х10... в случае 64-битного бинарника.
>>1525983>>1525983>через [ebp+Z] где Z = 0x4, 0x8Но ведь я правильно понимаю, что аргументы энивей будут хранится в стэке, причём в 4-байтовых блоках, и рядом с друг другом?Алсо я сам себя наебал с cdecl, оказывается в моём случае - смешанная конвенция, где какая-то часть (в зависимости от арх-ры) аргументов пиздует сразу в регистры, а та что не влезла - по старинке в стэк. И если это так, то как мне тогда в сишечке достать те, что попали в регистры, без ассемблерных заплаток?
>>1526045Да. Просто повтори конвенции, чтобы не путаться. Алсо, для сисколлов есть своя конвенция, там как раз-таки аргументы хранятся в регистрах. Для реверса плюсового кода тоже есть свои конвенции, ибо там есть ооп (например, в ecx/rcx хранится указатель на объект). Конвенции различаются даже между 32 и 64 битными бинарями. Расписывать это здесь не имеет смысла, ибо есть гугл. Когда наберешься опыта в реверсинге, то уже будешь помнить все наизусть.
>>1521764Не пизди. Есть очень много уязвимостей именно в бинарниках, которые с веб-атаками не имеют ничего общего. Веб-атаки и бинарная эксплуатация - разные отрасли тащемта.
>>1524865hiberfil/pagefile можно так использовать?все нативно, никто ругаться не будет. игру свернул (если настройки и оперативка позволят оси передвинуть ее в подкачку) или просто гибернацию нажал и потом с харда переписал на другой системе.
>>1519156иногда можно зайти с черного хода или вообще через канализацию.от виртуалок и работы с микрухами памяти до еба-скоростных логических девайсов на шине проца.
>>1526045> И если это так, то как мне тогда в сишечке достать те, что попали в регистры, без ассемблерных заплаток? Писать ассемблерные заплатки. Точнее, там всего несколько простых инструкций, поэтому проще всего захардкодить их и динамически собирать враппер из твоего __usercall в какой-нибудь __stdcall (и/или обратно), выделить память с флагом на выполнение и положить туда этот враппер.
>>1525661Вот эти выравнивания и rva/va на диске не вкуриваю. Что есть база файла хранящегося на диске? OptionalHeader.ImageBase? Есть вообще какой-то инструментарий для подобных махинаций, винапи/макросы в каких-нибудь майковских хедерах?
>>1526239На диске у тебя офсеты от начала, никакой базы. А вот в память файл грузится по image base (или не по ней, но тогда все немногочисленные виртуальные адреса исправляются на разницу между записанной image base и реально использованной).> Вот эти выравнивания и rva/va на диске не вкуриваю> VAПросто адрес в памяти внутри образа> RVAДельта относительно использованной при загрузке image base, т.е., GetModuleHandle(...) + RVA = VA.> Есть вообще какой-то инструментарий для подобных махинацийPE file editor в ассортименте.> винапи/макросы в каких-нибудь майковских хедерахЕсть в основном недокументированные LdrXXX и RtlImageXXX, есть макросы в winnt.h, но это все в основном для чтения.
>>1526132>Да.Тогда наверное, я чего-то не понимаю int funct (int n,...){char ptr = &n; // теперь поинтер указывает на первый байт первого аргумента в СТЭКЕ, не так ли?/далее поБАЙТово (изза врожденной паранои) прогоняю/ /поинтер назад и вперёд с радиусом в 1 килобайт//можно и с большим, но не думаю, что поможет/---------->/ни ОДИН из переданных аргументов с мэйна не/ /засветился*/}То есть, судя по всему, аргументы хранятся исключительно в регистрах. Либо поинтер указывает вовсе не на то, что я думаю. Алсо подозреваю, что если в самом начале вызвать любую функцию, то эти аргументы по выходу из неё проёбываются в небытиё; так как КДбг показывает, что нужных значений в регистрах уже нет, а попытка найти их тем же способом также провальна.>Просто повтори конвенции,>The registers RDI, RSI, RDX, RCX, R8, and R9 are used for integer and memory address arguments and XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6 and XMM7 are used for floating point arguments.>For system calls, R10 is used instead of RCX. Additional arguments are passed on the stack and the return value is stored in RAX.Очень похоже на мой кудахтер, только зарезвервированных регистров не 6, а 14.
>>1526368Отладчиком пробовал пользоваться? Поставь точку останова на вызове функции и проанализируй регистры/стек, там все наглядно видно.
>>1526368> теперь поинтер указывает на первый байт первого аргумента в СТЭКЕИли на первый аргумент, который был сохранен из регистра в стек, потому что компилятор очень хотел сделать то, что ты сказал, но у регистра взять адрес не очень получалось. Что ты сделать-то хочешь?
>>1527252Не ебу про что ты, по я на пост про зарплату в авреах для реверсеров отвечал. Там же почти монополия и хуй куда в рф перекатишься.
>>1527253каспер,дрвеб,есет,груп биби в конце концов,хотя к дебилу сачкову пойти самому это нужно постараться
>>1527254>каспермонополист>дрвебэто бренд, а не рабочий продукт и реверсеры им не нужны чтобы зарабатывать>есетв россии нет ресёрч центра>груп бибиэто даже не авре, но тоже монополист. зарабатывает на том, что каспер делает бесплатно или вообще забил и не делает. задрал цены, зажал зарплаты и нанял толпу прогеров писать нахуй никому не нужный российский клон снорта и арксайта лижбы впарить его втридорога всяким газпромам. а реверс им нужен, но платить не хотят. хотят вчерашних студентов ситиэфщиков за еду обещая должность деректора через 5 лет. какая же это всё хуйня. а сачков пидор
>>1527252>виндефТолько щас понял, что ты говорил про встроенный в десятку дэфолтный виндеф. А я ещё туплю мол при чём тут виндовс когда мы говорим про хуёвую работу в рф
>>1527256> а сачков пидорполностью согласен,я бы даже сказал пидарасина>>1527257да,сорян,я просто сначала не вьехал о чем ты говоришь
>>1527258>полностью согласен,я бы даже сказал пидарасинаКак я рад, что кто-то согласен. А то у меня 2 знакомых к нему пошли и один планирует. Удивляются почему я носом ворочу и не соглашаюсь в гиб переходить. А у тебя к нему какие претензии? Может и тут сойдёмся?
>>1527259Мерзкий тип он,посмотрев его интервью,с этими "Смотрю им в глаза на задержаниях","Ух сука бля всех бы нахуй посадил",рассказами что он хотел пойти в ментуру,но его просто не взяли.От этого всего у меня о нем складывается впечатление,что он такой обиженный,но при этом полностью уверенный в том,что делает супер-пупер-добро всему миру когда ловит ужасных преужасных блечеровНу это помимо того что он педрилло которое сидит на госконтрактах и пиздит бабки>А то у меня 2 знакомых к нему пошли и один планирует.Я хз,смотря на ЗП всех этих пентестеров,реверсеров и прочих в ру конторах,которая редка превышает 100к и чет прям у меня непонимание,кто туда идет.Уж лучше малварь пилитьмы не одобряем
Так сколько платят по итогу? Вчера елозил по ххрю, на первый взгляд 80-150к выходит на рядового реверсера.В Dr.web уже год висят вакансии на джуна вирусного аналитика и обычного вирусного аналитика. Мало платят что-ли? Ну не верю я, что меньше 60к.
>>1526974>Или на первый аргумент, который был сохранен из регистра в стек,Это точно не так - принтом выдает первый обязательный аргумент n, expected. Поинтер, согласно отладчику, хранит адрес 4(%rbp), что похоже на истину. Если начать дальше сдвигать его вверх будь-то по байту, или 4 байтам, то необязательных аргументов не видно совсем.>Что ты сделать-то хочешь?Хочу понять куда проебываются остальные аргументы после вызова любой другой функции в int funct(), раз. Второе, просто понять как работать с этими функциями в таких конвенциях на высокоуровневом языке, просто для себя, уж больно зацепило.
>>1527315Подержу в курсе. Сейчас глазками пробежался по ассемблеру из клэнга, и моих знаний хватило на вывод, что необязательные аргументы в регистрах просто-напросто испаряются нахуй перед вызовом подпрограммы. Подозреваю, что в гцц та же морковь. Наверное конпеляторы думают, что если у объекта нет имени в исходнике, значит хуй с ним, понимаешь, так и говорят, хуй с ним, зачем это говно нам в стэк кидать
>>1527315> понять как работать с этими функциями в таких конвенциях на высокоуровневом языкеДа никак, врапперы писать или динамически генерировать. Максимум, что тебе сишка дает - это variadic-функции (которые с точечками - void foo(int first, ...)) и va_list/va_start/va_next для них, а уж дальше оно само.
>>1527576Это в питере. В москве у каспера джун с 60ти начинается. Это если без сэйвборда. Через стажировку проще вкатиться, но меньше платят
>>1528149Так это все равно мало сукаОчень блядь малоПосмотри сколько получают всякие макаки на жыэсе и прочем и сравни уровень знаний который должен иметь средний макак и средний реверсеруж лучше пилить моды всяких isfb за 5к долларов в месяц,чем дрочить семплы на потоке за 60 ссаных к в МСК
>>1528159Не знаю. Не стал допрашивать. Подозреваю, что мне бы чуть больше 100к предложили. Хотя есть люди, которые на 50 евро в час в какую-нибудь германию уезжают. А иностранцы, которые в грите работают получают шестизначную зарплату в долларах.
>>1528168шестизначную в долларах это в год,я полагаю?Нормально конечно,но сколько надо проработать на эту хуйню чтобы столько получатькак-то меня это все портит настроение,когда я начинаю думать об этом.Вся эта срань с апт,аверы-хуяверы,шансы сесть в тюрьму,хуевые зп почти у всехна кой хуй я поперся сюда..пилил бы сраные сайтики и сидел бы довольныйЕдинственный вариант который я вижу - спиздить откуда-то много биткойнов и всю жизнь заниматься любимыми делами,не боясь оказаться на улице
>>1528174Хуевая идея, лучше работать всю жизнь; иначе ты быстрее превратишься в животное, чем будешь заниматься любимыми делами.
>>1528176Почему?Уехал бы куда-нибудь в швейцарию,взял книжки по биологии и химии,ходил бы на лекции,нашел бы девушку с которой можно было-бы приятно проводить время,забыл бы нахуй это айти и прожил бы счастливую жизнь
>>1528179юпд. прыгать со скал с парашютом,наслаждаться красивыми видами,даже можно попутешествовать и даже завести детейЭээх...Как бы хотелось прожить такую жизнь сук...>>1528176да хер его знает,дрочить всю жизнь малваре в авлабе это тоже не верх интеллектуальной деятельности.+надоест быстро,я думаюВсякие великие штуки типа лекарства от рака ты без миллионов долларов и кучи свободного времени не сделаешь все таки
>>1528195Я о том, что хватит мечтать и делай работу, что делает другая сотня людей. Ну и развивайся.А вот сидеть нихуя не делать 10 лет, и потом выпускать нечто гениальное уже менее полезно.
>>1528196так это же отстойно,сидеть и делать рутину...Мне моя концепция с спизжеными битками и деланьем любимого дела нравится больше,если честно
>>1528198Да пошли вы в пизду тогда с своим программированием,в рот я вас ебал делать однообразную хуйню всю жизньНа днях займусь тем чем собирался,ты меня окончательно переубедил.
>>1528157По-моему норм, там из требований только знание x86 ассемблера, который осваивается за 2 месяца.
>>1528157Макак как раз таки рыночек порешал, там сейчас дикий пердолинг фуллстек с кучей йоба технологий или иди гуляй, а реверсеров годами ждут и ценят. Только что погуглил, у джунов макак тоже в районе 60-80к зп. Вы переоцениваете сложность реверса, это абсолютно аналогичное по сложности осваивания ремесло и чем-то даже менее стрессовое чем программирование. Сидишь пердолишь семплы, никуда не торопишься, пока макаку ебут в жопу за проебаные дедлайны и говнокод.
>>1528300кто ждет?на хх 1-2 обычно,если вообще есть,обновляются редконо в чем-то ты прав,а потом можно накачаться и сплойты пилить и продавать например
После вызова syscall, что происходит с потоком, который его вызвал? Ждет возврата, пока ядро обработает его вызов? Или система пропускает этот поток в ядро для обработки вызова?
>>1528721Контекст потока сохраняется, переключается на ядро. А дальше либо ядро сразу обрабатывает вызов, либо откладывает поток в список ожидающих io. Когда все обработалось, контекст заменяется на юзермодный обратно.> пропускаетПосле того, как eip/rip сменился, об этом уже сложно сказать "пропускает".
>>1528831Так кто обрабатывает мой системный вызов? Системный ядерный тред из тредпула или у моего юзермодного треда меняется контекст и он выполняет всю работу?
Ахуеть, это вообще возможно? Статистика за год, если что. Это же нереально руками столько сплоитов найти. Может где-то на просторах гитхаба лежат навороченные фазеры ака кнопка бабло? Дискасс.
>>1530209Кстати да, заметил что все крутые багхантеры долбят 1-2 конторы. Так они по-любому какой-то сканер ставят, которым им алерты выдает чуть что в инфраструктуре изменилось. Вангую у них там покрыто все, похлеще блекхетовский штучек. Ну не верю я, что они руками каждый раз аудит проводят по новой.
>>1529961Я тебе одну вещь скажу, ты только не обижайся (с)Нравится ковырять бинари - ковыряй на здоровье. Кто-то готов тебе платить тебе, за то, что ты круто ковыряешь бинари - еще ахуеннее.Но, ты увидел скрин чувака, который, возможно, поднял бабла ковыряя дыры в софте и решил, что тоже так хочешь - wrong.ИМХО, возможно данный гражданин пиздит, возможно данный гражданин - официальный рекламный партнер H1 (сам не был их клиентом, но видел неоднозначные отзывы), возможно данный гражданин медиа представитель команды рабов NSA завлекающий соответствующих ботанов-аутистов работать на благо родины. Короче, я бы не стал доверять никаким красивым картинкам.То, в чем можно быть уверенным - шансы на успех минимальны, если ты хочешь только результат и при этом не наслаждаешься самим процессом.
>>1530284Я уже давно хотел вкатиться в автоматику, а тут твит в глаза бросился, еще раз убедился в том, что нужно копать в эту сторону. Думаю здесь без автоматики здесь не обошлось, решил у анонов спросить что вы думаете по этому поводу. Алсо, на счет бинарей, где можно скачать нужные мне бинари конкретной версии винды? Дллки беру здесь https://www.dll.ru/, но нужны экзешики и дрова в том числе.
Решил в Гидру вкатиться после семилетнего перерыва в реверсе (не сказать, что я блистал, но без Иды пару кейгенов написал когда-то).0. В декомпиле не подсвечивается переменная в соседних никаким образом, когда на нее курсор наводишь. При скролле и курсор сдвигается. Нередко приходится выхлоп декомпиля в нормальный текстовый редактор копировать, чтобы удобно по нему ориентироваться.1. Постоянно ломается что-то, когда переименовываешь локальную переменную. Она переименовывается в какое-то говно вида aQstack59 и вываливается ошибка по размеру данных. Видимо, простое переименование триггерит какой-то DataFlow-анализ, который почему-то обламывается. Если откатиться (не по Ctrl+Z, а через переоткрытие проекта), то может прокатить повторная попытка.2. Снова переименование, но уже класса. Его можно переименовать в окне редактирования его полей, с вероятностью 80% это ломает вообще все. Можно переименовать в SymbolTree, но при этом у меня часть функций продолжили ссылаться на уже не существующий тип данных, через Clear Flow and Repair привязки исправилась, стерев при этом названия всех полей класса, которые я собирал по кусочкам последние два часа.Декомпиль по сравнению с Идой конкретно в случае с моим бинарем очень приятный. Код генерит простой и пошаговый, а не эзотерическую околоолимпиадную магию с непрозрачным жонглированием битами, как это делает в моем случае Ида.Не отрицаю, что я вообще не очень понимаю, что делаю, и, возможно, эти постоянные ошибки парой действий можно уверенно исправлять, не теряя проделанной работы, но такая нестабильность удивляет, ведь Гидру должны были сотни реверсомакак каждодневно использовать.
Можно ли заработать фрилансиром малварь реверсером? Самому ловить в ханипотах малварь, реверсить, писать яра правила и продавать их эксклюзивно какой-нибудь thread intelligence конторе.
>>1535964>Малварь пишет исключительно школота и макакималварь для целевых атак - нета на обычной можно быстро заработать,а не жрать гордым дошик,а после пары лет идти в групиби чтобв работать за 50-60к и дальше сосать хуйуж лучше делать говномалварь с такими зп
>>1536277> малварь для целевых атак - нетА ее пилят студентики какого-нибудь ИТМО/МГУ, макаки те же, но с мат. бэком. Тему с зп и карьерным ростом уже обсуждали, все в порядке. Уходи из треда, здесь белые шляпы обитают.
>>1537219>А ее пилят студентики какого-нибудь ИТМО/МГУ, макаки те же, но с мат. бэком. Зачем тебе мат бэк чтобы малваре пилить?Почему именно студентики?есть же гос группы у которых бюджеты пиздец какие и там явно не студентотаИ почему они макаки?
>>1537267>>1537270Я к тому, что гуманитарий сможет написать что-то уровня хеллоуворлд-малвари, которую дятел расковыряет за часик под пивко или которую автоматика сама проглотит, но точно не малварь для целевых атак.> Почему именно студентики?есть же гос группы у которых бюджеты пиздец какие и там явно не студентотаТам как раз студентота и сидит.> И почему они макаки?Потому что студентота, очевидно же. Нет опыта = говнокодят = макаки.>>1537269Зерепортил.
>>1537280>Я к тому, что гуманитарий сможет написать что-то уровня хеллоуворлд-малвари, которую дятел расковыряет за часик под пивко или которую автоматика сама проглотит, но точно не малварь для целевых атак.У тебя какое-то странно представление малвари для целевых атак(Или у меня)Малварь для ца должно быть сложно отреверсить или что?(с автоматикой понятно,она должна быть наебана чтобы все нормально отработало)
>>1537285У этого >>1536277 спроси, я без понятия какой смысл он вкладывает в это понятие. Даже малварь для целевых атак может быть написана школотой и макаками. Обычно для целевых атак используется спайварь и естественно ее должно быть сложно детектировать, анализировать и как либо маркировать.
>>1537291Зачем тогда семенишь? Шифруешься, малварьщик? Кидай сюда свою малварь для целевых атак, посмеемся. Она как минимум должна быть уровня Cobalt Strike.
>>1537307>Шифруешься, малварьщик?Да не особо если честно.Так,тыкаю сэмплы с твиттера разве что и смотрю что нового выходит на рынок>Кидай сюда свою малварь для целевых атак, посмеемсяЯ говорил что я ее делаю?Я говорил что я малварщик или тем более хороший малварщик?Че ты накинулся вообще?>Cobalt StrikeЭто который гуй под метасплойт?
>>1537307>Cobalt StrikeОн как раз и "реверсится за час под пивко" т.к. там нет никакой защиты от рерса. Только функционал
>>1529961Руками в серьезном софте практически никакие дырки не находятся, лол. Грубый ручной статический анализ бинаря, в котором несколько десятков, а то и тысяч, функций, да еще если он stripped - чисто физически нереально. К тому же, очень легко самому прощелкать еблом и проебать дыру.Ищут софтом (не только фаззерами, если чо), вручную долбят только подозрительные процедуры дополнительно. Найти уязвимость - полдела. Ее еще надо эксплуатировать (ну, или хотя бы вменяемый РоС написать), что с нынешними технологиями защиты не так просто. Ломать бинарь, даже с уже известной уязвимостью, при включенном ASLR, DEP, Full RelRo, ASCII armor, PIE - очень непросто. Если бинарник 64-битный, коих в 2к19 абсолютное большинство, то написать под него надежный эксплоит ОЧЕНЬ сложно, особенно если нет бага, который приводит к утечке данных (как в ошибке форматирования строки, но такие баги сейчас - большая редкость). Поэтому это энивей требует огромного багажа знаний в ОСях, структуре бинарников, да и вообще требует креативный и пытливый разум, поэтому не думай, что софт делает за исследователя всю работу, это лишь вспомогательная фича.
>>1537310А нечего малварь здесь форсить, если у тебя деструктивный образ мышления, то не надо его распространять на других.>>1537524Там даже из коробки модулей на несколько метров. Тот же бикон можно в проксю завернуть, как он сам это делает с другими тулзами и отреверсить получится только хуй с маслом, потому что вся логика останется на тим сервере.
Ананасы, нужен хелп от +- дилетантаНаписал лабу челику из интернетов, но он не может её сдать, потому что не может в ней разобраться, мол они такого не проходили, как сделать её примитивней я хуй знает, может у вас буду мысли, как упроститьВвести с клавиатуры строку с разделителями, поменять местами первое слово с последним, второе с предпоследним и тд, вывести результатВот что я писал, он жалуется на непонятную обработку в мейне и чето блять с выводом ему не ясно, я уже не могу с ним разговаривать.model small .stack 200h data segment DelimChar equ ' ' ;символ, разделитель слов _STDOUT_ equ 1 ;описатель вывода на экран ;обрабатываемая строка String db 'loll goog bbooob suup mooling some paper to garbage' Len dw $-String ;сообщения программы CrLf db 0Dh, 0Ah, '$' msgSourceString db 'Instant:', 0Dh, 0Ah, '$' msgResultString db 'Result:', 0Dh, 0Ah, '$' data ends code segment Reverse proc push si push di jmp @@next @@while: mov al, [si] mov ah, [di] mov [di], al mov [si], ah inc si dec di @@next: cmp si, di jb @@while pop di pop si ret Reverse endp main proc mov ax, @data mov ds, ax ;обработка строки lea si, String mov cx, Len cld ;реверс всей строки mov di, si add di, cx dec di call Reverse @@Loop: ;пропускаем все разделители @@WhileDelimiter: lodsb cmp al, DelimChar loope @@WhileDelimiter jcxz @@Finish ;если строка закончилась - выйти ;найдено новое слово mov di, si ;(di-1) указатель на начало слова ;пропускаем все буквы слова до разделителя @@WhileWord: lodsb cmp al, DelimChar loopne @@WhileWord cmp cx, 1 ;учтём возможный выход из цикла по завершению строки adc si, 0 ;когда на первый символ слова будет указывать (esi+1) ;теперь слово выделено ;(di-1) - начало слова ;(si-2) - конец слова sub si, 2 dec di xchg si, di call Reverse xchg si, di add si, 2 test cx, cx jnz @@Loop @@Finish: ;вывод результатов mov ah, 09h lea dx, [msgSourceString] int 21h mov ah, 09h lea dx, [msgResultString] int 21h ;завершение программы mov ax, 4C00h main endp code ends end main
>>1538213> как сделать её примитивней я хуй знаетЗачем ты строку разворачиваешь, поехавший? Просто сканируй ее с конца на предмет пробелов и копируй/выводи найденное таким образом слово.
/v/тард репортинг. Поясните за уровень сложности трюка, который провернул чувак, о котором идет речь на пике.
>>1538581ну погугли историю про то как реверсили вмпрот, вот те же грабли. Ну и не чел а группа людей по предварительному сговору. охуилярд человекочасов.
>>1538581Это время в пустую, разок ради ачивки разве что, другое дело если бы он автоматикой распаковывал и действительно нашел способ обрабатывать любые исключительные случаи вмпрота.
>>1538788заладил ты со своей автоматикой. автоматика появляется только после ручных разборов лол. До этого макаки страдают и ждут пока кто то сделает/Ну и вполне возможно что у них все же уже софтина почти/готовая. скопипащу:>--> vmprotect 3 trojan unvirtualize <-- - сэмпл автоматика разбирала, сам дамп не рабочий. Но явно близко до выпиливания вмпрота из малвары с последующим восстановлением исходного кода.>DENUVO 1-3 (VMProtect 2.06 - удалось установить точную версию) в теории и "ломается" за два/три клика. Под "ломается" подразумеваю построение зависимостей HWID от набора секретных DWORD, вшитых в файл лицензии Origin/Steam. В ранних версиях за OEP даже ехать не требуется. Допишите "trace analyser" (анализ хендлеров VM и трассировщик с подавлением защиты целостности VMProtect готов, количество VM не играет никакой роли) для Denuvo_Profiler и будет Вам счастье
>>1538581Там два этапа, распаковка это практически автоматика, а вот девиртуализация это примерно как собирать банкноту после перекрёстного шреддера, переваренную и высранную слоном. Если по-простому, есть два варианта - делать это полу-вручную, копаясь в слонячьем говне, для этого нужно быть человеком дождя, и сделать робота для сбора этой банкноты, что еще сложней.
>>1538788>разок ради ачивки разве что>the main idea of this project was to verify whether Denuvo affects CPU usage and overall performance of this game
>>1537728>потому что вся логика останется на тим сервереЭто не усложняет реверс, а вообще делает его неприменимым. Я про дэфолтный бикон. На нём нет обфускации. Хексрэйс сами с ним спрявятся. А исходники метерпретора вообще на гитхабе лежат. И насколько я помню у коблаьтстрайка с метаслплоитом нет встроеных модулей чтобы их обфусцировать. Они скорее зашифруют длл, а потом инджектнут в тругой процесс чем будут пытаться что-то офусцировать на уровне asm кода. А именно сложность чтения ассемблера делает реверс сложным. Вот я и говорю, что раз не обфусцирован, то и реверсить легко.
>>1541363На подступахСообщения ловит, но не передаёт в основной поток. Можно же весь код в эту дллку запихнуть, че я мучаюсь.
Есть одна прошивка в бинарном формате.Открыл ее в binEdit(OllyDbg не смогла)Правильно я понял что комментарии к коду сгенирировалсам binEdit?
>>1542898Почему? Жизненный мем же. Всегда проигрываю с маня-хантеров, которые на серьезных щах пишут о том, как они нашли xss на васян.ру проставив ковычечки. Такое то достижение!
>>1542925Мы и так знаем что ты в теме бро, не нужно вкидывать раковые мемы и объяснять их. Лучше расскажи из жизни что-нибудь по теме имела интересного
>>1543002Но вкидывал я, а писал - он)По теме сейчас классную книгу читаю. The art of exploitation. Очень мощно, прям в подробностях объясняют базовые бинарные уязвимости и эксплуатации.Собсна, мем потому такой и выбрал, что плавно вникаю в тему pwn/rop/aslr, а вокруг мои знакомые ковычки кругом тыкают да в бурпе сидятЯ надеялся что тут кипит хоть какая-то жизнь, а тут весьма вяленько
>>1543113Так это ASM & Reverse engineering тред, мы здесь малварь ковыряем, да винду ресерчим, а не баги ищем.
>>1543119Я например в играх читерю. (и шинду ресерчу, да)Хотя античит по сути и есть малварь, и по устройству и по цели применения.
>>1543119Ну тут ведь нету PWN CTF треда. А создавать я его не хочу, это ж напряги вот эти вот. А я себе баночку курнул, иду открыл, GDB запустил и развлекаюсь. Че, нельзя тут, гражданин начальник?
>>1543130Я относительно ньюфаг, обламываю зубы об ЕАК пока, расковыриваю дамп, ковыряюсь пальчиком в ядре, пытаюсь байпас захерачить. У меня уже каждый кусочек железа в тестовой пеке там побанен наверно. А сам пейлоад писать да игру реверсить ума много не надо.
>>1543113>а вокруг мои знакомые ковычки кругом тыкают да в бурпе сидятКак будто что-то плохое.Устав от реверса я вкатился в баунтихантинг.На пиво хватает.
>>1543129Да можно. На HTB зарегался уже?>>1543133Это поделие не годится для обнаружения чего либо, но самое смешное, что это самый продвинутый продукт на рынке. Они отстают на года.
>>1499956 (OP)Вкатываюсь в асм, есть годный учебник на пикрилейтед, но листинги кода там для FASM.А мне нужен годный учебник с хорошим введением в принципы работы процессора (не обязательно) и (обязательно) адаптированный под синтаксис TASM. Потому что в FASM нету отладчика под DOS.Подскажите учебники плиз.
>>1544756Tasm ? Если новичок вкатись лучше в MASM, уйма документации, .chm Юрова и его книги с примерами ещё быстрее помогают вкатиться
>>1544756https://norseev.ru/books/windowapplicationfasm/FASM сила, masm могилаИзучай Ollyhttps://wasm.in/blogs/vvedenie-v-krehking-s-nulja-ispolzuja-ollydbg-glava-1.433/Я тут единственный кто смог что-то написать, остальные умничают а толку нет.
Они не понимают философию асма, думают что асм нужен только для того чтобы кичиться им, как и кичиться владением других более высокоуровневых языков.Однако суть асма это работа, асм должен работать, хоть что-то делать, хоть складывать 2+2, но асм должен работать.Но я не вижу чтобы асм работал, одни заумные фразы, но по факту то ноль.Fasm придерживается именно такой филасофии - он для того чтобы делали.
>>1545230Любой программист понимает, что понимание асма, это ключ к пониманию любого высокоуровнегого транслируемого языка и его компилятора.А также ключ к пониманию работы самого железа.
>>1545514Ну вот я выше спрашивал про глобальный хук. Но ведь ничего не сделано же. Мне нужен глобальный хук чтобы прога за меня перепечатывала сообщения в игры, в которых отсутствует возможность вставить текст через ctrl+v, и вообще получить доступ к управлению приложением через посылаемые сообщения.Вы мне тогда не ответили про команду sleep и вот это продолжается. Это не упрёк вам, просто на этом можно делать деньги.
Попробую обобщить вышесказанное. В этой стране преобладает такое мнение, или я бы даже сказал атмосфера такая. Что все вокруг дохуя умные и значит дохуя хитрые.Но это АСМ детка. Научись писать на нём законченные приложения. Очень много предприятий нуждаются в асм-приложениях, просто они об этом не знают. Особенно предприятия занимающиеся торговлей, там где точность сократит расходы, сократит время сотрудников.
У них нет запросов, понимаете. А нет запросов потому что им какой-нибудь 1С-програмист сделал и всё, они и тому рады. А то что эта поверхностная поибень в 2к20-ом, он конечно же умолчал.Поэтому мы должны именно делать, мы должны дать понять людям что это не предел мечтаний, что можно ещё так и вот так. И всё, у них станут появляться запросы, высокоуровневые конечно же будут возмущаться и говорить нам какие мы бестолковые и ничего не умеем, но мы то будем делать, а они просто говорить.
>>1545575>>1545596>>1545613Очередной шизик протек. Что ты сделать то хочешь? И причем здесь вообще асм?
>>1545700Да че-то да, пива перепил. Хотел сказать что есть много задач которые можно решить асмом, но они не всплывают, потому что.. Потому что никто не задумывается, все живут в высоких материях. Я дра там компилят и прочееА эти потребности это деньги, но даже сам потенциальный клиент не знает что он нуждается в "моей" программе, это как бы суть эпохи.Ну и мне хотелось бы обсуждать этот вопрос, как, где, в какой области искать этих потенциальных клиентов, как им доносить что это им нужно.
Такой, очень гипотетический пример:Предприниматель занимается продажей помидор, у него скажем 100 точек. На каждой точке у него есть весы, на эти весы он покупает по, чтобы они вообще взвешивали. Этот предприниматель знает что один продавец сможет взвесить на этих весах 100 кг помидор в день, поэтому у него максимальный оборот 100 кг помидор в день. Но потом на одну из точек устраиваюсь работать я, и вижу что тут нужно всего 30 строк на асме и весы будут взвешивать в 10 раз быстрее, и предпринимателю не нужно покупать по на каждую точку, а нужно всего лишь заплатить один раз мне.Вопрос: как мне узнать в чём нуждается конкретный предприниматель? Как мне его убедить в том что он нуждается?
Прикол в том что этот предприниматель ни сном ни духом, ему вот дали это по и все, он думает что это предел мечтаний.
>>1545731Всем похуй на асм, кроме реверса. Всем нужны либо веб-макаки с пистоном/пхп впридачу, либо с++ кодеры.
Пишу компилятор по туториалам и что-то не пойму как работает деление. Зачем надо это обьединение двух регистров? Почему для умножения, сложения и вычитания нам достаточно одного 64 битного регистра, а тут div работает только при делении 128 бит на 64?И почему если не написать mov 0 rdx, то выходит floating point exception? еще можно написать cqo, но я так и не понял что эта инструкция делает
>>1546582>а тут div работает только при делении 128 бит на 64?Так у тебя на картинке 64-bit dividend и 32-bit divisor, откуда ты взял 128 и 64 бит соответственно?
>>1546582> Почему для умножения, сложения и вычитания нам достаточно одного 64 битного регистраНет, не достаточно. При умножении 64 на 64 результат может быть больше 64 битов, поэтому на x86 при 64-битном умножении ты получаешь 128-битный результат в паре rdx:rax.Соответственно, чтобы получить при делении свои 64-битные множители обратно, тебе нужно вот это 128-битное делимое в паре регистров и 64-битный делитель.В высокоуровневых языках эту проблему обходят, отбрасывая старшие биты произведения (если они есть) и делая размер частного равным размеру делимого. А раз компилятор пишешь ты, и размер делителя у тебя 64, тебе приходится использовать то, что умеет процессор, т.е., 128/64 деление, для этого ты расширяешь делимое до 128:> cqoconvert quadword to octword, она делает из 4x16=64-битного операнда 8x16=128-битный, расширяя бит знака из rax по всему rdx. Это для чисел со знаком, а для беззнаковых ты rdx просто обнуляешь.>>1546993> откуда ты взял 128 и 64 битНу очевидно же, что он под 64-битную машину пишет, а на картинке 32-битная. Суть-то не меняется.
На процессоре i8080 есть комманда 0х03 inx B, кто-нибудь мог бы объяснить что именно она делает? Это инкремент двух регистров ВС рассматриваемых как 1 число? Но как тогда обращаться с переполнением? Или это всё-таки инкремент обьекта по адресу (ВС)? Что-то я совсем запутался...
>>1547146Да, inx инкрементириует пару (BC/DE/HL) или SP, указываешь первый регистр в паре.> Но как тогда обращаться с переполнением?Страдать, проверяя результат на 0 вручную, например. Эта инструкция вообще в основном требуется, чтобы по массивам гулять (инкрементировать указатель после LDAX/STAX/M у MOV - вот это все), и в таком варианте использования случаях тебе не особо нужно думать о переполнениях.
>>1548989>>1548993У античитов своя атмосфера. Им невыгодно сразу рвать жопу, иначе читописцы тоже подтянутся и придется рвать жопу еще больше, а единичных васянов вроде меня с кастомным дерьмом всех всё равно не заловишь. Они пытаются глушить наибольший текущий раздражитель в виде текущих коммерческих читов, не более. Поэтому работают по схеме что-то произошло - как-то отреагировали. Обычно это происходит мега-уебански и на полных похуях, например в одной игре недавно заблочили USB VID/PID всех мышей A4Tech, ибо некоторые из них могут макросы на антиотдачу на контроллере мыши исполнять. (уже представляю как афотеки выпускают прошивку со спуфингом ID). Кроме того, в паблик античитах стараются особо не параноить, по куче причин. В лиговых более параноидальный режим.Про то, что практически все античиты это как минимум спайварь, я и говорить не буду. В 2013 esea умудрился даже майнить на компах клиентов, лол.
>>1549490Гуглится же.https://play.esea.net/forums/492102Этих даунов потом штрафанули на лямhttps://nj.gov/oag/newsreleases13/pr20131119a.htmlпомимо этих линков, дохуя шитшторма было на разных ресурсах
>>1549445Кастомный драйвер понятие растяжимое. Я уверен, что смог бы отловить его на 100%, только если это не гипервизор другой уровень пердолинга, придется фазить гипервизор для поиска уязвимости и последующего детекта или загрузочный пакет UEFI. Кроме того, конечная точка любого софта - это процесс игры, следовательно его модификация, которую скрыть просто невозможно можно через SLAT.
https://www.securitylab.ru/news/503507.phpАлсо, за читы тоже уже бутылят. Скоро за обычный фриланс сажать начнут. А что? Налоги не платят - пусть сидят. Пиздец конечно.
>>1549844А вот это пиздос конечно..Может он именно малварь под видом читов пытался распространять? Просто как бот/кликер под 273 можно подвести? Да и кому прижало его в РФ искать за бота в забугорной игре?
Было у вас такое, что вы ресерчили/находили уязвимость, уже было хотели опубликовать результаты своих исследований, как вдруг в твиттере натыкаетесь на пост о том, что кто-то это уже проделал аналогичную работу и релизнулся? Пиздец, мне вот обидно стало, даже не знаю стоит ли теперь продолжать в этом направлении. И что мне теперь делать с этой работой? А я ведь ее несколько месяцев обсасывал и уже предвкушал лавры. Надо видимо заканчивать с этой деятельностью и искать нормальную работу :(
>>1549939Напиши статью с подробным разбором. В сети не хватает нормальных тьюториалов по каким-нибудь большим работам, а не по крэкми на сорок минут.
В дизассемблированной программе есть куча функций ровно из одной операции безусловного перехода. Откуда они берутся и зачем нужны?
>>1549939Серьезное что-то нашел?Аж интересно стало, напиши подробнее что и как, плиз если конечно ценности уже не представляет.
>>1549828>Кастомный драйвер понятие растяжимое. Я уверен, что смог бы отловить его на 100%, только если это не гипервизор другой уровень пердолинга, придется фазить гипервизор для поиска уязвимости и последующего детекта или загрузочный пакет UEFI. Кроме того, конечная точка любого софта - это процесс игры, следовательно его модификация, которую скрыть просто невозможно можно через SLAT.Рано или поздно проблему решат радикальным образом - у пекарастов отнимут швабоду нахер, введут анальный chain-of-trust на уровне EFI, забанят прыщеОС, а для "программмируевать" разершат использовать только вижуалстудию и только для зарегистрированных лиц с паспортными данными и под NDA.
>>1550275Ну да, у эпл все оси на таком принципе и работают. Анальный вендорлок, пукнуть никуда нельзя.
>>1550120Вангую, что это последствия линковки. Берутся, потому что так удобнее линкеру и компилятору. Второй вариант - разработчик сам обернул внутренний апи функциями с точно такими же аргументами (в виде задела на будущее), а компилятор увидел, что аргументы совпадают и заменил обертки на jmp.>>1550275> у пекарастов отнимут швабоду нахерФантазии такие фантазии. Скорее x86 умрет, чем обычные пользователи начнут жить исключительно с подписанным кодом. На самом деле, худшее, что могло случиться с читами, уже случилось, и называется оно Google Stadia.
>>1550421> чем обычные пользователи начнут жить исключительно с подписанным кодомУже есть такое, гугли Windows 10 S (secure).
>>1550275А смысл? Цепочка доверия и сейчас есть, читам она не мешает и никто особо не морочится чтобы её отключить, есть попроще способы поковыряться в ядре, чем в уефи лезть. Если на системе можно выполнять произвольный код, и есть драйверы от криворуких вендоров, её всегда можно будет сломать, как ни закручивай анальные гайки. В читерстве ты контролируешь систему и можешь легитимно привести её в произвольно уязвимое состояние, а обычно оно такое и по дефолту.>>1550421Стриминг-сервисам лет уже больше десятка. Стадию в гугле кто-то внедрил ради KPI, и она не особо. Хороши в этом плане разве что разработки OTOY, но рендерить лайтфилды обосрёшься. В любом случае, стриминг скорее наоборот приведет к необнаруживаемым читам. Уже сейчас в пиксельных аимботах успешно играются с ML, просто сейчас игра не стоит свеч.>>1549828Гипервизоры тоже довольно популярное дело, да. И модификация не всегда нужна.
>>1550583Дыры драйверов от криворуких вендеров патчат каждый апдейт и добавляют в блэклист, ось их тупо не загрузит. В инсайдер версиях винды уже никакие дрова не работают.> И модификация не всегда нужна.А как по-другому? Мышь эмулировать, да квадраты рисовать? Это еще проще спалить и софт выходит низкого качества. В любом случае на текущий момент все античиты говно полное. Вангую им майки скоро подгонят интерфейс, типо threat-intelligence. Также в инсайдер версиях винды уже обкатывают легитимный перехват системных вызовов в ядре, скоро наступит пиздец всей малвари.
На процессоре i8080 есть parity flag, я думал он ставится в зависимости от четности результата операции(result % 2)Но сейчас прочитал в датабуке>>Parity: If the modulo 2 sum of the bits of the re-sult of the operation is 0, (Le., if theresult has even parity), this flag is set;otherwise it is reset (Le., if the result hasodd parity).Я правильно понимаю: он проверяет на четность сумму битов?Например: $0f+$01=$10=10000 -> parity=0$04+$01=$05=101 -> parity=1 ?????????
>>1550793> в зависимости от четности результата операцииТу четность ты можешь and-ом проверить. А эта предназначена для контроля целостности: ты берешь данные, дописываешь к ним PF и отправляешь по какому-нибудь модему. Принимаешь, кладешь в регистр и тестишь PF (вариант: аппаратно ксоришь биты между собой и инвертируешь результат). Если результат 1, то была ошибка при передаче, если 0 - при передаче ошибок либо не было, либо было больше одной 1-битовой ошибки.> он проверяет на четность сумму битовДа. Или проверяет, что количество ненулевых битов четное.
Нужно добавить пустую секцию заданного размера во время компиляции в студии. Пробую вот так:#pragma data_seg(".sec")__declspec(allocate(".sec")) unsigned char buffer[size]; #pragma data_seg()Работает, но если включить оптимизацию, то очевидно компилятор оптимизирует этот хак. Как это делается по канону?
>>1553156Все равно исключал из сборки, но я разобрался, нужно было нулевой указатель добавить, как это делается при сборке TLS директории. А я был убежден, что должна быть какая-то директива для подобным манипуляций. По-моему уж где, а в студии должны быть такие вещи. Я уже месяц пердолюсь с этим PE-форматом и у меня реально голова болит от этого пиздеца, особенно от таблицы релокаций.
>>1553543Все разобралсяПросто рандомное название для 64 регистра, думал конкретно "13" может что-то значит
>>1553527https://wiki.compscicenter.ru/index.php/C%2B%2B_2_5SE_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0_2019https://wiki.compscicenter.ru/index.php/C%2B%2B_1MIT_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_1_2019
Ананасы, привет.Хочу написать фаззер средней паршивости в качестве проекта (не уровня afl офк, Москва не сразу строилась, но с чего-то надо начинать), че посоветуете покурить?
>>1556011https://youtu.be/BrDujogxYSkУ него вроде еще самоделки с пояснениями были полистай канал, если зайдет.
>>1556113Программы, которые имеют выход в сеть (или либы, которые дают сетевой функционал программе).Совершенно очевидно, что фаззер должен будет искать в бинарнике функции инпута, которые получают и обрабатывают пакеты, и фаззить их. И иметь функционал black box фаззинга на случай, если нет исходного кода.
Мне нужно написать программу на ассемблере.Эта программа должна находить корень на промежутке a, b по формуле f(x)=x3+5x2–4x–20 с точностью до e. Е здесь это не число e, а просто переменная.Вроде бы всё понятно, кроме одного: что значит "с точностью до e"? Если что, e здесь просто переменная, а не число вроде пи.
Вот, кстати, мне программу такую скинули, но мне кажется, что она как-то не правильно работает. Или правильно? Программа для ТАСМ.https://yadi.sk/d/8aVM6NhjK3fvcA
Объясните пожалуйста простым языком, зачем нужна метка в ассемблере?Я из этого определения не понял ровным счётом нихуя>Метка – идентификатор, который используется в программе и возвращает адрес памяти, по которому она находится. Метка – это главная форма взаимодействия с данными в памяти. Если метка используется в программе, то фактически на месте метки будет стоять адрес, на который она указывает.>Существуют разные способы определения меток. Простейший из них – двое-точие после названия метки. За этой директивой на той же строке может следовать инструкция или директива. Она определяет метку, значение которой равно смеще-нию, т.е. адресу точки, в которой она определена. Вернее, смещению следующей директивы или инструкции. Этот метод обычно используется, чтобы пометить ме-ста в коде, но ничто не мешает вам пометить этим методом данные.
>>1557363Метка - абстракция для людишек, ибо гораздо удобнее воспринимать адрес как yobaaddress, нежели 0x0804f5a7. По той же причине, что и удобнее написать mov eax, 10 , нежели писать эту инструкцию в виде опкодов.
Пишу на маке. В универе начинаем копаться в tasm. Где можно без заебов начать на нем писать и желательно прогонять в каком-нибудь эмуляторе (все таки в маке регисторы дорогие, а я обязательно что-нибудь асмом сломаю себе ибо рукожоп).Гуглил много, именно для tasm не нашел нормального решения без пердолинга в жопу, XCode посылает нахуй даже препода и не хочет компилировать вообще ничего.
Может кто-нибудь не поленится объяснить: чем machine cycles отличаются от clock cycles? И можно ли зная одни перейти к другим?
>>1558517> которые может в FASM синтаксисНахуя?> Посоветуйте нормальный дебаггерWinDbg единственный нормальный дебагер, но там сложна. x64dbg твой выбор.
>>1558285> tasmНу досбокс же.>>1558517> FASM синтаксисfdbg лол, но ты не захочешь им пользоваться.>>1558526>>1558529> Нахуя?Двачую вопрос. Ты так говоришь, как будто от тебя что-то отвалится, если ты в OllyDbg увидишь dword ptr в своем коде.
>>1558289>clock cyclesПонятие из электроники, как правило есть электрическая цепь, физически скорее всего расположенная на материнской плате, которая генерирует напряжение, например куски по 0 и 5 вольт, с некоторой частотой (генератор тактовых импульсов). Первая половина периода 0 вольт, вторая половина 5 вольт. И так пока компьютер включен. Зачем это надо? Синхронизировать работу регистров, то есть памяти, расположенных на интегральной схеме (центральном процессоре). Пока идет изменение от 0 до 5 вольт (это очень короткий промежуток времени), регистры работают, изменяют свое состояние, в остальное время они ничего не воспринимают и работают только элементы типо и, или, не, комбинированные друг с другом, чтобы получить желаемую логику. Эти логические элементы успевают выдать что-то на вход регистров, которые на следующем периоде в течение изменения сигнала с 0 до 5 вольт опять в зависимости от того что у них на входах меняют свое состояние. И логические элементы в зависимости от выходов регистров снова изменяют свой сигнал, выдавая что-то новое на вход регистров. То есть один clock cycle - это сам период, в первой половине которого напряжение выдаваемое генератором 0 вольт, а во второй 5 вольт, если например у процессора частота 3 Ггц, то этот период равен 0.3 наносекудны. Важно в нем переключение с 0 до 5 вольт.>machine cyclesmachine cycle это количество clock cycles, которое нужно, чтобы процессор выполнил что-то. Машинные инструкции, например, разбиваются на какие-то шаги, типо fetch, decode, execute, write. Fetch может например занимать 4 clock cycles. То есть при частоте 3 Ггц будет выполняться за 1.2 наносекунды.
>>1558908Чому всё так слоожнооо?: Оказывается еще что в мануале под "cycles" понимается "machine cycles" а "clock cycles" - это "flags", но "flags" это так же и матоп флаги... Ааааааааааа!!!!!1пасиб.
Почему когда считается размер адрессуемого пространства оперативной памяти, отнимается один байт? (например, 232 - 1)
Почему на виртуалке могут не работать брекпоинты? Установил с офф. сайта 7 винду под VMware, а там такая засада. На соседней 10 винде такой проблемы нет, в настройках все перекопал уже. Если включить дебаг мод, то вообще система фризится по достижению бряка. Это гипервизор кривой или майкрософт накосячили?
Поясните. Есть отладчики, которые могут читать ввод из текстового файла и писать вывод в текстовый же файл, или хотя бы в стандартные потоки (stdin / stdout в глинуксе)?
Объясните кто-нибудь как реализуется многопоточность на языке процессораВ процессоре каждое ядро имеет свои собственные регистры, или регистры одни на весь процессор?Если второй вариант, то как работает тот же рендеринг на процессорных ядрах? Ведь там по сути всё идёт параллельно, а значит по логике, должнен быть отдельный набор регистров для каждого ядра. Но ни в одной книге по ассемблеру, или архитектуре процессора я не нашёл ни одного упоминания о том как работает многопоточность
>>1560867Если коротко, то так (отсюда https://habr.com/ru/post/482170 ) а длинно - открой любую книгу по архитектуре процов
>>1560867>языке процессораАссемблере всмысле? https://stackoverflow.com/questions/980999/what-does-multicore-assembly-language-look-like
>>1561015Последовательность выполняющихся инструкций - это поток. Процессор инструкции выполняет? Тогда какие проблемы? У всех процессоров есть потоки (но не те, что в ОС), а у x86 есть даже задачи настоящие (только ими никто не пользуется).
>>1561582Ну да, я это и имел ввиду, мне кажется не совсем корректно называть это потоками, тк это не объект, как в случае с абстракцией ос, тогда уж поток выполнения. Код выполняется на логическом/физическом процессоре (ядре).
Пытался сделать стандартный хеллоуворлд на FASM-е. Сам асмокод компилится, но вылетает ошибка пикрелейтедЯ нихуя не понимаю, в чём проблема
>>1561751Есть SASMНо он какой-то багнутый. Может это я криворучка, но у меня черезнего не компилился код, экзамплов, которые идут в комплекте с ФАСМом с оф сайта При чём при запуске через стандартный "IDE" если его так можно назвать, ФАСМА всё спокойно компилилось
Всем хорошего нового годаОтложите дебаггер,вим,ИДЕ и прочие инструментыПостарайтесь провести его хорошо :3
>>1561905И тебе, анончик.А у меня наоборот вдохновение пришло. Составил себе список пет-проектов на год, книжки подобрал для чтения там Востоков опять годноту написал по отладке, windows internals 2 часть 7 издания выходит и еще много всего, листаю твитер в поисках годных блогов, слепил пару плейлистов на ютубчике, итд.
>>1561779Убираешь import, пишеш: include 'api/user32.inc', вот там автоматические A/W макросы, как в сишке.>>1561905> Отложите дебаггер,вим,ИДЕДа ты охуел! ну разве что вим Нет ничего охуеннее, чем лампово и лениво потыкивать одним пальцем иду в новогоднюю ночь! Всех с наступающим.
>>1561982> лениво потыкивать одним пальцем иду в новогоднюю ночьНадеюсь ты найдешь себе в этом году,в кого еще можно было бы потыкивать пальцем :D>>1561951ладно,всего хорошего вам тут аноны,будьте счастливы ептА я пошел
>>1561951>книжки подобрал для чтения>твитер в поисках годных блогов>слепил пару плейлистов на ютубчикеПоделишься?
>>1562502> книжки подобрал для чтенияhttps://www.patterndiagnostics.com/https://www.amazon.com/Windows-Internals-Part-2-7th/dp/0135462401https://www.amazon.com/Hardware-Software-Virtualization-Synthesis-Architecture/dp/1627056939https://www.amazon.com/Windows-via-C-6th/dp/0135953391/+ пикрил моя текущая библиотека >твитер в поисках годных блогов>слепил пару плейлистов на ютубчикеВсего подряд накидал, не сортировал еще, ссылок 100 вышло. Плейлисты буду собирать из выступлений на конференциях, их тоже надо посмотреть сначала.
Как следует реверсить встроенное программное обеспечение, которое работает в режиме ядра? Есть файл с расширением .fw - прошивка для Mi Band 3, мне необходимо вскрыть его в IDA Pro, и она не может даже определить архитектуру - а мне еще дебаг надо будет проводить, используя эмуляцию аппаратного обеспечения.
Часто возникает такая ситуация, что нужно проверить функционал какого-либо винапи, естественно открывать ide, лезть в документацию и подключать отладчик лень. Мб есть тулза/плагин для отладчика, в котором можно выбрать нужный апишник, указать параметры и получить всю необходимую информацию?
Прошаренные на месте? Я тут читаю System V AMD64 ABI и там указано, что rbx и rbp (еще r12-r15) - должны сохраняться и по завершению функции восстанавливаться вызываемой функцией. С rbp понятно, он указывает на основание стек фрейма, а у rbx в чем прикол, он как то исторически по особенному использовался/используется тоже или что? r12-r15 callee-saved просто чтоб было как мне кажется.
>>1548989>>1501062Апдейт того, что у них изменилось за год нихуя https://vmcall.blog/battleye-analysis-2020/
Кстати, тут соседи ябло-разрабы слили самую актуальную (вроде обнов больше не будет) версию трилогии алчного Левина про OSX в херовом качестве.Кому надо - велкам в их телегу https://telegra.ph/MIYAMOTO-SYNDICATE-06-16
>>1566064Два совершенно разных инструмента, грубо говоря фаззер подготавливает и грузит пейлоады, а санитайзер отлавливает ошибки. Обычно работают в паре.
>>1566069У меня тут встал вопрос. А могу ли я накатить макось на виртуалку и ковырять ее там? Или без техники ЭПЛ не обойтись?
Сап, реверсачСкажите плиз, в реальном софте, а не в крэкмис или челленджах на ситиэфах, вручную статическим анализом ищут дыры в софте или в нынешних реалиях это невозможно? И без скриптов/фаззеров не обойтись никак от слова совсем? Просто написать эксплоит под дыру - сам по себе челлендж в реалиях 2к20 года со всеми технологиями защиты целостности памяти, а найти дыру в сотнях тысяч строк кода, пусть даже если есть исходник, это же пиздец анрил.
>>1566480Ищут. Читал статью (хотя возможно смотрел видео) как чувак прочитал описание одного cve в виндосовском драйвере. Увидел, что там неправильно аргументы передали в какую-то стандартную функцию перепутав 2 аргумента местами. Это позволило экспоитить rce. Потом он тупо скачал драйверы разных антивирусов, прошёлся глазами по всем вызовам этой функции во всех драйверах и в некоторых из них нашёл такую же ошибку разработчиков. Дальше эксплоить не стал.
Какие отладчики показывают не только регистры процессора, но и адреса памяти, используемой текущей инструкцией?
>>1566067>Интересно, что там с этим >>1549844 читаком.. Если дело завели, значит посадили/посадят, 99%.Но стори натурально мутная, просто так им нахуй не сдалось бы бутылить. Под 273 читы пока вроде не подводили, может там еще что было. Подробностей бы.>>1549844Я абсолютно уверен что у кого-то такой бизнес даже оформлен по закону.
>>1566630Ты про instruction pointer? Или effective address ? Любой отладчик показывает. Любой отладчик в принципе показывает все что нужно и даже больше.
>>1566637Нужно (в виде текста или стандартного потока) отображение всех регистров, которые использует и меняет конкретная инструкция, соответственно до и после выполнения инструкции.
>>1566396Можешь, хотя это и является нарушением EULA. Даже PowerPCшную можешь, правда быстродействие там будет такое, что даже железный G4 с 1ггц процом и 1 гигом памяти работает быстрее.
>>1566674Спасибо. Алсо, реквестирую какой-нибудь гайд по быстрому вкату в пердолинг макоса. Как там правильно все задеплоить, какой отладчик использовать для удаленной отладки итд итп.
Есть сишная структура типа:struct{ int a; int b; int c;} MyStruct;Как получить доступ к членам этой структуры из .asm файла прилинкованного студией? Использовать указатель и смещения?Для обычной переменной работал следующий код:-> .asmexterndef MyVar : dword.dataMyVar db 0-> .cextern "C" DWORD MyVar;После чего я мог использовать переменную в обоих файлах.
>>1567010В старых - ставишь xcode с образа вида xcode-хуй-пизда.dmgЕсли чисто в консольку пердолиться и шеллкоды писать - можешь поставить консольные тулзы. Но они ставятся где-то только начинаяКонпялятор - очевидный gcc или шланг в зависимости от версии хкода, ассемблер - очевидный nasm или gas (под ppc nasm нирикоминдую). Отладчик - gdb.Если понадобятся m4, лексы-хуексы, cmake - всё это ставится из brew или портов.
Что такое шеллкод?Код который передается в шелл(командную строку)?сш скрипт с echo hui pizda внутри это будет шелкодом?Я пиздец тупой,знаю
>>1567292Тфу, не дописал.Скрипт для автоустановки консольных тулзов есть только где-то начиная с 10.10. За полным образом xcode надо ходить на девелопер.кукоблядь.ком и иметь apple id.>>1567298Шеллкод это хуйня написанная на асме (или вообще в hex-кодах), которая запихивается в дырку (переполненный буфер) и на неё передаётся управление.Например, если в проге буфер длиной 100 байт - можно передать ей 101 букву А + в конце шеллкод, который запустит rm -rf /
>>1567298> Что такое шеллкодИсторически - код, который спавнит шелл и привязывает его к сокету. Чтобы ты байтики отправил =-получил удаленный шелл. А сейчас любой исполняемый код, который удалось запустить не предназначенным для этого способом, даже если он калькулятор запускает.
В чем разница между веб уязвимостями (sql injection, xss, csrf) и бинарными вроде переполнения буфера, целочисленной переменной и т.п. в плане силы? Почему на зеродиуме покупают за миллионы только бинарные уязвимости?
>>1567874>Почему на зеродиуме покупают за миллионы только бинарные уязвимости?Сложность их доставания их и потенциальный дамаг который ты можешь им нанести.Зиродиум селлит только госам,а им не очень интересно где там можно поставить ковычьку,а вот всякие рце в хромах это пожалуйста
>>1499956 (OP)мужики выручайтеhttps://github.com/Inndy/ggpk-toolsпеределайте под fasm, ну или хотя бы что то накидайте, а я буду пробывать. а пока я пойду пофармлю эхальт
>>1567874>ПочемуДля веба достаточно уметь подставить кавычку, а в бинарях нужно комбинировать [0-9A-F].Сложность 1 к 16 -> оплата соразмерна))Если без рофлов, то >>1567900
>>1567903gcc -S -masm=intel тебе "накидает". А вообще иди нахуй, никто бесплатно за тебя твои лабы делать не будет.
>>1567934Шизик, ты уже целый месяц в нескольких тредах всех нахуй посылаешь. Не устал? Что-то мне подсказывает, что ты сам нихуя не знаешь.
>>1568839Тебе уже сказали, как переложить твои 30 строчек кода на сях в ассемблер. Если ты настолько тупорогий, что сам этого сделать не можешь.
Как рассчитывается декомпилятором IDки размер (тип) переменной/элемента массива? Я тупо смотрю в оба асм кода и не вижу разницы, вот только в одном случае переменная и элемент помечены как int, а в другом - _DWORD. Все крутится вокруг регистра PC (в него оно возвращает значение (указатель на массив), если верить декомпилятору - LDR PC, [R3,#0x2EC]), однако смещения (+0x2EC) в обоих случаях одинаковые. Могу скинуть конкретно листинги с примерами.
>>1570540В принципе, да - 32 бита, двойное слово. Там вообще лонг с интом конфликтуют в JNI. Чувствую, это надолго.>>1570497Сразу тебе спасибо, ты мне уже тут однажды помог.https://ideone.com/3sqDGp
Допустим, я отреверсил в иде приложение, все красиво, все читабельно, вдруг выходит обновленная версия этого файла, как по-быстрому применить все изменения из первого файла во второй? Не заново же мне пердолить переименования итд.
Поясните за Volatility Framework. В каких кейсах его применяют? Какие у него преимущества перед отладчиком? Набор готовых эвристик и все?
Аноны, начал читать RE4B, понимаю от слова НИХУЯ, вот нихуя не понимаю о чем он пишет. В том же искусстве эксплойта более низкий порог вхождения. Как быть? Читать и плакать? Выучить основы С, чтоб хоть что-то понимать?
>>1573391Челик, если ты не знаешь Си, кресты, асм хотя бы одной архитектуры, основы операционных систем и системного программирования, лезть в реверсинг, а тем более бинарную эксплуатацию, вообще смысла не имеет. Это все равно, что начать изучать математику в первом классе не с арифметики, а курса матанализа уровня MIT. Камон.
Суп, реверсачПочему во время статического анализа меня тянет взять листок и ручку и рисовать стэк, дабы не запутаться в асме? Это норма или не?
>>1573391>Выучить основы С, чтоб хоть что-то понимать? Нет, с ОСНОВАМИ си тебе разве пхп получится выучить. Тебе надо углубиться в си. Учи указатели. Как работает память. В идеале пиши собственные программы, и исследуй их листинг ассемблера. Посети ##[email protected] и спрашивай местных все, что хочешь знать - учат бесплатно, за спасибку.
>>1574552Сказки не рассказывай, каждый может вкатиться с нуля. Достаточно быть обучаемым и замотивированным.
>>1566035Кстати это ведь я так понял просто шелкод который переодически сканит изнутри процесса игры, в самом драйвере там наверное еще дохуя всего.
>>1576643А какой смысл им делать все эти сканы из под юзер мода, если можно делать все то же самое и даже больше из ядра?
>>1576654Потому что: > античит - говно от поехавшего немца-бухарикаСобственно поэтому китайцы и убили пубг и прочие дрочильни, а сами разрабы пубга пошли по стопам близзард и пилят интегрированную защиту.
>>1576408loc == location, кусок кода под лейблом, куда идет прыжок при выполнении каких-либо условий (не функция, засим новый стэковый фрейм там не открывается)
Сори за тупой вопрос, а как читы обычно отличают, что сейчас идет геймплей и надо искать/менять переменные по определенным адресам, а в другой момент отрисовывается глав меню и по искомым адресам лежит мусор/ничего и можно отдыхать?
>>1576875Очевидно, что у игрового движка будет класс отвечающий за текущее состояние игры и в нем будет переменная определяющая идет игра или нет.
>>1564653лол, всё начинается с мибендовскими прошивками примерно так (но путь пройден до тебя) https://myamazfit.ru/threads/instrukcii-po-rabote-s-proshivkami-cherez-ida-pro-i-binedit.97/
Какого хуя не работает мой божественный код?https://pastebin.com/bZG2ZgynПрограмма должна переводить две 8-длинные строки в числа, суммировать их, переводить в третью строку и печатать ее на stdout. До суммирования включительно все заебись, но при первом же делении результата на 10 случается хуйня. Я ебал.
>>1578331А я, блядь не могу. Оно не хочет по одной инструкции выполнять. Может надо не голый _start писать, а main, потому что отладчику там уютнее с первой точкой останова размещаться? Anyway, я четко вижу, что в регистре rsi 22222222, он копируется в rax и делится на r8, который 10. ЧЗХ?!?!
>>1578132секунда в гугле https://stackoverflow.com/questions/8649180/assembly-divisions-and-floating-pointsRDX занули, он divом воспринимается как верхняя часть делимого
>>1578578Спасибо, анон. Буду внимательнее. Знал лишь, что умножение в RDX верхнюю часть кладет, а деление - остаток. Данный же случай вполне, однако, логичен.
>>1578594>divlэто деление 16 битного AX на 8 битовое значение имеется ввиду? Ну если делимое в 8 бит укладывается, то можешь и так. Удобнее просто rdx занулить и работать с 64 битным делимым как мне кажется.
>>1578607Да я так и сделал. А суффикс L - это ведь dword. Только частное и остаток разбиваются на два регистра даже при ширине типа в полрегистра и меньше, т.к. логически разные части результата, чтоб SHR-ом не извлекать), исключение - однобайтовый, т.к. есть AH:AL.
>>1518584Как ускорить статический анализ? Есть какие-то дзен-техники/скрипты? Невозможно же читать асм листинг всего бинаря, особенно если он огромен, и тем более, если strippedЧе делать?
>>1580970> Невозможно же читать асм листинг всего бинаряИменно поэтому изобрели декомпилятор. Монополии Ильфака пришел конец, теперь почти во всех опенсурсных решениях присутствует этот компонент. Также, у тех же самых иды/гидры, есть встроенные скриптовые движки с приличным апи и готовая база плагинов.
Можно ли в вин10 последней заюзать HalDisplayString когда винлогон уже запущен? Если нет, то почему? Я понимаю, что в вин8 ввели новый формат бсода, но не могли де полностью выпилить эти функции? Существует ведь добрая половина native-прог
Нахуя в строке mov [esp+10h+var_10],eax к 10h прибавляют var_10, которое, как я понял, равно -10h? В итоге ведь ноль выходит.
>>1581199А что насчет скриптов? К радару и айде прикручены скриптовые япы вроде питона, луа... Как их можно юзать, чтобы ускорить статический анализ? Слышал, что благодаря скриптам справляются даже с обфускацией, поэтому полуавтоматизировать или хотя бы облегчить статический анализ можно, не? Но как?
>>1581553Ну допустим программа юзает шифрованные строки которые только в рантайме расшифровываются по мере использования, можно написать скрипт который будет их искать и расшифровывать.
>>1581553Плагины это и есть скрипты. Что конкретно ты реверсишь и что тебе там надо ослаблять? С декомпилем любая макака бинарь за день отреверсит.
>>1581950>@natashenkaЭх.. Может и правда без определенных личностных деформаций в профессии не добиться успеха, сколько жопочасов не трать?А аутизм уровня "дрочь на тамагочи-дампы", как лакмусовая бумажка(
Анализирую прошику i8051, она куда-то что-то пишет (распаковывает данные), либо через DMA, либо через порт.Как лучше всего организовать рабочий процесс, чтобы понять, что делается? Я нашел опенсорсный эмулятор и в принципе могу залогировать все, что угодно, но может у кого есть еще какие-то советы
Двач, есть одна строка, и я хочу добавить в нее многобайтный юникод-символ.С однобайтными все просто:mov byte [rdx], 32а с многобайтными пока только так приходит в голову: mov byte [rdx], 0xE2 inc rdx mov byte [rdx], 0x97 inc rdx mov byte [rdx], 0xA3
>>1581930Какой бинарь ты за день отреверсишь? Калькулятор?Речь идет о сложных прогах с минимум 20-30к функций
>>1582952Какая у тебя там сложная прога с 20-30к функций? В ядре винды их меньше. Если ты реверсишь бинари такого размера полностью, то ты явно не знаешь, что тебе нужно.
>>1582998Ок, я все перефразирую.Дано: прога типа телеги или вотсапа (мессенджер взят как пример, похуй на самом деле что)В моем понимании, реверсинг с целью поиска дыр в таких прогах должен происходить следующим образом: подрубается фаззер на мощной машине в несколько десятков тредов и крутится до посинения нахождения хэнгов/сегфолтов. Вручную что реверсят с целью найти дыры? Функции, которые обрабатывают ввод извне, я полагаю. Но сама уязвимая функция не обязана быть именно этой, само переполнение/произвольное чтение/запись/дабл фри/UAF и т.п. могут быть не обязательно в самих функциях обработки ввода. Как тогда все искать вручную, учитывая, что серьезные бинари еще и stripped?У меня есть подозрения, что при поиске дырок используется софт типа фаззера, а статический анализ проходит уже в найденной софтом уязвимой функции, и тех, на которые она влияет (по xref можно почекать, например), чтобы понять как это эксплуатировать, если вообще возможно. Сам поиск дыр в крупных бинарях/ядрах ОС вручную не производят, я прав? Иначе я не понимаю как вручную можно искать дыры в крупных программах, особенно не имея сорца, это же пиздец. Даже с декомпилятором.
>>1583091Раз в год и палка стреляет. Слышал про такое? Сидят и дрочат до посинения, свой первый баг уж точно, а вот потом можно задуматься об автоматизации процесса. Естественно, все реверсить не нужно, достаточно знать узкие места, изучить последние баги за последний год и искать похожие места. Тулзы для динамееского анализа, которые реально помогают в этом деле стоят очень дорого, по несколько тыс. баксов в год и имеют тонкую настройку для конкретного кейса.
>>1583091>подрубается фаззер на мощной машине в несколько десятков тредов и крутится до посинения нахождения хэнгов/сегфолтов.И что этот фаззер делает вообще? Ищет функции в бинаре и вызывает их с рандомными параметрами?
>>1576875>>1566035>>1501062https://youtu.be/yJHyHU5UjTgBlackHat Official начал заливать прошлогодние выступления, может местным читакам будет интересно.Сам толком нихера не понял, кроме того, что парень из ядра делает грязь, чтоб не палится дергая WinAPI.
>>1583643Ну, я имел ввиду применительно читов/античитов в играх. Наверное на первое время хватит покурить исходники hvpp и сопутствующие бложики/unknowncheatsПросто не сталкивался на практике с виртуализацией уже запущенной системы, поэтому не сразу понял возможные профиты в игровой области - спасибо за наводку.
>>1583529Так гипервизор вообще имба какая-то получается. Если я правильно понял, то с помощью EPT можно сделать защиту памяти так, что при чтении будет показывать одни данные, а при исполнении другие. Как это вообще можно обнаружить?
>>1583808https://vmcall.blog/battleye-hypervisor-detection/Это из того, что вчера нарыл интересного почитать.А так, наверное применимо все то, чем любая малварь детектит запуск себя в VM.
>>1583718Сложно что-либо понять в исходниках без мат. части. Метод тыка не сработает. Есть четкая спецификация которой надо следовать. Все эти вещи описаны в мануалах. Какие профиты? Считай это год мод. Реалтайм отладка/трассировка ядра, модификация страниц памяти на лету, куча с горкой разных евентов и калбеков железячных. Применение в игрульках: установка скрытых перехватчиков, создание анклавов. >>1583808Да. Никак. Можно использовать разного рода эвристики для обнаружения присутствия гипервизора. Ошибки конфигурации так скажем, кривые обработчики событий итд. >>1583876Разве APERF счетчик не привязан к частоте процессора? Эта эвристика не может быть надежной. Вообще тайминг атаки это хаки, которые нигде кроме низкосортной малвари не должны использоваться.
>>1583915>понять в исходниках без мат. частиКМК, по началу мне и обычных туториалов хватит, наподобии:https://github.com/SinaKarvandi/Hypervisor-From-Scratch/Тем более, там вроде и автор hvpp руку приложил.
>>1583876Ну это чисто обнаружение присутствия самого гипервизора, а сами хуки с EPT получается вообще никак не обнаружить?
Вон там DTrace под винду завезли на базе гипервизора. Годно.https://techcommunity.microsoft.com/t5/windows-kernel-internals/dtrace-on-windows-20h1-updates/ba-p/1127929
>>1583142Вот например, уязвимость найденная фазером. https://talosintelligence.com/vulnerability_reports/TALOS-2019-0964
>>1584316Я сделал.Только через жопу(( Оказывается, если тасовать и добавлять/удалять картинки, то макаба загружает не то, что показывает. Сорян, потерпите Эдди в ОП-посте.Перекот>>1584716 (OP)>>1584716 (OP)>>1584716 (OP)>>1584716 (OP)