В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (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/Предыдущие№7 https://arhivach.ng/thread/437556/№8 https://arhivach.ng/thread/455487/ или тонущий >>1406213 (OP)
>>1439555 (OP)Граждане, а киньте пожалуйста какой-нибудь ссылкой, или гневным абзацем чтобы мне стало ясно что спрашиваю очевидное:ASM-вставки и отдельные программы могут позволить обойти ряд ограничений безопасности со стороны компиляторов и даже целой ОС? Или оно без бубна всё равно в пользовательских режимах запускается?
>>1439944>>1439949> обойти ряд ограничений безопасности> из пользовательского режима не выберешьсяБыло в Windows 9x. Теперь действительно не выберешься.
>>1439944Преимущества Асма над Си начинаются и заканчиваются тем, что у Асма есть прямой доступ к регистрам. ВСЕ.
>>1440079>>1440262Смотря каких ограничений же. Понаблюдать за данными соседних приложений - это ты даже крестами сделаешь.
Чего накурились разработчики 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.
Какие книги читать для изучения ассемблера? Попытался начать с Reverse Engineering для начинающих, но чёт почти нихуя не понятно
>>1443637Наврено самое доступное и более менее актуальное:Аблязов Руслан Зуфярович - Программирование на ассемблере на платформе x86-64
>>1443637Нет нормальных книг по ассемблеру. Читай статьи/смотри курсы. Там учить-то нечего. Вникнуть в суть можно за недельку. А дальше вон в шапке курсы по OllyDbg и IDA, почти 200 уроков.
>>1443803>OllyDbg и IDAони по сути дублируют друг друга, только рассказыват в контексте разных инструментов.Сам asm учить как и любой другой язык программирования - не долго, а вот овладеить им, употреблять его - это уже другая. И да, соглашусь курсы норм подходят, дают наглядно посомтреть что можно и как можно, даже тот же Калашников
Аноны, есть эта книга у кого? Не могу нагуглить.https://www.amazon.com/Learning-Malware-Analysis-techniques-investigate/dp/1788392507/
>>1445526В каком смысле? https://exelab.ru/videokurs.phpВот можно почитать содержание курса и что идет с ним в комплекте. Стоит вроде недорого, книгу недавно с амазона заказывал, дороже вышло.
>>1445514подожди месяц и спизди ознакомся,а потом заплати если понравится>>1445644прогугли нейм блят,в гугле есть в первых 5 ссылках
>>1445203https://anonfile.com/hdw9z7vdb3/Learning-Malware-Analysis-Explore-the-concepts-tools-and-techniques-to-analyze-and-investigate-Windows-malware_pdf
Почему переименование .exe файла влияет на биндинги IAT при загрузке образа на исполнение? И файл становится нерабочим. Как так?
Аноны, поясните за анклавы. Что это и с чем их едят? Где используют?https://docs.microsoft.com/en-us/windows/win32/api/enclaveapi/
>>1448644Ну вот у него видимо совместимость какая-то была выставлена в свойствах у file.exe, поэтому для конкретного имени файла ASLR отключалась, и все работало.
>>1448644>адреса разныеIMAGE_FILE_RELOCS_STRIPPED = 0b (.reloc секция имеется) /FIXED:NOIMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE = 1b /DYNAMICBASE>Так еще и IAT кто-то восстановить забылЧто ты имеешь в виду? IAT загрузчиком биндится. Вернее биндинги почему-то зависят от имени .exe файла. Вплоть до того, что работоспособность .exe файла зависит от имени, указанному в /out. Мне кажется, это происходит при линковке в файл только с именем file_0.exe. ЧЯДНТ?>>1448710>совместимость какая-то была выставлена в свойствах у file.exeНет. Там всё чисто.
>>1439555 (OP)Как при помощи CreateFileMapping сделать инжект ДЛЛ-ки в процесс? Надо использовать MapViewOfFileEx и передать в нее lpBaseAddress памяти, выделенной в целевом процессе?
>>1448761Посмотрел более трезвым взгялдом и похоже что это проделки антивируса или проактивки.Опасные апишки типа CreateFile, CreateThread, VirtualAlloc и т.д. перехватываются кем-то, кто сидит ниже кернела в памяти.А проактивки они такие, даже на изменение имени работают.
>>1448842Ничего выделять не надо. Отображаешь секцию по хэндлу и тебе возвращают адрес, по которому система разместила ее в целевом процессе, далее вычисляешь или запрашиваешь точку входа и делаешь вызов.
>>1449151>Отображаешь секцию по хэндлу и тебе возвращают адрес, по которому система разместила ее в целевом процессеА какая функция отображает секцию в другой процесс?
ну чё скоро опубликуют вторую часть внутренностей винды последнего издания? все готовы? кто знает точную дату?
По какому принципу работают команды daa и das и почему в этом примере в AL 97, а не 98?http://ratprog.msevm.com/assembler/pr/09.htm
>>1450049На торрентах.>>1450226Лучше тебе это не изучать. Это фигня какая-то, про которую даже разработчики не знают, зачем они это добавили.
>>1450410> разработчики не знают, зачем они это добавилиРазработчики знают. Тогда целочисленные типы были маленькие, а деньги компьютерам тех времен считать приходилось постоянно. Поэтому многие языки умели в какой-нибудь встроенный decimal. И x86 асм не исключение.
>>1450659бла, я тебя изначально не так понял. ты про книгу. думал там сорцы какие слили. %) ну ты и ссыкло, на анонимной борде дать ссылку. ппц.
>>1450790> анонимная борда> мылачТут пару лет назад анон на бутылку сел, когда засрал раздел с просьбами о помощи в написании криптора. На архиваче валяется тред вроде как.
>>1451116> ну это совсем разное же. вон тот же fl завален ссылками на книги как на рутрекер так и на другие файлопомойки
>>1451680ну тебе кинули на специфичную вещь. а так вот по теме https://habr.com/ru/company/audiomania/blog/462845/https://habr.com/ru/post/463005/
Смотрели слайды с дефкона/блэкхэта? Оказывается макось еще дырявее винды. В связи с этим планирую перекатываться ресерчить на макось. С чего начать?
>>1452226"оказывается" лол. просто под вендой больлше людей и проще. Вот поэтому мак и линь как неулавимый джо.
>>1452231Линь на серваках, а едро вообще в анддройде, так что дырявой из распрос транённых осталась только большая макось.
>>1452466то что оно на серверах (венды все равно больше в корпоративе). А дыры есть. Просто пока на дестопе это считанные проценты - овчинка выделки не стоит. А андроиды - да там и дырявостей ненадо (ъотя и их предостаточно). Там пользователи сами себе злые буратины. дают разрешения на всё подряд, качают откуда попало.Вот свежий win, просто грамотнее надо. https://habr.com/ru/news/t/463319/
https://www.amazon.com/Windows-Kernel-Programming-Pavel-Yosifovich-ebook/dp/B07TJT1GTFСлили уже? Поделитесь пожалуйста. Или киньте ссылок, где можно электронную версию подешевле купить. С меня тонны нефти.
Ребят, есть прила, которая каким то образом генерирует переменную и отправляет ее на сервер. Что мне нужно, чтобы понять механизмы приложения и по какому алгоритму она генерит эту переменную? О реверсе знаю только то, что эта та сторона, в которую мне надо двигаться. В шапке много чего, но не хочу сам во всем этом капаться, подскажите что нибудь? Какие то конкретные главы из книг? Спасибо
>>1456604Если там не многогиговый энтырпрайз или обернутый в vmprotect говнокод, я бы поковырял, скинешь?
Кто-нибудь из местных задумывался слетать на контракт за бугор? Или может знакомые у кого-то летали? Находил на форумах посты рекрутёров, которые предлагали поработать в дубаях или шанхае пол годика и заработать на студию в питере. Сегодня решил поискать вакансии на сайтах. Перелопатил всё в штатах, лондоне и амстердаме. Сотни объяв на фултайм и пару десятков на контракт. Большинство в штатах и из них большинство требует возможность получит доступ к гостайне. Некоторые контракты для лоулевела спеца даже не связаны в реверсом малвари. Нашёл 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, spcs, ds, es, ssВ процессоре 8086. Но у меня нет процессора 8086. У меня есть процессор x86-64 (Intel Core i3-6100). Какие у него аналоги всех вышеперечисленных регистров?
>>1459519Я к тому, что там же новых регистров добавили в новых процессорах? Как в них научиться шарить, если их у Калашникова нет?
>>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а потом что, тебе тут за каждую команду будут пояснять? или ты неспособен ничего кроме как тупые вопросы задавать на которые ты ждешь ответы дольше чем взять прочитать и понять.
>>1439555 (OP)ОП, что то http://booksdescr.org колбасит уже сколько времени, работает только по айпишнику нормально.думаю ссылки вида http://booksdescr.org/item/index.php?md5=MD5можно заменить на https://b-ok.cc/md5/MD5 - это зеркало по крайней мере уже несколько лет живет и не в бане.
>>1459898Пиздец ты уебок, братишка.Вон у Калашникова из таблицы можно сделать вывод, что к младшим битам EAX можно обратиться через bx. За RAX у Калашникова ничего не написано, но опять же, по аналогии, можно сделать вывод, что к младшим битам RAX можно обратиться через EBX.Мне это тупо схавать и дальше читать? А потом говно напрограммировать?
Ладно, дропаю Калашникова. У него к младшим битам EAX можно обращаться через bx и 16+8=20.Погнал Юрова читать.
>>1459913>что к младшим битам EAX можно обратиться через bx.А, ты все же что то читаешь. тогда ладно.Ты просто спешишь :) Там о том как данные в регистрах располагаются, про обращение ничего не говорится. То какие данные из регистра достать/положить/выполнить операции - это уже дело команд, и от процессора к процессору это может очень разниться>можно сделать вывод, что к младшим битам RAX можно обратиться через EBX.не пытайся делать в эсемблере в принципе никаких проекций с тем что можно было и что можно. Когда анализируете новый без док - да, конечно пожалуйста, но все это сразу надо проверять практикой. А так, только после того как прочитал конкретно, или фактически проверил в коде>Мне это тупо схавать и дальше читать?нет конечно. взять и проверить.>16+8=20а в следующей строке видно что опечатка, и не 8 а 4 должно быть.
>>1459927имхо, самое доступное и более менее актуальное:Аблязов Руслан Зуфярович - Программирование на ассемблере на платформе x86-64
>>1459970уф, на возьми хоть в хорошем качестве (изначально вектор), 2е издание. https://b-ok.cc/md5/829ae04cc30db94e7df63986064f1a37
>>1458474Бессистемно изложенный материал. Нормальных, доступных объяснений практически нет. Там, где прямо таки просятся хоть какие-то объяснения, начинается новый подзаголовок. Книга начинается подробным объяснением того, что компьютер состоит из системного блока, монитора и пр. А через полдесятка страниц уже начинается озвучивание содержания мануала процессора Pentium и "что нового появилось в архитектуре NetBurst".Прочитавши половину книги убедился в том, что это абсолютно бездарно написанная книга. Систематичных знаний и понимания Ассемблера она не даст.
>>1459973У моего Юрова в начале книги за историю рассказывает. У твоего Юрова такого не нашел.>>1459978>>1459981То есть, Калашников - бессистемный. Юров - бесполезный. Аблязова нигде не скачать. Что ж читать тогда?
>>1459988>У моего Юрова в начале книги за историю рассказывает. У твоего Юрова такого не нашел.второе издание. первое в векторе не смотрел.аблязов же тут https://rutracker.org/forum/viewtopic.php?t=4681622
>>1459988если не умеешь в торенты то аблязов еще тут https://b-ok.cc/md5/4c4f504d7cc0d753906c04bfce52e9d3
>>1459988ОП опять с шапкой пролетел. Новисы не могут сориентироваться.В качестве учебника можешь посмотреть ещё Хайда или Kusswurm'а.Надеюсь Абеля никто советовать не будет. Пощёлкай шапку - может что-нибудь найдёшь подходящее тебе.
>>1460000>ОП опять с шапкой пролетел. Новисы не могут сориентироваться.надо как другие темы - на гитхаб и там причесывать совместно.
>>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,0xffffpop axилиmov ecx,35shl eax,clА потом еще ты открываешь System Programming Guide у того же интела и зависаешь еще на год. А потом Optimization Manual. И да, для реверсинга это тоже нужно, если ты конечно не собираешься всю жизнь> ковырять хеллоуворлды>>1460087Проиграл. Даже разбирать лень.
>>1460168тк в этом и суть, что нужно оно полутораземлекопам, а ударяться в те тонкости про которые ты говоришь, 95% никогда не понадобится.А если вспомнить энтерпрайз, там весь этот асм надо выжигать, так как осложняет поддержку.>Проиграл. Даже разбирать лень.Ну хз, по мне так все по делу и объективно. Очень большому числу программистов, асм в принципе сейчас не упал. Стабильнее, быстрее и дешевле писать на другом уровне абстракции. МощностЯ и накрученые компиляторы давно позволяют
>>1460324>А что не так?"Клонами" они были во времена еще 386, когда все микрокод у интела тырили. Сейчас это разные процессоры с совместимым набором инструкций. При этом он пишет про x86-64, который вообще-то AMD разработала, а интел "склонировал".
>>1460168Тонкости не нужны. Самое важное это владение инструментами и знание концепций.>Optimization ManualНа кой хер? Разве что первую можно прочитать, хотя и без нее можно спокойно работать.
>>1460050дело в том, что вклад пиратов - неоценим; так что пусть ребята реверсят, лишь бы во благо!мне тоже больше настольный ПК нравится, ибо там что-то существенное сделать можно, а не просто утюг с диодами...>>1460087>программисты на С или асме пишутнифига не мог сделать, годами, пока не влез в каждый бит и в каждый байт; как люди, не вникая, кодят - ума не приложу
>>1460381>мне тоже больше настольный ПК нравится, ибо там что-то существенное сделать можно, а не просто утюг с диодами.это пока ты не начал реверсить донглы, прошки для декапа / расширения функционала / вскрытия алгоритмов и т.п. во всем этом есть свои интересы.Время бы найти на все интересы только..>нифига не мог сделать, годами, пока не влез в каждый бит и в каждый байт; как люди, не вникая, кодят - ума не приложувсё от фантазии зависит, от того до чего ты абстрагировался , да и потребности. Одно дело дравера писать и что то системное, а другой энтерпрайз.Просто что то вспомнилось: есть хороший способ по прокачке скила, и изучении бОльших тонкостей языка - это написать эмулятор какой либо платформы на целевом языке. Написать просто чтоб завелось и работало - часто не так и сложно (чаще достаточно практически скопипастить мануал по процу), а вот добиться хорошей скорости - вот там начинаешь где то углубляться, где то другие подходы + чтоб можно было со всем этим делом упарываться не переписывая всё полностью - начинаешь задумываться об архитектуре.
>>1457813Ну нет же. Даже если одну и ту же зарплату платят и здесь и там, то там можно тупо сэкономить на налогах и пенсионных взносах при работе по контракту. И учитывая цену жизни в каком-нибудь нью-йорке, то накопить экономя там проще, чем тут. И я ненавижу вальнюрабилити ресёрч из-за фазинга. И вообще мне доставляет анализ малвари, есть опыт и хочу продолжать в последствии обмазавшись сертификатами. А учитывая, что там требования для сеньёра 3-5 лет опыта и платят по 500 долларов в день, то это гораздо выгоднее, чем тут. Только надо как-то пройти конкурс из десятков кандидатов на место
Программач, а шо делают инструкции без операндов, одноимённые сегментным регистрам? cs, ds, ss, es, fs, gs? Что они делают?
>>1460601> шо делают инструкции без операндов, одноимённые сегментным регистрамАссемблируются. И потом декодируются процессором просто как префикс для следующего за ним опкода. Если инструкция обращается к памяти, и сегмент для доступа можно переназначать - он переназначается на указанный (если сегментных префиксов несколько - используется последний), если не обращается - префкис либо не делает ничего, либо может быть какое-то другое поведение (по крайней мере, Intel нас этим пугает). Например, в P3 были хинты для переходов с использованием cs/ds перед jmp, например, а сейчас они опять noop.Например, вот эти три куска кода ассемблируются абсолютно идентично (fasm):mov eax,[cs:edx]иcs mov eax,[edx]иcsmov eax,[edx]Например, вот это работает (в 32-битном коде), сегментные префиксы игнорируются.cs ds es ss fs gs nop
>>1460539Если ты думаешь, что тебе будут платить 500 баксов в день за обычное ковыряние малвари, то ты очень ошибаешься. Это уровень стажера. Тебе в любом случае придется автоматизировать рабочий процесс, заниматься разработкой девтулов и ресерчить. Фазинг тот же, без него вообще никак, 21 век все таки.
>>1460708>ты очень ошибаешьсяНет. Малварного аналитика часто держат при крупных soc и csirt командах.
>>1461162Чтобы понимать, как работает процессор. Если не занимаешься реверсингом, то все равно в сложных случаях (многопоток или SIMD) сможешь ускорить работу отдельных участков своего кода вдвое, а то и впятеро.
>>1461255Куда асм встроить можно? Ну, то есть, в php он же явно не встраивается? На чем можно писать, чтобы можно было делать асмо-вставки?
>>1461775Ну вот и поставь, если конкретную книгу читаешь, чтобы потом не бегать и не говорить, что поставил jwasm, а теперь у тебя синтаксис не совпадает и ничего не работает.
>>1461775если умеешь читать, в том числе доки гуглить, то нет большой разницы какой ставить, я когда разбирадся в FASM'e писал с оглядкой на MASM TASM и прочие примеры
Аноны, с чего следует начинать реверс-инжиниринг оконных приложений в шиндовс? Когда я читаю код на каком-нибудь С, я начинаю сначала определять, что именно программа делает, искать момент в коде, где выполняется это событие, и составлять дерево функций. Но я не могу провести реверс одного достаточно тяжеловесного приложения на Windows 10, явно скомпиленного в MCVS, так как не понимаю, откуда именно мне следует идти. Определить системные вызовы, которые создают окно/файл, или соединяются с сетью, и искать функции, где они лежат? Алсо, я заметил, что MCVS компилит код вообще непонятно во что, явно не в то, что написал программист.
>>1461999Во вкладках Export/Import в IDA. Открываешь MSDN и смотришь что эти апи делают. Любой компилятор может превратить код в лапшу, если его настроить на такое поведение.
>>1462062А чем IDA Pro лучше radare2/cutter? Просто последний с легкостью нашел main() в программе, которую ковыряю.
>>1462062>>1462245И тот, и другой отобразили одни и те же exports и imports. Но cutter попросту удобнее и легче.
>>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По асму и архитектуре компьютера. Но быстро. Коротенькое чё-нить. По фасту. Ищё можно про ОС (виртуальная память, процессы, процедура запуска исполняемого файла и подгрузки библиотек) что-нибудь супер короткое читнуть, но не обязательно.
Нагуглил в шкафу учебник по ассемблеру. Там не только ассемблер в этой книге, еще поясняют за Кобол, Фортран и PL/1.
>>1463259>>1463300яч бы еще заглянул в оригинал. DjVu.Данная версия , это распознаная вычитаная одним человеком версия.Но опечатки где угодно могут быть. Не переживай. Люди не идеальны.
>>1463428>Но опечатки где угодно могут быть. Не переживай. Люди не идеальны.Так а как мне тогда доверять написанному?
>>1463443Ну ты же заметил ошибку. Если сомневаешься - всегда можно набросать три-четыре инструкции и затестить на реальной машине.
>>1463418>>1463423Не понял, белые люди уже в 1970 на компьютерах во всю программировали? Лол, в СНГ их же не было еще.
>>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к строк кода я уже заебался переписывать.Декомпиляторы это не жрут если что .
Хочу попытаться переводить игры. Меня больше интересует сама техническая сторона. Правильно ли начинать с re или нужно сначала что-то другое подучить?
>>1464108самый простой способ когда влоб заменяют одно на другое. потом учатся разбирать структуры чтоб править не заморачиваясь на длину оригинала. Иногда надо шрифты допиливать. Везде свои ньюансы. МОжешь покопаться на форуме "шедефр" пиратов что русифицировали консольные игры во времена пс1/2/дримкаст. Или на Zog посправшивать
>>1464111> Вмпротект не распаковывается автоматикой.Я знаю, проблема не распаковать.У меня по факту уже есть целый метод на асм , мне его надо просто воспроизвести на java , вообще щас прочитал там как то можно прокси функции написать, с стандартно из через native его вызвать.>>1463922> даже в иде сишный код не читаем?Неа, там полный бред. Легче самому по командам читать .
>>1464482написано что ты хуйня под дос запускаешь не под дос. запусти в досбоксе и будет тебе счастье.
>>1464485https://ru.wikipedia.org/wiki/DOSBoxа лучше не страдай херней, а займись сразу x32, и практичнее, и с запуском никаких проблем.
>>1464488тэк. я ошибся. Займись для начала компьютерной грамотностью. А потом уже просто для начала поучись программировать.
>>1464497потому что последние 2 вопроса были настолько показательные, что мне проще тебя нахуй послать чем пытаться что то объяснять
model SMALLstack 100hdatasegPRIVET db 0Dh,0Ah db "Privet!" db 0Dh,0Ah,"$"codesegstartupcodelea DX,PRIVET ; Адрес строки – в DX mov AH,09h ; Номер функции – в AH int 21h ; Вызов функцииQUIT: exitcode 0 endКак сделать так, чтобы вывод не исчезал через милиписечную долю секугды после появления при прохождении строки int 21h? По крайней мере, я замечаю, что в досбоксе что-то на мгновение промаргивает.
>>1464971Короче, уже никак, теперь вопрос другой. Как сделать так, чтобы введённое с клавиатуры число как-то стало BCD числом? Как прилепить первые четыре байта одного регистра на место четырёх байт последнего? Например, у меня есть 03 в DH и 02 в AL, а я хочу, чтобы в AL стало 32 в BCD коде, то есть чтобы правые четыре байта в AL стали 3, а левые четыре байта остались 2.
>>1464977> Как прилепить правые четыре байта одного регистра на место четырёх байт слева в другом регистре?
>>1464983Ты несёшь какую-то хуйню. Очевидно же, что числа могут быть любыми, а не только лишь 3 и 2. Я уже сам придумал способ, но тебе про него за твой пидорастический троллинг не скажу.
Анон, ответь мне на один вопрос: КАКОГО БЛЯТЬ ХУЯ?! Я всё делаю по методичке, но НЕ РАБОТАЕТ! Что не так с этими push и pop?
>>1465032ышо раз, ставь Notepade++, и сохраняй в кодировке которую будет понимать Dos, возможно компилятор и штырит от не той кодировки.
>>1463294У каждого индивидуальный подход к обучению. Лично я дропнул RE4B в самом начале и приступил к реверсу самой обычной виндовой софтины. В качестве бэкграунда есть понимание основных концепций ОС, архитектуры ЭВМ и компьютерных сетей, небольшой опыт чтения чужого кода на С из гитхаба (не любительской поделки, а используемого обширным сообществом раскрученного проекта), и, собственно, С, С++ и ассемблера.
>>1465250Это работает в простых случаях. В сложных ты либо идешь учиться дальше, либо сосешь дропаешь.>>1465098Опять вы тут устроили. >>1465014 push-pop в x86 принципиально в 8-битные операнды не умеет.
>>1465507Я вводу строку и пытаюсь выловить оттуда или /, но в зависимости от того, какая цифра следует за или / я получаю разные значения в одной позиции. Например, 12341234 и для получаю 312Ah, а при вводе 1234/9234 для / получаю 392F. Почему так происходит? Как вообще такое возможно?
Я вводу строку и пытаюсь выловить оттуда * или /, но в зависимости от того, какая цифра следует за звёздочкой или / я получаю разные значения в одной позиции. Например, ввожу 1234звёздочка1234 и для звёздочки получаю 312Ah, а при вводе 1234/9234 для / получаю 392Fh. Почему так происходит? Как вообще такое возможно?
>>1465655Просто я между знаком для чисел стек использую и не понимаю, как из-за этого перед кодом символа оказывается цифра, которая в вводе стоит ЗА этим символом.
Как расшифровываются сокращения W,R,X,B в обозначении младших битов rex и сам REX? Reference to extension?
>>1466406А как тогда сложить 2 BCD числа? И ещё, при отрабатывании daa из AL если по идее должно что-то перенестись в AH, то на деле вообще нихуя не переносится, единица тупо улетает в пизду. Как мне быть? Как же мне сложить два BCD числа из трёх цифр?
>>1466561Хотя нет, что-то переносится.НО!mov AX, 0000000010010000badd AL, ALdaaAX = 120, то есть 0000 0001 0010 0000Почему daa не отрабатывает? Был же перенос единицы в из AL AH
>>1466561> А как тогда сложить 2 BCD числа?Не использует никто давно уже эти твои BCD. По крайней мере упакованные.> Почему daa не отрабатывает?Потому что ты не умеешь его готовить.> Был же перенос единицы в из AL AH Где?Тебе add/daa CF выставили, дальше ебись как хочешь. Например, ты можешь ебаться так:xchg al,ahadc al,0daaxchg al,ah; AX = 4 packed BCD nibbles, CF = carry (если у тебя, например, не из 4 цифр числа, а из 20, ты положишь ax в память, загрузишь следующий кусок и продолжишь).
>>1466743Так C же от крестов не сильно отличается. Там только выделение памяти подучить и про классы забыть.
Сап, анон, есть ли утила через которую можно запускать ассемблеровский код на андроиде? (т.е. что-то вроде CPP N-IDE, только для ассемблера)
>>1463480Чё? Ващет были ЭВМ, и даже транзисторные.>>1466743Сап, уже проходил это. Пьюр си оказался очень простым языком для освоения, заебы только со сторонними либами, где void anus на void clear указывает.
>>1469729>какие сейчас есть живые езиныphrackОн конечно относительно живой, но к контенту обычно 0 вопросов, можно и подождать.
>>1469646Эмулятор QUEMI, в ней шиндовфс максимальной версии, что заработает. А уж там что душе угодно.
>>1439555 (OP)Правильно понимаю, что x86 почти ушла в прошлое, x64 уходит туда же, скоро будут новые процессоры и обмазываться x86_64 сейчас нет смысла?
>>1472530> x86 почти ушла в прошлоеСлышал это в конце 90х.> обмазываться x86_64Чтобы ознакомиться с любой архитектурой достаточно одной недели максимум. Чтобы написать хелловорлд - одного вечера. Так может стоит ознакомиться хотя бы для общего развития?
>>1472530Чтобы знать x86_64, нужно знать и x86. Смекаешь? 64 бит никуда не уходят, лет через 20 такой вопрос задавай.
Кто что знает насчёт видеодрайверов? Если речь идёт про базовый функционал, - неужели каждую видео-карту конфигурируют по-новому? Там умышленно изменения иделают, чтобы функционал обрезать, или они обусловлены технологическими причинами?
>>1439555 (OP)Сложно ли вкатиться к вам полному нубу, который целый месяц по 14 часов будет учить ассемблер и все, что с ним связано?
>>1473746>Сложно ли вкатиться к вам полному нубу, который целый месяц по 14 часов будет учить ассемблер и все, что с ним связано?Если ты хотел сказать что в день будешь 14 часов учить асм,то ты пиздабол который в жизни ничего учить не пробовал.если в месяц всего 14 часов,то точно нет
>>1473776Я и по двадцать часов в сутки в асм марафонил в сосничестве до недели. Лет до четырнадцати вообще организм одаривает бесплатной мотивацией, но да, это явно не его случай. И вопросов на форумах я не задавал таких. И интернета не было почти. Просто краем глаза что-то урвал из сети — и месяцами до дыр перечитываешь.мимопроходил
короч нашел занятную серию статеек от девушкитам туториал по асме на арме(на примере 32 битной распбери)ну и потом разные шелкоды на асме, стак оверфлоу, немножк по хипуhttps://azeria-labs.com/writing-arm-assembly-part-1/всем рекомендую)
>>1472580вообще не обязательноначинают с х86 потому как является классическим циск ассемблером, запускается и на 32 и на 64 и система интераптов малька полегче, чем в 64
Кто там говорил, что реверсерам и программистам математика не нужна? Решил кейгены покрякать и хуй там, ни один алгоритм не могу воспроизвести без декомпилятора.
>>1475523Не нужна. Зачем воспроизводить алгоритмы, если можно их рипнуть? Почему "без декомпилера" - это что-то хорошее? Ты еще без компа реверсить начни, таблички опкодов, бумажку с ручкой, и вперед, разбирать 50 метров 100 килограмм распечаток бинарника.
>>1475540>>1475570За месяц другой подтянуть можно это дело? Если да, то где. Школу прогуливал.>>1475626Как рипнуть, если не знаешь устройства? Пальцем в небо?
>>1475678> Как рипнуть, если не знаешь устройстваБерешь и копируешь байтики, оформляешь в функцию, функцию вызываешь, ссылки на данные правишь. Есть плагины для иды/оли/x64dbg.
Можете пояснить, у меня есть текстовый файл в котором 1 символ - строчная буква 'и', её юникод - 0438. В хексдампе я вижу:hexdump -C "Text File"00000000 d0 b8 0a |...|почему?
Тут такой вопросец - есть одна любимая мною корейская онлайн гриндилка. И вот хочется разобраться с таким понятием как опкоды - как их выискивают из того потока байт, как парсят, и т.д.(никакой защиты нет, давно уже разобрали и написали оболчки - но те кто этим занимается, те еще твари и не хотят ничего объяснять (типа чтобы ботов и хакеров не разводить)сам-то я такой сякой с++, вот думаю как в это вкатится чтобы прям не с нуля все изучать
>>1476485выясняешь кодировку utf 8 16 32смотришь как в этой кодировке выглядит твой символищешь в файле
>>1476586Берешь и смотришь. http://ref.x86asm.net/Если программно надо, то берешь любой дизасемблер и внимательно читаешь его документацию.
>>1476485d0 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 синтаксисом). А вот закодироваться это может одним из двух равнозначных вариантов.
>>1477280О, чувак с отуса. Можешь почитать ститьи Аквилы о заклинании кода и интелловских гномах.http://www.allasm.ru/proc_15.php
Рабочий понедельник в хату, котаны. Вопрос по реверсу. Есть одна древняя (2010 года) гуй-программа, в числе прочего принимающая текст в текстовое поле и как-то (кажется через мьютекс, но хз) отсылающая его некоему сервису. Мне требуется отследить процесс формирования сообщения с этим текстом. Зачем? Потому что в процессе к нему дописывается какая-то двухбайтовая хрень - то ли какой-то самопальный хэш, то ли ещё что, и она уникальна для разных сообщений, причём очень сильно отличается даже для соседних, например "1110" и "1111" дают 0xF227 и 0x33E7 соответственно. Глобально - мне требуется сделать заглушку, способную посылать эти чёртовы сообщения, а этот типа-хэш не даёт. А надо, как обычно, на прошлой неделе. В асме и реверсе почти ничего не понимаю, если что, потому и принёс вопрос сюда.
>>1479796Телепаты в отпуске, но вот тебе занимательный факт>"1110" и "1111" дают 0xF227 и 0x33E7 соответственно0x1110 xor 0xF227 = 0xE337
>>1480047Факт занимательный, но средств призвания телепатов из отпуска я не знаю. Выкладывать прогу в открытую на двач/файлопомойку не могу, набутылят.
>>1480330Тебя не набутылят, потому что законодательство рф прямо разрешает такое использование реверса.А так давай чему равно сообщение от 0, 00, и так далее. Скорее всего там что-то примитивное.
>>1480483Разве? про францию помню что реверсить можно. в сша делать копию и модить для себя можно. а про рф не помню. можно ссылку?
https://vxlab.info/wasm/publist.php-list=1.htmIczelion Это кто?И где первоисточники его работ можно найти? Где первый сайт, блог, архив итд, что там было 20 лет назад?
>>1483396http://web.archive.org/web/20020202031941/http://spiff.tripnet.se:80/~iczelion/http://web.archive.org/web/20180630155403/http://win32assembly.programminghorizon.com/index.htmlтам еще есть кто откуда и ссылки http://www.cyberforum.ru/post3943786.html
>>1483471Шапку читать не умеем? Читаешь бегинерс ре, далее прогаешь пару хеллоуворлдов на асме, решаешь пару крекми, теперь можно подтянуть архитектуру ОС, куришь мануалы, читаешь windows internals, а потом уже само все пойдет. За год справишься.
>>1439555 (OP)https://web.archive.org/web/20150822173159/http://www.wasm.ru:80/wault/Я не знаю, может это для кого-то даже на все золота, просто там все статьи на некоторую дату, а на твоих зеркалах не все точно.Я думаю, надо сделать зеркало сайта полное с Архивача, причём из снимков разных дат.Может, уже и готовое ПО есть.
>>1483622были какие то скрипты, для рипа с вебархива, но они наверно уже не оч актуальны. Но все не так радужно как хотелось бы. Да еще и от мусора почистить как то надо.
>>1483635Пипец, а какой мусор то? Там даже рекламы, нет наверно.Прост пишешь в скрипт, чтобы инфа дополнялась, будет добавляться то, чего ещё нет в базе.
>>1483710там надо будет править все ссылки (но это фигня), вырезать лишнее то что вставил вебархив, ну и отслеживать когда будут попадаться заглушки вместо страниц. Так же там есть ограничение на количество таких вот скачиваний. Помню натыкался как то раз. Если не лень - попробуй. В идеале все хтмлки конвертнуть бы в markdown и на тот же гитхаб залить. По примеру с нарвахой в шапке. (чтоб одним кликом можно было получить себе гитбук с нужными шрифтиками)
>>1484281>Сложение?Я тебе так скажу, все что умеет делать процессор ( ну основное) это складывать.Если ты вычитаешь\умножаешь (или что-то другое) - он складывает.>Какие действие с двоичными данными у железа самое низкоуровневое?Самое время капать глубже, в ALU или же к полевому транзистору, или к катушке. Выбирай сам.А вообще, я бы советовал свалить с плюсов. Это неблагородное занятие. Жс тоже говно. Подумай об этом.ушел.
>>1484504Ах, это не плюсы, а показалось что плюсы. Ну все равно, с асм тоже свалить. Это еще хуже плюсов.
Для чего нужны эти 0Dh, 0Ah? Почему они с обоих сторон строки? Почему не 0Ah, 0Dh? Я читал методичку, но всё равно нихуя не понял.
>>1484838Печатную машинку видел? Ты печатаешь, и каретка (такая хуйня с бумажным рулоном) сдвигается влево. Так вот 0x0d (\r, carriage return) двигает ее обратно так, чтобы машинка печатала с начала строки. Но этого мало, надо еще прокрутить бумагу на одну строку вниз, иначе ты будешь печатать поверх старой строки, это делает 0x0a (\n, line feed). Изначально это были именно команды для телетайпов, но прогресс шел, и в unix-подобных ОС \n (0x0a) делает оба этих действия одновременно. Но в DOS они работают так, как работали на печатных машинках, т.е., \r возвращает курсор в столбец 1 текущей строки, а \n переносит его на следующую строку.
>>1484880> Почему они с обоих сторон строки? Спереди, чтобы сделать пустую строку. На остальные вопросы сам ответишь, если подумаешь.
>>1484886какой копирайт? чей?тех кто переводил? ну так вроде им самим плевать раз статьи никуда не перезалиты. Так то перевод без согласия автора тоже нарушение авторских прав)) так что нарушение прав тех кто нарушил права).
>>1484886и да. ладно бы оно было выложено где то у них на странице и с рекламой (ну предположим), а тут ничего, по сути кануло в летах. Если выложиь на гит, и не тереть копирайты - то нарушения по минимуму. В любом случае нарушаем делая рип :)Да и делалось оно чтоб люди обучались и "бла бла бла". Завести отдельный акк под статьи и материалы с васма не проблема же.Я за гитхаб и маркдавн потому что разметка крайне простая, без заморочек, через пандок одним движением перегоняется в любой удобный формат, в гитбук тоже оч удобно - подцепляешь репу с такими страницами и удобная онлайн версия с красивыми шрифтиками и цветами, причем логин можно через тот же гитхаб и не обязательно публичной делать, а только для своего пользования.На самом деле главное рипнуть. а что с этим делать, всегда можно решить потом. или каждый сделает как ему нравится хДПогуглил готовые решения, есть целый сервис, до 200 файлов бесплатно, на примере wasm если брать точку отсчет 20150822173159 то что то около 7баксов. Причем можно для рипа задать как точку отсчета, так и конечную дату и собрать самое актуальное за данный период.
>>1484988тот кто ему отвечалпрчием тут асм тред? это к любому относится)ну на самом деле он правильные вопросы задает. За публичную репу с даными нарушающими авторские права - сразу бан всего аккаунта. Без возможности забрать что то из своих реп и т.п.Совсем правильно было бы конечно просто попытаться спросить у тех кто лепил переводы, тем более контакнтые данные вполне себе имеются.
>>1484991Авторские права на протухшую информацию из нулевых, вы серьезно? Да, прямо сейчас из пепла восстанет сам icezelion или чьи вы там статьи комуниздить собрались и начнет кидаться репортами.
>>1484996это уже совсем другой разговор, я как бы того же мнения. На мой взгляд учитывая цели для которых делался перевод (предположим донести обучающие статьи для тех кто не дружит с другим языком), то "размножение" при сохранении всех копирайтов (того кто переводил, откуда взят) - только приветсвуется :)А так, у меня были приколы что люительский перевод / материал вдруг оказывался кем то присвоен и стал авторским.не у меня, вот тоже видел пример: https://youtu.be/L17nGGldGvA?t=482Понятно дело всегда можно сказать "сам виноват", но факт что права утекли. Говно случается(с)
>>148501710 за самую полную версиюя б может оплатил,но там либо пейпал,либо карта,а у меня все в битках,а менять такие суммы ну не очень идея
>>1485027ну вот и ищу чтобы не покупать.отписал в все низкоуровневые треды потому что почему бы и нет.
>>1485115лол,кому там нахуй нужен пак по низкоуровневому говну типа инжекта дллок?я пока ждать буду пока там кто-то найдется на такое уже умруя спрашиваю мало ли тут у кого-то есть
>>1484880Понял. А вот здесь это просто автору так захотелось наставить переходов на строку вниз или здесь есть какой-то сакральный смысл? Просто прямо сейчас у меня нет технической возможности проверить это.
>>1485012Какой же пиздец. Темы блять для вижака, зафоловиться в твиттере, охуеть.Был тут один ютубер с ником на букву W, позиционировал себя как программист с 7 годами опыта, "индивидуальные" планы для вкатывальщиков делал через патреон. Так вот планы оказались копипастом с паблик инфой, а "уникальную" библотеку с книгами может собрать даже тот у кого интеллекта чуть больше чем у табурета. Вангую, здесь та же ситуация, ничего уникального нет. Тем более получишь больше опыта, собирая все сам.А платить за это будет только альтернативно одаренный.
>>1485444А почему все с W бомбят? Вы думали он вас за 100 баксов на работу устроит в spacex или теслу? Не ахуели ли? Посмотрел слив его планов, вполне себе нормальный контент для ста баксов.
>>1485444это просто как суппорт скореес w другая история,можешь контент сравнитьи ZM он обучающий и код есть
>>1485162там на какое только дерьмо не скидываются иногда заради релиза..но не суть. Недавно помнится хотел поданатить чуваку через патрона, зарегался, привязал карту, подписался на него. А мне патреон "да да, спасибо за всё" и нихуя не списал, везде написано что только в следующем месяце, доступ к контенту был. Попробуй на какую нибудь виртуальную карту проверь. вдруг осталось так.
>>1485697Извини конечно, но ты какой-то тупой. Иди еще в б тред создай, а что? А вдруг? Не знаю чего ты там ищешь, но я посмотрел канал этого скрипткидди, весь код гуглится за 1 минуту.
>>1485795Как бы достаточно старое и расрпостранненое слово, для мамкиных хацкеров, который только как обезъянки повтораяют по туториалам и не умеют в мат.часть.
>>1485459Потому что он пиздабол, который обещал индивидуальные планы, а по факту все планы скопипащенные. И кроме планов по ЦС и гейдеву все планы говно, потому что во всем остальном он не шарит (точнее, если в гейдеве и ЦС у него нулевой уровень, то во всем остальном отрицательный).
>>1479796Ответ на ооочень давний и тупой вопрос для очищения кармы. Это был немножко странный CRC-16, который не удалось с ходу нагуглить. В итоге он был извлечён с сайта https://crccalc.com/ моим, ёбаный стыд, непосредственным начальником. Мораль сей басни такова - не ленитесь гуглить и спите побольше.
>>1486745Может. Какая ОС? Но вообще ты можешь где угодно просто зааллочить сколько нужно памяти и выставить соответственно RSP, R13 или что у тебя там.
Нужно написать прогу. Нужно отправлять фейковые данные по блютуз. Например есть у меня 2 сопряженных телефона, а я с компа отправляю другие данные так, будто они пришли с телефона. Как такое сделать? Не на асме, конечно. Плюсы и кути
Последний релиз. Быстрый, легковесный, кроссплатформенный дизассемблер без зависимостей.https://github.com/zyantific/zydis/releases/tag/v3.0.0
Привет, програмач, есть вопрос по ассемблеру (FASM)Как можно записать в 32 битный регистр 1 байт из памяти?Пытаюсь вот так:mov edi, byte ptr edxНо fasm меня посылает куда подальше
Говорят, если не прочитать пикрил, то никогда не познаешь дзен. Что реально полностью читать придется?
>>1489077Если дзен, то почти весь первый том, примерно половину третьего и пару глав из второго. Второй том по большей части - справочник, читать его как книжку не нужно. Главы про эмуляцию FPU/SIMD и весь тот огромный пласт легаси, которые оно с собой тащит, читать не нужно. Алсо, пикрелейтеду не хватает Optimization Manual. Алсо, советую до кучи скачать аналогичные талмуды от AMD и использовать как дополнительный справочник - иногда в них более вразумительное описание, чем у Intel. Алсо, чтобы писать на x86-ассемблере в юзермоде или реверсить код, лучше прочитать один из многочисленных учебников по ассемблеру, а не это.
>>1489382нахуй тебе это реверс сдался?Сложная работа которая требует огромного багажа знаний,опыта,времени ради 100-150к работы вир аналитиком.Работа кроме вир аналитка есть,судя по хх,но там надо родиться гением с 5 значным айкью
>>1489410Ну вот я так же думаю, просто это и интересо, а времени дохуя надо, наверн надо в прогеры вкатится, ток еще язык подискать
>>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 ты никогда не сможешь стать востребованным системным программистом, а здесь пожалуйста.
>>1489537> просто мощной защитой типа вмпротаТам нет ничего мощного кроме громоздкой вм, которая никак не препятствует анализу поведения сэмпла.
>>1489604Там не только вм. Слышал, что там антидебаг и самомодификация кода есть. С вмпротектом реально сложно работать.
>>1489483это ты чушь пишешь. специфичные вещи еще и заоптимизированные компилятором, хрен распознаешь если не знаешь что копать. Если ты не начинал писать на сях плюсах и попутно нонстоп ковырять это дебагером и изучением - то нафиг надо. Как хобби реверс норм. а вкатываться тяжко, прогать проще.
Похоже, АСМ сегодня нужен только для взлома программ и это его главная задача.С - говно без ООП, короче, учить только плюсы и остаётся, а остальные языки заметно тормозней и для написания прог не годятся в общем случае.
>>1489607Антидебаг это защита от школоты, удаленному отладчику нельзя помешать. Вмпрот не может скрыть/изменить поведение вредоносного кода.
>>1489740Как раз наоборот, в общем случае для написания прог годится что угодно, но не C/C++ из-за низкой скорости и высокой сложности разработки. А C/C++ используют только там, где критически мало ресурсов, т.е. ембеддед, системное программирование, там где надо много считать, гейдев и т.д.
>>1489939Тем не менее, практически весь качественный софт, которым ты пользуешься, написан на C/C++. Причем обычно на обоих, если считать либы.
>>1489939ВУЯ - это говно годится только для сраных скриптиков, где не важна скорость работы особо, да вебдевелопинг, но это уже вынужденно.Ах, да ещё есть Опесоска, но там весь код почти и тем более ВУ - говно чистое.На плюсах херачат все адекватные проекты.
>>1489994лол какие маняфантазии) уже давно на Си/Плюсы выносят критически важные по скорости места. А все остаьлное ипшется на чем то адекватном. на чем сложнее выстрелить себе в ногу, приятнее и удобнее писать.Взять тот же дотнет - можно сразу же скомпилироваться из CLR в нативный код, причем под конкретный процессор (см ngen).На шарпе можно впринципе писать очень эффективный код, настолько что выносить что то в либы написаные на плюсах надо в крайне редком случае. https://habr.com/ru/post/165729/
>>1489994>практически весь качественный софт, которым ты пользуешься, написан на C/C++.Сайты, которыми я пользуюсь, написаны на js + какой-то бэкенд, и очень редко это плюсы.Приложения на айфоне, которым я пользуюсь, написаны на Objective C или Swift.Приложения на андройде написаны на жабе или чем-то еще, редко на плюсах.Что написано на плюсах? Рантаймы и компиляторы остальных языков, Оси, игрушки и легаси десктоп. Даже десктоп все меньше пишут на плюсах, дискорд и VS Code написаны на js и ничем не уступают аналогичным приложениям, написанным на плюсах.Практически весь? Очень сомнительно. Значительная часть? Да. Стоит ли писать что-либо на плюсах, если ты не системщик и твое приложение не должно запускать ракеты в космос? Нет. Единственный плюс крестов -- это скорость, в остальном одни минусы -- слабая типизация, утечки памяти, et cetera.>>1490009>ВУЯЧего блять?>На плюсах херачат все адекватные проекты.Адекватные чему именно?
>>1490079>дискорд и VS Code написаны на js и ничем не уступают аналогичным приложениям, написанным на плюсах.https://www.youtube.com/watch?v=Q5glfpSXUeE
>>1490079>Приложения на айфоне, которым я пользуюсьЭто было достаточно.Всю остальную пидарастическую хуету можно было не писать
>>1490117С++ как раз самый пидорский язык.Он весь пронизан гомосексуальной эстетикой, примерно как передача вечер с Владимиром Соловьевым, где бумеры срутся, обсуждая в стопицотый раз Украину, а за кулисами дрочат хуй и суют пальцы в жопу друг другу. Так и плюсовики, это обычно бумеры за 30, которые сначала дрочат байты, а потом долбятся в зад на перекуре. И те, и другие занимаются максимально уебищным неинтересным хобби, чтобы не дай бог в их тусовочку попал натурал или что еще хуже женщина. Так геи находят друг друга и создают барьер, отделяющий их от мира грязных гетеросексуалов.
>>1490079> Единственный плюс крестов -- это скорость, в остальном одни минусы -- слабая типизация, утечки памяти, et cetera.Система типов С++ уступает разве что хаскелю и расту, и то, как посмотреть.
>>1490073Мань, это ты просто неосилятор. На С++ сейчас пишут абсолютно ВСЕ.https://youtu.be/LZflL44SVVY
>>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>И работают как говноРаботают намного лучше, чем байтоебские поделия крестовиков, которые работают только тогда, когда их пишут сеньоры с десятилетним опытом по несколько лет, вылавливая все утечки памяти и сегфолты.>сжирая гигабайты ОП вникуда.Мне ОП хватает, сколько гигов серверсайд жрет -- мне похуй, не мое дело.
>>1490827>вылавливая все утечки памяти и сегфолты.Такая толстота, пиздец... Ещё и в асм треде... Ахуеть
Похоже, что все АСМ-кодеры считают, что лучший ЯП - это С, а лучший ЯП с ООП - это С++.А почему АСМ-кодеры? Да потому что АСМ-программистов давно в природе не существует...
>>1492365Кодер - хуёвый программист. Программист - хуйвый разработчик. Разработчик - хуёвый проект менеджер. Проект менеджер - хуёвый директор.Как-то так...
Python - это хуёвый Ruby, Ruby - это хуёвый С#, С# - это хуёвая Java, Java - это хуёвый C++, С++ - это хуёвый С, С - это хуёвый АСМ.
>>1492632Знаю людей которые уже собрали деньги и будут покупать у него 3 части.Могу скинуть, если хочешь - можешь оставить телегу.
>>1439555 (OP)>Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОСЭто делается на Си в большинстве случаев.Если делать это на ассемблере, то потом прошивку/ОС, драйвер невозможно будет перенести даже между процессорами одного семейства(не говоря уже о разных), так как набор инструкций разных процессоров отличается.Си в своё время и придумали, как "межплатформенный ассемблер".
>>1493351> прошивкуВсегда разрабатываю железку на одном микроконтроллере, а потом переношу на микроконтроллер их конкурентов. Люблю, понимаешь, онанизм мазохизм. И похуй, что 80% кода в МК - это ебля регистров или либы поверх них.> между процессорами одного семейства> так как набор инструкций разных процессоров отличаетсяПосоны, оказывается код для Pentium на Intel Core не зоработает. Что делать, как жить?
>>1492211писать под современные процы на асме - это лютый бред. асм нужен уже когда отлаживаешь и т.п. компилятор в 99% оптимизирует лучше
>>1494187компилятор лучше оптимизирует? ну это потому что такой ты кодер хуёвый.>>1494290чем высер компилятора плох?жирнота
>>1494187>компилятор в 99% оптимизирует лучшеКстати, откуда пошло это поверье? Что тут конкретно имеется в виду? Как доказывается?
>>1495031да не поверье, комипляторы разрослись до таких монстров не просто так, а именно чтоб лучше работать с кодом.компилятор чаще сделает лучше чем если бы ты пытался на асме юзать на полную все регистры и полностью возможности х32/64ну а лютое говно ничто не победит конечно же :)остаются всякие тяжелые числодробилки тут компилятор может и не справиться, там если грамотно развернуть математические вырожения, и как следует знать проц - можно всё чётенько разложиьт по регистрам и добиться оч нехуевого выйгрыша. Яркий пример дискретное косинусное преобразование, его реализуют с применением быстрого преобразования Фурье еще и разносят так чтоб хорошо ложились на суперскалярность.настоящая оптимизация = хитрые (математические) алгоритмы, обычно лишь такое дает здоровский прирост, так чтоб в пару раз или больше.
>>1495068Дополню тебя тем, что математику можно завернуть в функцию и вызывать из того же сишного кода, целиком проекты на асме почти никто не пишет.
Там ида 7.4 релизнулась:https://www.hex-rays.com/products/ida/7.4/index.shtmlHexRays:https://www.hex-rays.com/products/decompiler/v74_vs_v73.shtmlГоднота, ящитаю. Осталось дождаться слива.
>>1496539>Или почему ещё нет свободных альтернатив?Есть.>>1496581>что лучше IDA или x64dbgЧто тяжелее, кило гвоздей или кило ваты?
>>1496613Первый ковырять бинари в статике не запуская, пытаться сгенерить подобие С кода если говорить про ХексРеевский декомпилер. Второй, если нужно отладить софт в процессе его работы, так сказать на живую.inb4 покормил
>>1496527Может в треде присутствуют счастливые обладатели новой версии декомпилера. Проверьте, С++ классы теперь автоматически собираются?https://www.youtube.com/watch?v=o-FFGIloxvE
сап реверсач. спрашиваю для повышения своего уровня образованности. Какие есть методы реверсинга самомодифицирующегося кода? Где про это прочитать можно?
>>1496833Отладчик. Снимаешь трассу и анализируешь. Ставишь бряки на нужные апи и анализируешь. Читать любую книгу по анализу малвари.
>>1496928Зачем сразу малварь? Вон пусть протекторы старые поковыряет.Начнет с аспра, потом до марадиллы дойдет, а там уж и фемида с вмпротом, как малварщики любят.
>>1496947Практиковаться можно и нужно на протекторах, ты прав, но я не видел литературы по распаковке. В книгах про малварь обычно есть такой пункт. Также есть бесчисленное кол-во гайдов и статей на эту тему в гугле.
А есть книжечки по nasm для х64 под unix?Или в любом случае для начала на vbox придется что-то ставить?
В нулевых годах было много бумажных книг по ассемблеру. Там авторы описывали регистры и команды вплоть до 586 в защищённом 32-х битном режиме. А вот теперь книг по асму вообще нету, и я хуй знает какие там новые регистры и команды появились, и сколько там теперь битовая длина регистра, и длина адреса - 32, 64 или сколько?Мне просто интересно: существуют ли русскоязычные мануалы по современным процессорам, в которых описаны регистры, команды и как программировать многоядерность?
>>1497485В мануалах интела все есть. 10 томов на овер 10к+ страниц мелким шрифтом. А амуды тоже что-то свое есть.
>>1497624>10 томов на овер 10к+ страниц мелким шрифтомпиздец,кто это говно пишет.Это же надо угробить целую жизнь,при том не одного человека,а 10-20 чтобы такую срань написать
>>1497659Так можно и про стройку сказать. Это же надо угробить целую жизнь, при том не одного человека, а ДОХУЯ людей чтобы такую срань построить.>>1497649https://software.intel.com/en-us/articles/intel-sdm
>>1497659Документацию написать не сложнее, чем разработать архитектуру, потому что ее пишут параллельно разработке архитектуры. Да и без документации она нахуй не нужна, иначе не понятно, как писать компиляторы и оси.
Что почитать по ассеблеру если я макоеб? Скачал книжку Юрова и Аблязова, они заточены под винду, в одной masm, в другой 90% содержания упоминания винды. Есть ли сайты по изучению ассемблера с какими-то заданиями и проверяющей системой. Очень доставил подход сайта overthewire, чтобы получить доступ к следующему уровню нужно выполнить предыдущий. Собственно ради него я и хочу поднять ассемблер т.к. многие уровни там требуют базовые и продвинутые навыки ревеса и понимания низкоуровневщины.Сам имею нулевой-начальный уровень, х
>>1498255Но для меня это макось и айось. Собственно так же и ради изучения их внутреннего устройства я полез в низкоуровщину.
Ребзи, хочу научиться реверсить сетевые протоколы, крафтить свои пакеты, писать низкоуровневый сетевой софт и все в таком духеНе могу найти норм материалов по сабжу. Знаю Си, немного плюсов, асм х86 и основы сетей + программирование сокетов
Может кто объяснить почему при создании буфера char[128] https://pastebin.com/e7ZzDKGkВ машинном коде к регистру ESP прибавляют 0xffffff80, это на 127 меньше чем 0xffffffff, но вопрос не только почему 127, почему по сути стек растет с конечных адресов. Это норма? Я думал он со середины куда-то растет(к уменьшению или к увеличению)https://pastebin.com/69BBJeLa
ПЕРЕКАТ https://2ch.hk/pr/res/1499956.htmlhttps://2ch.hk/pr/res/1499956.htmlhttps://2ch.hk/pr/res/1499956.htmlhttps://2ch.hk/pr/res/1499956.html