В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (RE).
Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда. Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.
Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.
Инструменты для RE: Дизассемблеры: 1) IDA Pro 7.2.torrent 2) IDA Pro 7.0.torrent (x64 only, для XP нужно патчить PE + вылеты) 3) IDA Pro 6.8.torrent 4) IDA Pro 5.0 - бесплатная версия для некоммерческого использования 5) Radare 2 - наконец прикрутили гуй, но по прежнему нужна только клиническим, не умеющим в скачивания торрентов, или пользователям альтернативных ОС 6) Ghidra для любителей анальных зондов от АНБне такие уж они и анальные 7) Остальное
>>1439555 (OP) Граждане, а киньте пожалуйста какой-нибудь ссылкой, или гневным абзацем чтобы мне стало ясно что спрашиваю очевидное:
ASM-вставки и отдельные программы могут позволить обойти ряд ограничений безопасности со стороны компиляторов и даже целой ОС? Или оно без бубна всё равно в пользовательских режимах запускается?
>>1439944 >>1439949 > обойти ряд ограничений безопасности > из пользовательского режима не выберешься Было в Windows 9x. Теперь действительно не выберешься.
Чего накурились разработчики Bindiff'a, что в последней версии (5.0) я не могу зайти в сравниваемую функцию (установил это на иду 7.0). У всех так, или это я криворукий дебик? На иде 6.8 все отлично кликается, но там и версия плагинософта помладше - 4.x. Неужели надо каждый адрес копировать и вставлять ручками в окно функций, ска?
>>1441120 Я пробовал сие с самого релиза - тормознутое явовское уг. Простенькую либу анализировала чуть ли не час, так и не дождался и забил. Может, сейчас ситуация получше. Но, черт возьми, кто ж такие вещи на жабе делает (jeb decompiler туда же, последние версии - лютое, не оптимизированное не пойми что).
>>1441167 этож АНБ, как и любые гос органы, им не так критичная скорость. Им ванжнее простотА поддержки, чтоб в написании как можно меньше быть завязаными на конкретных людей, и результат. А мощностя для скорости - выбить дело времени. Даже на том же шарпе анализ работал бы быстрее. Но судя по всему разработка начиналась задолго до .net core
>>1441241 >>1441216 Да, у них с мощностями проблем нет. А как у гидры по псевдокоду? На выходе лучше, чем у идки? Вообще вопрос не об этом (меня и идовский устраивает, один фиг ковыряю запутанный код), но раз уж пошел об этом разговор, то почему бы и нет.
>>1441250 где то лучше, где то не оч красиво, всплыло несколько багов (там прям видно мусор в декомпиле) но их достаточно быстро поправили. у гидры движок изначально точился под то, чтоб строить декомпилятор. Но тонких настроек как у HexRays пока конечно же нет. Но всё впереди :) думаю там люди с опытом выскажутся пообъективнее https://exelab.ru/f/index.php?action=vthread&forum=3&topic=25640 тот же https://habr.com/ru/users/DrMefistO/ пересел на гидру полностью.
>>1441017 Отвечаю сам себе, если у кого-то появится схожий вопрос: похоже, виновато Ida SDK 7.2. На версии IP 7.2 в функции плагин напрямую заходит. То есть, Bindiff не полностью совместим с 7.0.
>>1443637 Нет нормальных книг по ассемблеру. Читай статьи/смотри курсы. Там учить-то нечего. Вникнуть в суть можно за недельку. А дальше вон в шапке курсы по OllyDbg и IDA, почти 200 уроков.
>>1443803 >OllyDbg и IDA они по сути дублируют друг друга, только рассказыват в контексте разных инструментов. Сам asm учить как и любой другой язык программирования - не долго, а вот овладеить им, употреблять его - это уже другая. И да, соглашусь курсы норм подходят, дают наглядно посомтреть что можно и как можно, даже тот же Калашников
>>1445526 В каком смысле? https://exelab.ru/videokurs.php Вот можно почитать содержание курса и что идет с ним в комплекте. Стоит вроде недорого, книгу недавно с амазона заказывал, дороже вышло.
>>1448644 Ну вот у него видимо совместимость какая-то была выставлена в свойствах у file.exe, поэтому для конкретного имени файла ASLR отключалась, и все работало.
>Так еще и IAT кто-то восстановить забыл Что ты имеешь в виду? IAT загрузчиком биндится. Вернее биндинги почему-то зависят от имени .exe файла. Вплоть до того, что работоспособность .exe файла зависит от имени, указанному в /out. Мне кажется, это происходит при линковке в файл только с именем file_0.exe. ЧЯДНТ?
>>1448710 >совместимость какая-то была выставлена в свойствах у file.exe Нет. Там всё чисто.
>>1439555 (OP) Как при помощи CreateFileMapping сделать инжект ДЛЛ-ки в процесс? Надо использовать MapViewOfFileEx и передать в нее lpBaseAddress памяти, выделенной в целевом процессе?
>>1448761 Посмотрел более трезвым взгялдом и похоже что это проделки антивируса или проактивки. Опасные апишки типа CreateFile, CreateThread, VirtualAlloc и т.д. перехватываются кем-то, кто сидит ниже кернела в памяти. А проактивки они такие, даже на изменение имени работают.
>>1448842 Ничего выделять не надо. Отображаешь секцию по хэндлу и тебе возвращают адрес, по которому система разместила ее в целевом процессе, далее вычисляешь или запрашиваешь точку входа и делаешь вызов.
>>1449151 >Отображаешь секцию по хэндлу и тебе возвращают адрес, по которому система разместила ее в целевом процессе А какая функция отображает секцию в другой процесс?
>>1450410 > разработчики не знают, зачем они это добавили Разработчики знают. Тогда целочисленные типы были маленькие, а деньги компьютерам тех времен считать приходилось постоянно. Поэтому многие языки умели в какой-нибудь встроенный decimal. И x86 асм не исключение.
>>1450790 > анонимная борда > мылач Тут пару лет назад анон на бутылку сел, когда засрал раздел с просьбами о помощи в написании криптора. На архиваче валяется тред вроде как.
>>1452466 то что оно на серверах (венды все равно больше в корпоративе). А дыры есть. Просто пока на дестопе это считанные проценты - овчинка выделки не стоит. А андроиды - да там и дырявостей ненадо (ъотя и их предостаточно). Там пользователи сами себе злые буратины. дают разрешения на всё подряд, качают откуда попало. Вот свежий win, просто грамотнее надо. https://habr.com/ru/news/t/463319/
Ребят, есть прила, которая каким то образом генерирует переменную и отправляет ее на сервер. Что мне нужно, чтобы понять механизмы приложения и по какому алгоритму она генерит эту переменную? О реверсе знаю только то, что эта та сторона, в которую мне надо двигаться. В шапке много чего, но не хочу сам во всем этом капаться, подскажите что нибудь? Какие то конкретные главы из книг? Спасибо
Кто-нибудь из местных задумывался слетать на контракт за бугор? Или может знакомые у кого-то летали? Находил на форумах посты рекрутёров, которые предлагали поработать в дубаях или шанхае пол годика и заработать на студию в питере. Сегодня решил поискать вакансии на сайтах. Перелопатил всё в штатах, лондоне и амстердаме. Сотни объяв на фултайм и пару десятков на контракт. Большинство в штатах и из них большинство требует возможность получит доступ к гостайне. Некоторые контракты для лоулевела спеца даже не связаны в реверсом малвари. Нашёл 2 достойные вакансии с предположительно хорошей оплатой. Одна из них на линкедине и там пишут сколько людей отозвалось. Сорок. Сомневаюсь, что у меня есть шансы. Вторая видимо тоже так популярна. Я много часов на это убил и кажется на всём западе других вакансий нет. А эти мне не светят. Выходит придётся лететь на восток как индус какой-нибудь? И платить тоже будут как индусу? Или есть выход?
>>1457288 В ДС/ДС2 куча вакансий по реверсу/ресерчу и прочему пердолингу, который не связан с анализом малвари. Чем тебя они не устраивают? Платят норм, разброс 100-300к где-то. За обнаруженные уязвимости капает процент + премии + качаешь себе портфолио. На студию за годик наскребешь. В дубаи и прочие заграницы тебя без послужного списка не возьмут.
Ассемблер никогда раньше в глаза не видел. Что лучше прочесть - Калашникова или Юрова? Калашников в djvu и мне там навигация больше нравится. Юров в pdf.
>>1458474 Как мне показалось, у Калашникова уровень "вкатываемся в асм за 21 день" (но это не точно). У Юрова уровень университетского учебника (там и книжка по практикуму прилагается), хоть и несколько устарел. Можешь, вообще, без учебника обойтись. Возьми сразу описание/спецификацию твоей системы маш.команд, руководство для твоего ассемблера, ABI программного окружения и, если есть, API рантайма/библиотек.
Мне тут Калашников с первых страниц рассказывает, что есть регистры: ax, bx, cx, dx (ah, al, bh, bl, ch, cl, dh, dl) si, di, bp, sp cs, ds, es, ss В процессоре 8086. Но у меня нет процессора 8086. У меня есть процессор x86-64 (Intel Core i3-6100). Какие у него аналоги всех вышеперечисленных регистров?
>>1459480 такие же но они больше. калашников норм только чтоб привыкнуть аперировать на асме, ставишь досбокс и пишешь под него. курс его проходится за недельку другую. тупо привыкаешь видеть асм и думать на нем. дальше выкидываешь это нахер и разбираешься с другим
>>1459590 Если я правильно понял, в ax можно записать 16 бит и потом к ним обратиться через ah (первые 8 бит) и al (последние 8 бит). К битам в eax можно обратиться через ax?
>>1459856 Можно. И к младшим битам rax можно обращаться через eax/ax/ah/al. Но в 64-битном режиме в этой схеме уже есть подвох: при записи в eax старшие 32 бита rax затираются нулями.
>>1459874 Подожди. К ax я могу обратиться через ah и al к старшим и младшим битам. К eax я могу обратиться через ax. К каким битам? К младшим? А как обратиться к старшим? Или через ax к старшим, а через bx к младшим? А к rax через что обращаться? Через eax и ebx?
>>1459883 а потом что, тебе тут за каждую команду будут пояснять? или ты неспособен ничего кроме как тупые вопросы задавать на которые ты ждешь ответы дольше чем взять прочитать и понять.
>>1459898 Пиздец ты уебок, братишка. Вон у Калашникова из таблицы можно сделать вывод, что к младшим битам EAX можно обратиться через bx. За RAX у Калашникова ничего не написано, но опять же, по аналогии, можно сделать вывод, что к младшим битам RAX можно обратиться через EBX. Мне это тупо схавать и дальше читать? А потом говно напрограммировать?
>>1459913 >что к младшим битам EAX можно обратиться через bx. А, ты все же что то читаешь. тогда ладно.
Ты просто спешишь :) Там о том как данные в регистрах располагаются, про обращение ничего не говорится. То какие данные из регистра достать/положить/выполнить операции - это уже дело команд, и от процессора к процессору это может очень разниться >можно сделать вывод, что к младшим битам RAX можно обратиться через EBX. не пытайся делать в эсемблере в принципе никаких проекций с тем что можно было и что можно. Когда анализируете новый без док - да, конечно пожалуйста, но все это сразу надо проверять практикой. А так, только после того как прочитал конкретно, или фактически проверил в коде >Мне это тупо схавать и дальше читать? нет конечно. взять и проверить. >16+8=20 а в следующей строке видно что опечатка, и не 8 а 4 должно быть.
>>1458474 Бессистемно изложенный материал. Нормальных, доступных объяснений практически нет. Там, где прямо таки просятся хоть какие-то объяснения, начинается новый подзаголовок. Книга начинается подробным объяснением того, что компьютер состоит из системного блока, монитора и пр. А через полдесятка страниц уже начинается озвучивание содержания мануала процессора Pentium и "что нового появилось в архитектуре NetBurst". Прочитавши половину книги убедился в том, что это абсолютно бездарно написанная книга. Систематичных знаний и понимания Ассемблера она не даст.
>>1459988 ОП опять с шапкой пролетел. Новисы не могут сориентироваться.
В качестве учебника можешь посмотреть ещё Хайда или Kusswurm'а. Надеюсь Абеля никто советовать не будет. Пощёлкай шапку - может что-нибудь найдёшь подходящее тебе.
>>1460000 проблема с советом англоязычной литературы в том, что требуется знание английского выше посредственного уровня, а лучше уже быть в теме. Как бы не ругали наших переводчиков, но для большинства это куда понятнее чем то, что он сам напереводит.
>>1459988 > Что ж читать тогда? Intel SDM половину первого тома, потом второй по желанию. Это лишь наполовину шутка, я подобным образом в ARM вкатывался, хорошо пошло.
>>1460019 некоторым нужна практика, желательно чтоб не самому себе ее выдумывать) опять же учить асм под x32/x64 ради асма - глупо. ты либо реверсишь, либо ничего. изучать асм ради мк - вот тут резон есть.
>>1460019 яб вообще предложил курс по OllyDbg от Нарвахи, чтоб сразу на практике и какие то полезные знания (отлаживат программы и под сями и плюсами надо), знания о проце и асме там попутно даются. А потом если надо - уже с имеющимися знаниями углубляться в конкретные части :)
>>1460027 >учить асм под x32/x64 ради асма Именно это - возможно, единственное, что имеет смысл. Это самое интересное. В отличие реверсеров, колупающих результаты работы чужого ума, в стремлении потешить своё "какирское" ЧСВ.
>>1460050 реверс это интересно, как задачки. А писать на асме под 32/64 - глупо сейчас, максимум отлаживать. В 95% случаев твой говнокод на асме никому не нужен, в виду наличия крутых алгоритмов оптимизации в компиляторах. понимания асма нужно чтоб знать где ты нахуепорил. ассемблер это всего лишь мнемокоды к инструкциям процессора, а также транслятор из этих текстовых мнемокодов в бинарное представление. Это не язык программирования в привычном смысле. Знание ассемблера это знание конкретной процессорной архитектуры. Поэтому существование для ассемблеров нетленок вроде Кернигана и Ритчи для С невозможно просто по определению. Обязательным является наличие полного справочника/документации по архитектуре, для которой собираешься писать. Но писать программы справочник не научит. А еще есть области применения. Для того чтобы написать небольшую утилиту, числодробительный блок в программе на высокоуровневом языке, драйвер оборудования для конкретной ОС, транслятор с некого ЯП и наконец ядро ОС нужны очень отличающиеся сопутствующие знания. Нет смысла учить ассемблер "просто так". Его нужно учить для применения в конкретных задачах. Возможна основная проблема многих, кто хочет выучить ассемблер, в том, что они не могут придумать, где его применить. А пока не начнешь его применять для себя, а не для учебных заданий, программировать на нем не научишься.
>>1460075 >А писать на асме под 32/64 - глупо сейчас, максимум отлаживать > в виду наличия крутых алгоритмов оптимизации в компиляторах. понимания асма нужно чтоб знать где ты нахуепорил. Твоё мышление максимально поверхностное. Настоящий реверсер.
>невозможно просто по определению По какому определению?
>нетленок вроде Кернигана и Ритчи для С В твоём представлении это что-то заоблачно хорошее. Ну точно, реверсер
>Но писать программы справочник не научит А должен?
>Нет смысла учить ассемблер "просто так" Как раз смысл есть, только когда "просто так". Ты там смысл со значимостью/ценностью не путаешь?
>Возможна основная проблема многих Какая основная проблема? О чём ты?
>>1460085 как раз таки я не реверсер) а твои аргументы к личности - это полный слив. демагог хренов))
вот на еще тогда пасту в догонку.
знание ассемблера не помогает большей части программистов ровным счетом никак. Ведь если от него нет пользы, то оно никак не может быть необходимым требованием к программисту, иначе с тем же успехом можно сказать "кто не знает древнеегипетский, программистом не является". Для того, чтобы некое знание было полезным для программиста, оно должно хотя бы иногда им применятся.
В далекие времена 8086 и DOS программист на C или Pascal, а это было большинство, имея знания ассемблера, вполне мог предположить во что примерно превращается его код на уровне машинных инструкций. И это действительно помогало при разработке критических по скорости участков, а еще он мог часть кода вообще переписать на ассемблере и это почти всегда давало выигрыш в скорости. Ну а скриптовые языки всерьез тогда никто не воспринимал из-за никакой производительности. Однако эти времена давным давно прошли.
Скриптовые языки вышли на первый план. Их производительность достаточна для широкого круга задач, в отдельных случаях даже превосходя код на С без экспертных оптимизаций, а скорость разработки на них несоизмеримо выше. Да и сами языки шагнули далеко вперед: именно в них чаще всего есть функциональщина, замыкания, лямбды, фабрики, метапрограммирование, интроспекция, DSL и прочие изыски, умение работать с которыми и отличает опытного программиста от новичка, этакий матан программирования. А вот C и ассемблеры остались практически теми же. Кстати, опытные программисты на С или асме пишут на скриптовых языках чуть ли не хуже новичков, ибо таких сложных концепций в их языках нет и думать на должном уровне абстракции они не обучены. Ну и само собой представить во что превратится код на скриптовом языке после перевода в конечные инструкции чаще всего невозможно, а при попытке оптимизировать скриптовый код на основе знаний C/Asm "спецы" садятся в лужу, ибо вместо ускорения зачастую получают замедление, иногда даже катастрофическое.
Но и в области старого доброго С тоже не все гладко. Для того чтобы хотя бы примерно узнать во что превратится код нужно учитывать: 1) архитектуру процессора(x86, arm, mips.) 2) конкретную версию ядра процессора (между i386 и core2 пропасть) 3) компилятор и его версию(gcc, clang, msvc, icc генерируют очень разный код, с серьезной разницей в производительности, аналогично с их версиями) 4) опции компилятора(в зависимости от них вышеприведенный простейший фрагмент может быть выброшен вообще, реализован как есть или реализован с разворачиванием цикла, догадайтесь что будет на действительно сложном коде) Как следствие узнать во что превратится код без запуска отладчика/дизассемблера не получится. Но даже с ними мы видим только одну из версий, а ведь программу могут позже скомпилировать совсем другим способом и все тонкие оптимизации вылетят в трубу.
Ускорять куски кода переводом на ассемблер тоже стало сложно и чаще всего вредно. Во-первых, для того, чтобы тягаться с компилятором в качестве оптимизаций, нужно иметь очень высокий уровень знаний об особенностях процессоров. Обычно такой уровень только у разработчиков компиляторов или драйверов, то есть у узких специалистов. Во-вторых, ассемблерные вставки резко снижают портабельность кода.
Так что же особенного дает знание ассемблера современному программисту? Может понимание таких вещей как работа с байтами и битами, разница между int и float, выделение и освобождение памяти, указатели? Да все это, мои дорогие Ъ программисты, есть даже в скриптовых языках, не говоря уже о С. В современном мире большинству программистов ассемблер не несет ничего полезного. Он нужен только узким специалистам, например разработчикам компиляторов, драйверов и кодеков. То есть ничтожному проценту от общего числа. Да и те стараются использовать его по минимуму. В ядре линукса процент ассемблерных строк неуклонно падает и составляет на данный момент чуть больше 2%. И это в строках, надеюсь Ъ программисты хотя бы представляют разницу в полезной нагрузке на строчку кода на С и asm.
>>1460085 >>1460087 П.С.: можешь не отвечать даже, у вас тут что то скучно, еще и гуроэсембела из тебя такой себе, ни аргументов ничего, одна демагогия. Я дальше пошел)
Что вы тут развели? Асм не нужен нигде кроме реверса. Гайд по вкату есть в шапке. Я хуй знает что вы там вообще учить собрались, регистры, флаги, основные команды учатся за 1-2 дня, далее можно смело открывать отладчик/дизасемблер и ковырять хеллоуворлды. Через год можно пиздовать на работу.
>>1460114 > основные команды учатся за 1-2 дня А потом еще год тонкости вроде mov sp,0xffff pop ax или mov ecx,35 shl eax,cl А потом еще ты открываешь System Programming Guide у того же интела и зависаешь еще на год. А потом Optimization Manual. И да, для реверсинга это тоже нужно, если ты конечно не собираешься всю жизнь > ковырять хеллоуворлды
>>1460168 тк в этом и суть, что нужно оно полутораземлекопам, а ударяться в те тонкости про которые ты говоришь, 95% никогда не понадобится. А если вспомнить энтерпрайз, там весь этот асм надо выжигать, так как осложняет поддержку.
>Проиграл. Даже разбирать лень. Ну хз, по мне так все по делу и объективно. Очень большому числу программистов, асм в принципе сейчас не упал. Стабильнее, быстрее и дешевле писать на другом уровне абстракции. МощностЯ и накрученые компиляторы давно позволяют
>>1460324 >А что не так? "Клонами" они были во времена еще 386, когда все микрокод у интела тырили. Сейчас это разные процессоры с совместимым набором инструкций. При этом он пишет про x86-64, который вообще-то AMD разработала, а интел "склонировал".
>>1460050 дело в том, что вклад пиратов - неоценим; так что пусть ребята реверсят, лишь бы во благо!
мне тоже больше настольный ПК нравится, ибо там что-то существенное сделать можно, а не просто утюг с диодами...
>>1460087 >программисты на С или асме пишут нифига не мог сделать, годами, пока не влез в каждый бит и в каждый байт; как люди, не вникая, кодят - ума не приложу
>>1460381 >мне тоже больше настольный ПК нравится, ибо там что-то существенное сделать можно, а не просто утюг с диодами. это пока ты не начал реверсить донглы, прошки для декапа / расширения функционала / вскрытия алгоритмов и т.п. во всем этом есть свои интересы. Время бы найти на все интересы только.. >нифига не мог сделать, годами, пока не влез в каждый бит и в каждый байт; как люди, не вникая, кодят - ума не приложу всё от фантазии зависит, от того до чего ты абстрагировался , да и потребности. Одно дело дравера писать и что то системное, а другой энтерпрайз. Просто что то вспомнилось: есть хороший способ по прокачке скила, и изучении бОльших тонкостей языка - это написать эмулятор какой либо платформы на целевом языке. Написать просто чтоб завелось и работало - часто не так и сложно (чаще достаточно практически скопипастить мануал по процу), а вот добиться хорошей скорости - вот там начинаешь где то углубляться, где то другие подходы + чтоб можно было со всем этим делом упарываться не переписывая всё полностью - начинаешь задумываться об архитектуре.
>>1457813 Ну нет же. Даже если одну и ту же зарплату платят и здесь и там, то там можно тупо сэкономить на налогах и пенсионных взносах при работе по контракту. И учитывая цену жизни в каком-нибудь нью-йорке, то накопить экономя там проще, чем тут. И я ненавижу вальнюрабилити ресёрч из-за фазинга. И вообще мне доставляет анализ малвари, есть опыт и хочу продолжать в последствии обмазавшись сертификатами. А учитывая, что там требования для сеньёра 3-5 лет опыта и платят по 500 долларов в день, то это гораздо выгоднее, чем тут. Только надо как-то пройти конкурс из десятков кандидатов на место
>>1460601 > шо делают инструкции без операндов, одноимённые сегментным регистрам Ассемблируются. И потом декодируются процессором просто как префикс для следующего за ним опкода. Если инструкция обращается к памяти, и сегмент для доступа можно переназначать - он переназначается на указанный (если сегментных префиксов несколько - используется последний), если не обращается - префкис либо не делает ничего, либо может быть какое-то другое поведение (по крайней мере, Intel нас этим пугает). Например, в P3 были хинты для переходов с использованием cs/ds перед jmp, например, а сейчас они опять noop.
Например, вот эти три куска кода ассемблируются абсолютно идентично (fasm): mov eax,[cs:edx] и cs mov eax,[edx] и cs mov eax,[edx]
Например, вот это работает (в 32-битном коде), сегментные префиксы игнорируются. cs ds es ss fs gs nop
>>1460539 Если ты думаешь, что тебе будут платить 500 баксов в день за обычное ковыряние малвари, то ты очень ошибаешься. Это уровень стажера. Тебе в любом случае придется автоматизировать рабочий процесс, заниматься разработкой девтулов и ресерчить. Фазинг тот же, без него вообще никак, 21 век все таки.
>>1461162 Чтобы понимать, как работает процессор. Если не занимаешься реверсингом, то все равно в сложных случаях (многопоток или SIMD) сможешь ускорить работу отдельных участков своего кода вдвое, а то и впятеро.
>>1461775 Ну вот и поставь, если конкретную книгу читаешь, чтобы потом не бегать и не говорить, что поставил jwasm, а теперь у тебя синтаксис не совпадает и ничего не работает.
>>1461775 если умеешь читать, в том числе доки гуглить, то нет большой разницы какой ставить, я когда разбирадся в FASM'e писал с оглядкой на MASM TASM и прочие примеры
Аноны, с чего следует начинать реверс-инжиниринг оконных приложений в шиндовс? Когда я читаю код на каком-нибудь С, я начинаю сначала определять, что именно программа делает, искать момент в коде, где выполняется это событие, и составлять дерево функций. Но я не могу провести реверс одного достаточно тяжеловесного приложения на Windows 10, явно скомпиленного в MCVS, так как не понимаю, откуда именно мне следует идти. Определить системные вызовы, которые создают окно/файл, или соединяются с сетью, и искать функции, где они лежат? Алсо, я заметил, что MCVS компилит код вообще непонятно во что, явно не в то, что написал программист.
>>1461999 Во вкладках Export/Import в IDA. Открываешь MSDN и смотришь что эти апи делают. Любой компилятор может превратить код в лапшу, если его настроить на такое поведение.
>>1462193 Мы тут не зарабатываем, а развлекаемся. В этот тред идут НАСТОЯЩИЕ программисты с целью поковырять софт или покодить под голую аппаратуру, чтобы вернуться к хуевой работе JS-никами и пыхерами.
Сап, анон. Я нью, так что не стукай. https://www.youtube.com/watch?v=5alcfN4aYHo тут на видосе 14:57. Радар ассемблирует одну инструкцию. Как GNU as вызывать, чтобы он показал во что сассемблирует одну команду? Или такое исключительно с радаром лишь может прокатить?
По ходу чтения Аблязова возникают вопросы. Если я их сюда писать буду - тапками не закидаете? Вопросы возникли на 26-й странице книги (да, медленно читаю - туго идет). Можно ли к памяти обращаться не через шестнадцатеричные, а через двоичные? То есть, вместо: mov eax, dword [0000027Ah] написать: mov eax, dword [00000000000000000000001001111010b] И второй вопрос, если я здесь напишу вместо dword обычный word: mov eax, word [0000027Ah] Что прилетит в регистр eax? 00007A25h? 00000000000000000111101000100101b?
>>1462435 > Можно ли к памяти обращаться не через шестнадцатеричные, а через двоичные? Компьютеру похуй. Если твой ассемблер позволяет писать mov eax,dword[шестьсот тридцать четыре], то можешь и так писать. Все равно это байтами (битами) станет.
> Что прилетит в регистр eax? 00007A25h? Ошибка компиляции тебе прилетит. А чтобы не прилетела, тебе нужны movzx/movsx, про которые ты узнаешь позже.
>>1439555 (OP) > beginners.re - "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна! Это сразу читать или сначала что-нибудь по асму?
>>1463294 По асму и архитектуре компьютера. Но быстро. Коротенькое чё-нить. По фасту. Ищё можно про ОС (виртуальная память, процессы, процедура запуска исполняемого файла и подгрузки библиотек) что-нибудь супер короткое читнуть, но не обязательно.
>>1463259 >>1463300 яч бы еще заглянул в оригинал. DjVu. Данная версия , это распознаная вычитаная одним человеком версия. Но опечатки где угодно могут быть. Не переживай. Люди не идеальны.
>>1463431 >ПС. описание команд я бы читал не в учебники а в справочнике по процу. ;) Ну да, ты бы читал в справочнике. А я читаю в учебнике. Полезность справочников я никоим образом не отрицаю. Но я, человек с ассемблером не знакомый, вижу в нем одни иероглифы. Посылать новичка читать справочники - как-то немношк неэтично. Смотри, я тебе аналогию приведу. Учишь ты язык, скажем, китайский. Скажем, по книге "Выучить китайский за три недели". Начинаешь читать. Пытаешься въехать в синтаксис, семантику, там какие-то временные конструкции, пёрфект индефиниты - вот это все. Видишь неточность. Иероглиф какой-то не там де надо написан. Идешь на двощ, мол, а тут неточность или так и надо? А тебе говорят, мол, зачем ты ту книжку читаешь, иди словарь зубри. Даже вызубрив словарь от корки до корки, потратив на это бестолковое занятие много времени, ты не выучишь язык. Банально тебе словарь даже не скажет, какие слова часто используются, а какие - экзотика. >>1463452 >Ну ты же заметил ошибку. Томущо я сижу и вдумчиво вчитываюсь в каждое слово. Чтобы ничего важного не упустить. Названия регистров, флагов и операторов выписываю на листочек, чтобы зубрить их сидя в туалете. Очевидные ошибки/опечатки очевидны. Не очевидные - мигрируют на листочек и далее в память, откуда вычистить их будет проблематично. >Если сомневаешься - всегда можно набросать три-четыре инструкции и затестить на реальной машине. Так у меня там не написано, как тестить. Как вывести то, что в регистрах или во флагах. Мне обратно к Калашникову вернуться?
>>1463516 > Ну да, ты бы читал в справочнике. А я читаю в учебнике. Полезность справочни Более того скажу, я не читал команды до самих примеров, ну по диагонали может пролистывал. А вот прмиер разбирал, и если описание не понятно, то смотрел в команды. > Так у меня там не написано, как тестить. Как вывести то, что в регистрах или во флагах. Мне обратно к Калашникову вернуться? Как проверять - ждать пока в книжке до этого дойдут? не проще загуглить? и уже каждый пункт проверять ручками? Хоть в той же ollyDebag открыть любой ехе, и после точки входа, править код и смотреть как что проходит, что в регистры попадает. Я без "пощупать" долго и упорно читать - бросил бы давно. https://backoftut.gitbook.io/intro-cracking-with-ollydbg/ch-01 > Названия регистров, флагов и операторов выписываю на листочек, чтобы зубрить их сидя в туалете. зубрить большого смысла нет, команд ОООчень много. При исопльзовании запоминается лучше чем в тупо зубрежку. Можно знать теорию по тому как писать код, но не уметь его писать.
>>1463516 не воспринимай как претензию. Твое упорство достойно похвалы, но не стоит ограничивать только одной книжкой. Обычная практика когда несколько, и что то там что то тут.
>>1463516 > Как вывести то, что в регистрах или во флагах Для этого придумали отладчики. Запускаешь, синглстепом проходишь свои инструкции и смотришь.
> зубрить их сидя в туалете Нахуй не нужно. Оно либо логично, либо как с OF в rcl - никем нигде не применяется, а если встретится, можно посмотреть у интела.
>>1439555 (OP) Есть ли ревер инженеры тут ? Предположим у меня есть dll , которая перекрыта vmp . Внутри dll есть функция все что она делает это распаковывает фаил , я хочу написать свой авто распаковщик , и половина уже готова. Я просто анализирую асм код , и переписываю его логику на java. Существует ли более легкий способ ? Например как нить понять что часть кода не используется или он мертвый ? Вообще любой совет в сторону упращения этого занятия потому что 5к строк кода я уже заебался переписывать. Декомпиляторы это не жрут если что .
>>1464108 самый простой способ когда влоб заменяют одно на другое. потом учатся разбирать структуры чтоб править не заморачиваясь на длину оригинала. Иногда надо шрифты допиливать. Везде свои ньюансы. МОжешь покопаться на форуме "шедефр" пиратов что русифицировали консольные игры во времена пс1/2/дримкаст. Или на Zog посправшивать
>>1464111 > Вмпротект не распаковывается автоматикой. Я знаю, проблема не распаковать. У меня по факту уже есть целый метод на асм , мне его надо просто воспроизвести на java , вообще щас прочитал там как то можно прокси функции написать, с стандартно из через native его вызвать. >>1463922 > даже в иде сишный код не читаем? Неа, там полный бред. Легче самому по командам читать .
model SMALL stack 100h dataseg PRIVET \tdb 0Dh,0Ah \t\tdb "Privet!" \t\tdb 0Dh,0Ah,"$"
codeseg startupcode lea DX,PRIVET ; Адрес строки – в DX mov AH,09h ; Номер функции – в AH int 21h \t; Вызов функции
QUIT: exitcode 0 end
Как сделать так, чтобы вывод не исчезал через милиписечную долю секугды после появления при прохождении строки int 21h? По крайней мере, я замечаю, что в досбоксе что-то на мгновение промаргивает.
>>1464971 Короче, уже никак, теперь вопрос другой. Как сделать так, чтобы введённое с клавиатуры число как-то стало BCD числом? Как прилепить первые четыре байта одного регистра на место четырёх байт последнего? Например, у меня есть 03 в DH и 02 в AL, а я хочу, чтобы в AL стало 32 в BCD коде, то есть чтобы правые четыре байта в AL стали 3, а левые четыре байта остались 2.
>>1464983 Ты несёшь какую-то хуйню. Очевидно же, что числа могут быть любыми, а не только лишь 3 и 2. Я уже сам придумал способ, но тебе про него за твой пидорастический троллинг не скажу.
>>1463294 У каждого индивидуальный подход к обучению. Лично я дропнул RE4B в самом начале и приступил к реверсу самой обычной виндовой софтины. В качестве бэкграунда есть понимание основных концепций ОС, архитектуры ЭВМ и компьютерных сетей, небольшой опыт чтения чужого кода на С из гитхаба (не любительской поделки, а используемого обширным сообществом раскрученного проекта), и, собственно, С, С++ и ассемблера.
>>1465507 Я вводу строку и пытаюсь выловить оттуда или /, но в зависимости от того, какая цифра следует за или / я получаю разные значения в одной позиции. Например, 12341234 и для получаю 312Ah, а при вводе 1234/9234 для / получаю 392F. Почему так происходит? Как вообще такое возможно?
Я вводу строку и пытаюсь выловить оттуда * или /, но в зависимости от того, какая цифра следует за звёздочкой или / я получаю разные значения в одной позиции. Например, ввожу 1234звёздочка1234 и для звёздочки получаю 312Ah, а при вводе 1234/9234 для / получаю 392Fh. Почему так происходит? Как вообще такое возможно?
>>1465655 Просто я между знаком для чисел стек использую и не понимаю, как из-за этого перед кодом символа оказывается цифра, которая в вводе стоит ЗА этим символом.
>>1466406 А как тогда сложить 2 BCD числа? И ещё, при отрабатывании daa из AL если по идее должно что-то перенестись в AH, то на деле вообще нихуя не переносится, единица тупо улетает в пизду. Как мне быть? Как же мне сложить два BCD числа из трёх цифр?
>>1466561 > А как тогда сложить 2 BCD числа? Не использует никто давно уже эти твои BCD. По крайней мере упакованные.
> Почему daa не отрабатывает? Потому что ты не умеешь его готовить.
> Был же перенос единицы в из AL AH Где?
Тебе add/daa CF выставили, дальше ебись как хочешь. Например, ты можешь ебаться так: xchg al,ah adc al,0 daa xchg al,ah ; AX = 4 packed BCD nibbles, CF = carry (если у тебя, например, не из 4 цифр числа, а из 20, ты положишь ax в память, загрузишь следующий кусок и продолжишь).
>>1463480 Чё? Ващет были ЭВМ, и даже транзисторные.
>>1466743 Сап, уже проходил это. Пьюр си оказался очень простым языком для освоения, заебы только со сторонними либами, где void anus на void clear указывает.
>>1439555 (OP) Правильно понимаю, что x86 почти ушла в прошлое, x64 уходит туда же, скоро будут новые процессоры и обмазываться x86_64 сейчас нет смысла?
>>1472530 > x86 почти ушла в прошлое Слышал это в конце 90х.
> обмазываться x86_64 Чтобы ознакомиться с любой архитектурой достаточно одной недели максимум. Чтобы написать хелловорлд - одного вечера. Так может стоит ознакомиться хотя бы для общего развития?
Кто что знает насчёт видеодрайверов? Если речь идёт про базовый функционал, - неужели каждую видео-карту конфигурируют по-новому? Там умышленно изменения иделают, чтобы функционал обрезать, или они обусловлены технологическими причинами?
>>1473746 >Сложно ли вкатиться к вам полному нубу, который целый месяц по 14 часов будет учить ассемблер и все, что с ним связано? Если ты хотел сказать что в день будешь 14 часов учить асм,то ты пиздабол который в жизни ничего учить не пробовал.если в месяц всего 14 часов,то точно нет
>>1473776 Я и по двадцать часов в сутки в асм марафонил в сосничестве до недели. Лет до четырнадцати вообще организм одаривает бесплатной мотивацией, но да, это явно не его случай. И вопросов на форумах я не задавал таких. И интернета не было почти. Просто краем глаза что-то урвал из сети — и месяцами до дыр перечитываешь.
короч нашел занятную серию статеек от девушки там туториал по асме на арме(на примере 32 битной распбери) ну и потом разные шелкоды на асме, стак оверфлоу, немножк по хипу https://azeria-labs.com/writing-arm-assembly-part-1/ всем рекомендую)
>>1472580 вообще не обязательно начинают с х86 потому как является классическим циск ассемблером, запускается и на 32 и на 64 и система интераптов малька полегче, чем в 64
Кто там говорил, что реверсерам и программистам математика не нужна? Решил кейгены покрякать и хуй там, ни один алгоритм не могу воспроизвести без декомпилятора.
>>1475523 Не нужна. Зачем воспроизводить алгоритмы, если можно их рипнуть? Почему "без декомпилера" - это что-то хорошее? Ты еще без компа реверсить начни, таблички опкодов, бумажку с ручкой, и вперед, разбирать 50 метров 100 килограмм распечаток бинарника.
>>1475678 > Как рипнуть, если не знаешь устройства Берешь и копируешь байтики, оформляешь в функцию, функцию вызываешь, ссылки на данные правишь. Есть плагины для иды/оли/x64dbg.
Можете пояснить, у меня есть текстовый файл в котором 1 символ - строчная буква 'и', её юникод - 0438. В хексдампе я вижу: hexdump -C "Text File" 00000000 d0 b8 0a |...| почему?
Тут такой вопросец - есть одна любимая мною корейская онлайн гриндилка. И вот хочется разобраться с таким понятием как опкоды - как их выискивают из того потока байт, как парсят, и т.д. (никакой защиты нет, давно уже разобрали и написали оболчки - но те кто этим занимается, те еще твари и не хотят ничего объяснять (типа чтобы ботов и хакеров не разводить)
сам-то я такой сякой с++, вот думаю как в это вкатится чтобы прям не с нуля все изучать
>>1476485 d0 b8 0a -> 11010000 10111000 00001010: 10000111000 -> 0x0438 ('и') 0001010 -> 0x0a ('\n') Биты, выделенные жирным - префиксы leading и continuation-байтов в UTF-8, leading-байт говорит, сколько всего байтов в последовательности, а continuation говорит, что он не leading байт. Из остальных битов тупо собирается значение. Подробнее в вики.
>>1477280 > Почему так? Издержки кодирования инструкций. У тебя может быть только один ModR/M байт, но при этом существует два варианта использования эффективных адресов op [some_ea],reg и op reg,[some_ea]. Чтобы указать, к какому из операндов относится поле r/m в ModR/M, у многих опкодов есть operation direction bit (бит 1). Он определяет, писать ли первый операнд во второй или наоборот второй в первый.
Только с ассемблерной мнемоникой не путай, в мнемонике ассамблер всегда ожидает увидеть целевой операнд слева, а источник справа (во всяком случае, пока у тебя не gas c AT&T синтаксисом). А вот закодироваться это может одним из двух равнозначных вариантов.
Рабочий понедельник в хату, котаны. Вопрос по реверсу. Есть одна древняя (2010 года) гуй-программа, в числе прочего принимающая текст в текстовое поле и как-то (кажется через мьютекс, но хз) отсылающая его некоему сервису. Мне требуется отследить процесс формирования сообщения с этим текстом. Зачем? Потому что в процессе к нему дописывается какая-то двухбайтовая хрень - то ли какой-то самопальный хэш, то ли ещё что, и она уникальна для разных сообщений, причём очень сильно отличается даже для соседних, например "1110" и "1111" дают 0xF227 и 0x33E7 соответственно. Глобально - мне требуется сделать заглушку, способную посылать эти чёртовы сообщения, а этот типа-хэш не даёт. А надо, как обычно, на прошлой неделе. В асме и реверсе почти ничего не понимаю, если что, потому и принёс вопрос сюда.
>>1480047 Факт занимательный, но средств призвания телепатов из отпуска я не знаю. Выкладывать прогу в открытую на двач/файлопомойку не могу, набутылят.
>>1480330 Тебя не набутылят, потому что законодательство рф прямо разрешает такое использование реверса. А так давай чему равно сообщение от 0, 00, и так далее. Скорее всего там что-то примитивное.
>>1483471 Шапку читать не умеем? Читаешь бегинерс ре, далее прогаешь пару хеллоуворлдов на асме, решаешь пару крекми, теперь можно подтянуть архитектуру ОС, куришь мануалы, читаешь windows internals, а потом уже само все пойдет. За год справишься.
>>1483622 были какие то скрипты, для рипа с вебархива, но они наверно уже не оч актуальны. Но все не так радужно как хотелось бы. Да еще и от мусора почистить как то надо.
>>1483710 там надо будет править все ссылки (но это фигня), вырезать лишнее то что вставил вебархив, ну и отслеживать когда будут попадаться заглушки вместо страниц. Так же там есть ограничение на количество таких вот скачиваний. Помню натыкался как то раз. Если не лень - попробуй. В идеале все хтмлки конвертнуть бы в markdown и на тот же гитхаб залить. По примеру с нарвахой в шапке. (чтоб одним кликом можно было получить себе гитбук с нужными шрифтиками)
>>1484281 >Сложение? Я тебе так скажу, все что умеет делать процессор ( ну основное) это складывать.
Если ты вычитаешь\умножаешь (или что-то другое) - он складывает.
>Какие действие с двоичными данными у железа самое низкоуровневое? Самое время капать глубже, в ALU или же к полевому транзистору, или к катушке. Выбирай сам.
А вообще, я бы советовал свалить с плюсов. Это неблагородное занятие. Жс тоже говно. Подумай об этом.
>>1484838 Печатную машинку видел? Ты печатаешь, и каретка (такая хуйня с бумажным рулоном) сдвигается влево. Так вот 0x0d (\r, carriage return) двигает ее обратно так, чтобы машинка печатала с начала строки. Но этого мало, надо еще прокрутить бумагу на одну строку вниз, иначе ты будешь печатать поверх старой строки, это делает 0x0a (\n, line feed). Изначально это были именно команды для телетайпов, но прогресс шел, и в unix-подобных ОС \n (0x0a) делает оба этих действия одновременно. Но в DOS они работают так, как работали на печатных машинках, т.е., \r возвращает курсор в столбец 1 текущей строки, а \n переносит его на следующую строку.
>>1484886 какой копирайт? чей?тех кто переводил? ну так вроде им самим плевать раз статьи никуда не перезалиты. Так то перевод без согласия автора тоже нарушение авторских прав)) так что нарушение прав тех кто нарушил права).
>>1484886 и да. ладно бы оно было выложено где то у них на странице и с рекламой (ну предположим), а тут ничего, по сути кануло в летах. Если выложиь на гит, и не тереть копирайты - то нарушения по минимуму. В любом случае нарушаем делая рип :) Да и делалось оно чтоб люди обучались и "бла бла бла". Завести отдельный акк под статьи и материалы с васма не проблема же. Я за гитхаб и маркдавн потому что разметка крайне простая, без заморочек, через пандок одним движением перегоняется в любой удобный формат, в гитбук тоже оч удобно - подцепляешь репу с такими страницами и удобная онлайн версия с красивыми шрифтиками и цветами, причем логин можно через тот же гитхаб и не обязательно публичной делать, а только для своего пользования.
На самом деле главное рипнуть. а что с этим делать, всегда можно решить потом. или каждый сделает как ему нравится хД
Погуглил готовые решения, есть целый сервис, до 200 файлов бесплатно, на примере wasm если брать точку отсчет 20150822173159 то что то около 7баксов. Причем можно для рипа задать как точку отсчета, так и конечную дату и собрать самое актуальное за данный период.
>>1484988 тот кто ему отвечал прчием тут асм тред? это к любому относится) ну на самом деле он правильные вопросы задает. За публичную репу с даными нарушающими авторские права - сразу бан всего аккаунта. Без возможности забрать что то из своих реп и т.п. Совсем правильно было бы конечно просто попытаться спросить у тех кто лепил переводы, тем более контакнтые данные вполне себе имеются.
>>1484991 Авторские права на протухшую информацию из нулевых, вы серьезно? Да, прямо сейчас из пепла восстанет сам icezelion или чьи вы там статьи комуниздить собрались и начнет кидаться репортами.
>>1484996 это уже совсем другой разговор, я как бы того же мнения. На мой взгляд учитывая цели для которых делался перевод (предположим донести обучающие статьи для тех кто не дружит с другим языком), то "размножение" при сохранении всех копирайтов (того кто переводил, откуда взят) - только приветсвуется :) А так, у меня были приколы что люительский перевод / материал вдруг оказывался кем то присвоен и стал авторским. не у меня, вот тоже видел пример: https://youtu.be/L17nGGldGvA?t=482 Понятно дело всегда можно сказать "сам виноват", но факт что права утекли. Говно случается(с)
>>1485115 лол,кому там нахуй нужен пак по низкоуровневому говну типа инжекта дллок?я пока ждать буду пока там кто-то найдется на такое уже умру я спрашиваю мало ли тут у кого-то есть
>>1484880 Понял. А вот здесь это просто автору так захотелось наставить переходов на строку вниз или здесь есть какой-то сакральный смысл? Просто прямо сейчас у меня нет технической возможности проверить это.
>>1485012 Какой же пиздец. Темы блять для вижака, зафоловиться в твиттере, охуеть. Был тут один ютубер с ником на букву W, позиционировал себя как программист с 7 годами опыта, "индивидуальные" планы для вкатывальщиков делал через патреон. Так вот планы оказались копипастом с паблик инфой, а "уникальную" библотеку с книгами может собрать даже тот у кого интеллекта чуть больше чем у табурета. Вангую, здесь та же ситуация, ничего уникального нет. Тем более получишь больше опыта, собирая все сам. А платить за это будет только альтернативно одаренный.
>>1485444 А почему все с W бомбят? Вы думали он вас за 100 баксов на работу устроит в spacex или теслу? Не ахуели ли? Посмотрел слив его планов, вполне себе нормальный контент для ста баксов.
>>1485162 там на какое только дерьмо не скидываются иногда заради релиза.. но не суть. Недавно помнится хотел поданатить чуваку через патрона, зарегался, привязал карту, подписался на него. А мне патреон "да да, спасибо за всё" и нихуя не списал, везде написано что только в следующем месяце, доступ к контенту был. Попробуй на какую нибудь виртуальную карту проверь. вдруг осталось так.
>>1485795 Как бы достаточно старое и расрпостранненое слово, для мамкиных хацкеров, который только как обезъянки повтораяют по туториалам и не умеют в мат.часть.
>>1485459 Потому что он пиздабол, который обещал индивидуальные планы, а по факту все планы скопипащенные. И кроме планов по ЦС и гейдеву все планы говно, потому что во всем остальном он не шарит (точнее, если в гейдеве и ЦС у него нулевой уровень, то во всем остальном отрицательный).
>>1479796 Ответ на ооочень давний и тупой вопрос для очищения кармы. Это был немножко странный CRC-16, который не удалось с ходу нагуглить. В итоге он был извлечён с сайта https://crccalc.com/ моим, ёбаный стыд, непосредственным начальником. Мораль сей басни такова - не ленитесь гуглить и спите побольше.
>>1486745 Может. Какая ОС? Но вообще ты можешь где угодно просто зааллочить сколько нужно памяти и выставить соответственно RSP, R13 или что у тебя там.
Нужно написать прогу. Нужно отправлять фейковые данные по блютуз. Например есть у меня 2 сопряженных телефона, а я с компа отправляю другие данные так, будто они пришли с телефона. Как такое сделать? Не на асме, конечно. Плюсы и кути
>>1489077 Если дзен, то почти весь первый том, примерно половину третьего и пару глав из второго. Второй том по большей части - справочник, читать его как книжку не нужно. Главы про эмуляцию FPU/SIMD и весь тот огромный пласт легаси, которые оно с собой тащит, читать не нужно. Алсо, пикрелейтеду не хватает Optimization Manual. Алсо, советую до кучи скачать аналогичные талмуды от AMD и использовать как дополнительный справочник - иногда в них более вразумительное описание, чем у Intel. Алсо, чтобы писать на x86-ассемблере в юзермоде или реверсить код, лучше прочитать один из многочисленных учебников по ассемблеру, а не это.
>>1489382 нахуй тебе это реверс сдался?Сложная работа которая требует огромного багажа знаний,опыта,времени ради 100-150к работы вир аналитиком. Работа кроме вир аналитка есть,судя по хх,но там надо родиться гением с 5 значным айкью
>>1489114 В юзермоде я уже умею, хотелось бы пониже спуститься, а там... гипервизоры, поэтому 3 том должен от зубов отскакивать судя по всему. Я вот думаю, стоит ли мне студенту тратить на это время или забить пока что. Optimization Manual тоже скачал уже, спасибо.
>>1489410 Чушь пишешь. Освоить инструменты статического + динамического анализа, выучить x86 асм и можно уже идти джуном малварь ковырять. За полгода вкатиться можно, там уже на практике наберешься опыта. Программировать гораздо сложнее, нужно постоянно что-то оптимизировать, решать нетривиальные задачи и прочее, а здесь все что тебе нужно это расковырять бинарник с использованием набора всем известных тулз.
>>1489483 Вот что требуют в касперском на младшего малваре аналитика https://hh.ru/vacancy/33222261?query=kaspersky как писали в чате r0c,зп около 60к и однообразная работа в виде ковыряния говна на потоке и хуячить сигнатуры по форме. +С нуля за пол года ты вряд ли освоишь все это.год минимум,а в это время надо на что-то кушать А если ты такой умный что можешь освоить архитектуру винды,винапи,PEшек,Иду,дебагеры,си,асм и проч что они там просят за пол года и устроится в ЛК,то уж лучше идти в прогеры.Там и потолок повыше будет
>>1489483 Этого двачую. Прям мои мысли пишешь. У меня даже идея для стартапа такая. Набрать студентов ситиэфщиков, научить их ковырять малварь и аутсорсить эту услугу как недавно начал делать гиб.
>>1489501 В каком году 60к? И где? Во владивостоке вчерашним студентам может и платят по 60к, но точно не в москве.
>>1489514 >гиб не забудь купить майбах >В каком году 60к? И где? Писали что в москве,в,кажется,17-18 Речь про бегениров шла в разговоре,понятно что люди с опытом получают больше
>>1489514 > Набрать студентов ситиэфщиков Они же нихуя не умеют,не?Ну вот попадется им сэмпл с какими-то неординарными техниками или просто мощной защитой типа вмпрота и что они с ним делать будут?
>>1489521 >не забудь купить майбах Кстати проиграл с его аргументации. Он бы ещё гелик купил.
>Писали что в москве,в,кажется,17-18 >Речь про бегениров шла в разговоре,понятно что люди с опытом получают больше А ну тогда норм. Вчерашнему студенту этого хватит чтобы снять хату рядом с водным стадионом и питаться месяц (но только не в местной кафешке каспера) Они ведь обещают релокационый пакет даже новичкам в как раз подходящая зарплата чтобы переманить всех вчерашних студентов в москву (а потом ныть, что на дальнем востоке не хватает людей)
>>1489537 >Они же нихуя не умеют,не? Большинство умеют только сайтики ковырять и реверсом не занимаются. (по моим скромным наблюдениям) Но я думаю, что лет через пять у меня хватит сил найти хороших студентов сколотить команду реверсеров. Со сложным кейсом придут ко мне и я скажу пихать это в песочницы. Прогнать через кукушку посмотреть какие файлы создаёт, загуглить артефакты и найти необфусцированый образец или уже готовый отчёт по этой хуйне, прогнать через публичные сигнатуры в том числе и суриката/снорт чтобы понять что внутри. В этом и прелесть малварного аналитика, что реверс не 100% работы.
>>1489501 Лаб. К это тир1 контора мирового уровня, без каких либо преувеличений, могут себе позволить гнуть пластинку. Вон в ДС/ДС-2 вакансии в dr. web висели все лето, берут всех подряд без опыта, знание x86 архитектуры требуют.
Уже обсуждали в прошлых тредах, из ковыряльщика малвари можно вырасти куда угодно. Хочешь прогать? Можно в команду разработки антивирусного движка перекочевать. Надоела рутина, ковыряние? Можно в ресерч и ораторство перекатиться, итд. Вариантов масса. Из обычного формошлепа на QT ты никогда не сможешь стать востребованным системным программистом, а здесь пожалуйста.
>>1489483 это ты чушь пишешь. специфичные вещи еще и заоптимизированные компилятором, хрен распознаешь если не знаешь что копать. Если ты не начинал писать на сях плюсах и попутно нонстоп ковырять это дебагером и изучением - то нафиг надо. Как хобби реверс норм. а вкатываться тяжко, прогать проще.
>>1489740 Как раз наоборот, в общем случае для написания прог годится что угодно, но не C/C++ из-за низкой скорости и высокой сложности разработки. А C/C++ используют только там, где критически мало ресурсов, т.е. ембеддед, системное программирование, там где надо много считать, гейдев и т.д.
>>1489994 лол какие маняфантазии) уже давно на Си/Плюсы выносят критически важные по скорости места. А все остаьлное ипшется на чем то адекватном. на чем сложнее выстрелить себе в ногу, приятнее и удобнее писать. Взять тот же дотнет - можно сразу же скомпилироваться из CLR в нативный код, причем под конкретный процессор (см ngen). На шарпе можно впринципе писать очень эффективный код, настолько что выносить что то в либы написаные на плюсах надо в крайне редком случае. https://habr.com/ru/post/165729/
>>1489994 >практически весь качественный софт, которым ты пользуешься, написан на C/C++. Сайты, которыми я пользуюсь, написаны на js + какой-то бэкенд, и очень редко это плюсы. Приложения на айфоне, которым я пользуюсь, написаны на Objective C или Swift. Приложения на андройде написаны на жабе или чем-то еще, редко на плюсах. Что написано на плюсах? Рантаймы и компиляторы остальных языков, Оси, игрушки и легаси десктоп. Даже десктоп все меньше пишут на плюсах, дискорд и VS Code написаны на js и ничем не уступают аналогичным приложениям, написанным на плюсах. Практически весь? Очень сомнительно. Значительная часть? Да. Стоит ли писать что-либо на плюсах, если ты не системщик и твое приложение не должно запускать ракеты в космос? Нет. Единственный плюс крестов -- это скорость, в остальном одни минусы -- слабая типизация, утечки памяти, et cetera. >>1490009 >ВУЯ Чего блять? >На плюсах херачат все адекватные проекты. Адекватные чему именно?
>>1490117 С++ как раз самый пидорский язык. Он весь пронизан гомосексуальной эстетикой, примерно как передача вечер с Владимиром Соловьевым, где бумеры срутся, обсуждая в стопицотый раз Украину, а за кулисами дрочат хуй и суют пальцы в жопу друг другу. Так и плюсовики, это обычно бумеры за 30, которые сначала дрочат байты, а потом долбятся в зад на перекуре. И те, и другие занимаются максимально уебищным неинтересным хобби, чтобы не дай бог в их тусовочку попал натурал или что еще хуже женщина. Так геи находят друг друга и создают барьер, отделяющий их от мира грязных гетеросексуалов.
>>1490079 > Единственный плюс крестов -- это скорость, в остальном одни минусы -- слабая типизация, утечки памяти, et cetera. Система типов С++ уступает разве что хаскелю и расту, и то, как посмотреть.
>>1490372 Плюсовики собрались вместе и доказывают друг другу, что они кому то нужны. Само существование такого доклада на конференции по C++ скорее доказывает то, что незаменимость C++ -- это миф, чем обратное.
Подскажите пожалуйста. Изучаю ассемблер nasm. Делаю mov al, [source]; source объявлен в data как: source dw 30 Через gdb в SASM проверяю al - там лежит 30, в ah - 0. Как так получилось, ведь word - 2 байта, а al - 1 байт? При этом если mov al, word 30 ;выдаёт mismatch in operand sizes Книг пока не читал, решил проверить инфу с какого-то сайта, где есть раздел по асм.
>>1490406 Ну короче насм - это недоассемблер, поэтому позволяет тебе это скомпилировать. А процессору, который этот код исполняет, глубоко похую, как ты там свою source задекларировал (до него такая информация вообще не доходит), он видит инструкцию чтения в 8-битный регистр (1 байт) из памяти по какому-то адресу. Вот он и читает первый байт source. А так как числа хранятся в little endian (младший байт первый), то первым байтом оказывается этот самый 0x1e (30).
>>1490504 Получается, я просто заслал малое число в al, поэтому оно заняло 1 байт, а второй остался пустым и это не повлияло на результат? Сейчас заслал число больше 255, в al кусок числа - младший байт, а старший проебался? В ah видимо не ложится, там 0.
>>1490565 Так ah и al - регистры по байту. Хз, может второй байт в ah ушел, похерив там что-нибудь. Но я уже проверил, что ah это вообще не касается. Данные проебались. Спасибо за ответы на тупой вопрос.
>>1490581 Возьми отладчик и посмотри, что там куда записалось. Ахуеваю с таких реквестов в стиле: ВОТ ВАМ МОЙ ГОВНОКОД, ЧТО ТУТ ПОЛУЧИЛОСЬ, ПОЧЕМУ ОШИБКА, памагите.
>>1490079 >Сайты, которыми я пользуюсь, написаны на js + какой-то бэкенд И работают как говно, сжирая гигабайты ОП вникуда. >VS Code написаны на js и ничем не уступают аналогичным приложениям, написанным на плюсах По скорости и потреблению ресурсов вскод сосёт у саблайма.
>>1490684 >И работают как говно Работают намного лучше, чем байтоебские поделия крестовиков, которые работают только тогда, когда их пишут сеньоры с десятилетним опытом по несколько лет, вылавливая все утечки памяти и сегфолты. >сжирая гигабайты ОП вникуда. Мне ОП хватает, сколько гигов серверсайд жрет -- мне похуй, не мое дело.
>>1492720 а как проверить до ебли брухля там или аккуратная сладенькая писечка,а?А никак.А вот хуй почти всегда заебись А на счет тела у трапов тоже вполне себе
>>1492736 >Гамаз.png не,давай до этого не опускаться.я с таким же примером могу привести какую-то жирную фемку и выставлять это как аргумент против тянок >>1492736 >Как по мне они далеки он красивых женщин Ты видимо на дваче не так много.Заходи в трапотреды почаще,сладенький :3
>>1492730 >а как проверить до ебли брухля там или аккуратная сладенькая писечка Сиськи маленькие - писечка недоразвитая и маленькая >А на счет тела у трапов тоже вполне себе Высота и худоба заебись, но эти ужасные мужские жопы. Бррр. Я хуец могу простить еще, но жопы.
>>1492762 С пиздой ничего криминального не происходит. А если делать упражнения, тян может и хуй оторвать, и похуй, рожала или нет. Вот сиськи портятся. Но они вообще портятся он чрезмерного ношения лифчиков с жесткой косточкой.
>>1492764 Продавала,насколько я знаю.на счет выпила хз,но судя по инсте живет она збс но вообще надо сказать ей спасибо - архив вышел шикарный.Она на камеру прям хорошо умеет делать дело.И лолю умеет изображать,и ножки подчеркнуть умеет,и подрокать и погладить.прям классно выходит,я б даже платил если бы она выкладывала это на патреоне как делает бель делфин
>>1439555 (OP) >Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС Это делается на Си в большинстве случаев. Если делать это на ассемблере, то потом прошивку/ОС, драйвер невозможно будет перенести даже между процессорами одного семейства(не говоря уже о разных), так как набор инструкций разных процессоров отличается. Си в своё время и придумали, как "межплатформенный ассемблер".
>>1493351 > прошивку Всегда разрабатываю железку на одном микроконтроллере, а потом переношу на микроконтроллер их конкурентов. Люблю, понимаешь, онанизм мазохизм. И похуй, что 80% кода в МК - это ебля регистров или либы поверх них.
> между процессорами одного семейства > так как набор инструкций разных процессоров отличается Посоны, оказывается код для Pentium на Intel Core не зоработает. Что делать, как жить?
>>1495031 да не поверье, комипляторы разрослись до таких монстров не просто так, а именно чтоб лучше работать с кодом. компилятор чаще сделает лучше чем если бы ты пытался на асме юзать на полную все регистры и полностью возможности х32/64 ну а лютое говно ничто не победит конечно же :)
остаются всякие тяжелые числодробилки тут компилятор может и не справиться, там если грамотно развернуть математические вырожения, и как следует знать проц - можно всё чётенько разложиьт по регистрам и добиться оч нехуевого выйгрыша. Яркий пример дискретное косинусное преобразование, его реализуют с применением быстрого преобразования Фурье еще и разносят так чтоб хорошо ложились на суперскалярность.
настоящая оптимизация = хитрые (математические) алгоритмы, обычно лишь такое дает здоровский прирост, так чтоб в пару раз или больше.
>>1496613 Первый ковырять бинари в статике не запуская, пытаться сгенерить подобие С кода если говорить про ХексРеевский декомпилер. Второй, если нужно отладить софт в процессе его работы, так сказать на живую. inb4 покормил
сап реверсач. спрашиваю для повышения своего уровня образованности. Какие есть методы реверсинга самомодифицирующегося кода? Где про это прочитать можно?
>>1496928 Зачем сразу малварь? Вон пусть протекторы старые поковыряет. Начнет с аспра, потом до марадиллы дойдет, а там уж и фемида с вмпротом, как малварщики любят.
>>1496947 Практиковаться можно и нужно на протекторах, ты прав, но я не видел литературы по распаковке. В книгах про малварь обычно есть такой пункт. Также есть бесчисленное кол-во гайдов и статей на эту тему в гугле.
В нулевых годах было много бумажных книг по ассемблеру. Там авторы описывали регистры и команды вплоть до 586 в защищённом 32-х битном режиме. А вот теперь книг по асму вообще нету, и я хуй знает какие там новые регистры и команды появились, и сколько там теперь битовая длина регистра, и длина адреса - 32, 64 или сколько?
Мне просто интересно: существуют ли русскоязычные мануалы по современным процессорам, в которых описаны регистры, команды и как программировать многоядерность?
>>1497624 >10 томов на овер 10к+ страниц мелким шрифтом пиздец,кто это говно пишет.Это же надо угробить целую жизнь,при том не одного человека,а 10-20 чтобы такую срань написать
>>1497659 Документацию написать не сложнее, чем разработать архитектуру, потому что ее пишут параллельно разработке архитектуры. Да и без документации она нахуй не нужна, иначе не понятно, как писать компиляторы и оси.
Что почитать по ассеблеру если я макоеб? Скачал книжку Юрова и Аблязова, они заточены под винду, в одной masm, в другой 90% содержания упоминания винды.
Есть ли сайты по изучению ассемблера с какими-то заданиями и проверяющей системой. Очень доставил подход сайта overthewire, чтобы получить доступ к следующему уровню нужно выполнить предыдущий. Собственно ради него я и хочу поднять ассемблер т.к. многие уровни там требуют базовые и продвинутые навыки ревеса и понимания низкоуровневщины.
Ребзи, хочу научиться реверсить сетевые протоколы, крафтить свои пакеты, писать низкоуровневый сетевой софт и все в таком духе Не могу найти норм материалов по сабжу. Знаю Си, немного плюсов, асм х86 и основы сетей + программирование сокетов
В машинном коде к регистру ESP прибавляют 0xffffff80, это на 127 меньше чем 0xffffffff, но вопрос не только почему 127, почему по сути стек растет с конечных адресов. Это норма? Я думал он со середины куда-то растет(к уменьшению или к увеличению)
Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда.
Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.
Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.
Книги по 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-Engineering
https://www.reddit.com/r/ReverseEngineering/comments/hg0fx/a_modest_proposal_absolutely_no_babies_involved/
http://www.program-transformation.org/Transform/ReengineeringWiki
http://blog.livedoor.jp/blackwingcat/
https://yurichev.com/blog/
http://wiki.xentax.com/index.php/DGTEFF
https://exelab.ru/
Инструменты для RE:
Дизассемблеры:
1) IDA Pro 7.2.torrent
2) IDA Pro 7.0.torrent (x64 only, для XP нужно патчить PE + вылеты)
3) IDA Pro 6.8.torrent
4) IDA Pro 5.0 - бесплатная версия для некоммерческого использования
5) Radare 2 - наконец прикрутили гуй, но по прежнему нужна только клиническим, не умеющим в скачивания торрентов, или пользователям альтернативных ОС
6) Ghidra для любителей анальных зондов от АНБ не такие уж они и анальные
7) Остальное
Все книги и статьи Криса Касперски (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.htm
https://www.unknowncheats.me/wiki/Assembly
http://asmworld.ru/
https://software.intel.com/en-us/articles/intel-sdm
http://www.nasm.us/doc/
https://sourceware.org/binutils/docs/as/index.html#Top
https://msdn.microsoft.com/en-us/library/afzk3475.aspx
https://conspectuses.blogspot.com/2019/03/fasmg.html
disassembler.io Дизассемблер онлайн
Для ковыряющих винду и софт под неё, сайты с описанием структур со смещениями и разными версиями оных:
http://msdn.mirt.net/
http://terminus.rewolf.pl/terminus/
http://geoffchappell.com/
«Внутреннее устройство Windows» интересующего издания.
Документация Intel
https://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.html
http://www.phatcode.net/res/224/files/html/index.html
https://www.agner.org/optimize/
http://booksdescr.org/item/index.php?md5=5D0F6DBC1410E10BC489167AFE8192DF
https://www.cs.cmu.edu/~ralf/files.html
https://www.sandpile.org/
http://ref.x86asm.net/index.html
https://pnx.tf/files/x86_opcode_structure_and_instruction_overview.png
http://www.jegerlehner.ch/intel/
Предыдущие
№7 https://arhivach.ng/thread/437556/
№8 https://arhivach.ng/thread/455487/ или тонущий