В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (RE).Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда.Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.Книги по RE:beginners.re - "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна!Чтобы не палить свой адрес почты, вот прямая ссылка https://beginners.re/f572d396fae9206628714fb2ce00f72e94f2258f/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:Дизассемблеры:0) IDA Pro 7.2 когда подберут пароль к архиву1) IDA Pro 7.0.torrent (x64 only, для XP нужно патчить PE + вылеты)2) IDA Pro 6.8.torrent3) IDA Pro 5.0 - бесплатная версия для некоммерческого использования4) Radare 2 - наконец прикрутили гуй, но по прежнему нужна только клиническим, не умеющим в скачивания торрентов, или пользователям альтернативных ОС5) ОстальноеВсе книги и статьи Криса Касперски (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. Язык неограниченных возможностей.Сайты по ассемблеру:Замена почившему wasm.ru- https://wasm.in/https://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.aspxdisassembler.io Дизассемблер онлайнДля ковыряющих винду и софт под неё, сайты с описанием структур со смещениями и разными версиями оных:http://msdn.mirt.net/http://terminus.rewolf.pl/terminus/http://geoffchappell.com/Предыдущие№5 https://arhivach.ng/thread/395971/№6 тонущий >>1301036 (OP) если кому нужен тред, сами архивируйте, я в следующий добавлю.
>>1369393Тащемта по дефолту там прослушивается порт и включена возможность удаленного подключения. Есть в гидре конечно и свои плюсы, как-то легче что-ли первичный анализ бинарника сделать, но для реальной работы она не катит все таки.
По-моему Сишный компилятор больше инструкций добавляет, а с опцией -O3 вообще мрак получится.Кто-то поможет объяснить, почему так? https://godbolt.org/z/zTCRf7
>>1369180 (OP)> если кому нужен тред, сами архивируйтеhttps://arhivach.ng/thread/415252/ (#6)https://arhivach.ng/thread/437556/ (и этот сразу заодно)>>1369486> Как экспортировать символ на fasm? public internal_name as '_external_name' или просто public name, если переименовывать не нужно.>>1369494У тебя в крестах локальная переменная, в Си - глобальная. Во втором случае оно смогло в автоматическую векторизацию (обрабатывает несколько шагов цикла за раз), попробуй собрать с -fno-tree-vectorize, если важен размер кода.
>>1369677Да, крестовые алгоритмы из стандартной библиотеки лучше оптимизируются, потому что компилятору доступно больше информации. В Си можно так: https://godbolt.org/z/ShqpCI (к сожалению, без const не свернет).
>>1369683Ну, кстати с флагом -fno-tree-vectorize оптимизируется также.Значит таки лучше на крестах учиться писать для скорости то? Думаю да
Ебать я даун.Написал программу, неправильно проверил и сижу ищу ошибку которой не существует.Как в анекдоте про иностранца, собирающего холодильник, и русских, которые подкидывают ему детальки.Ладно одной проблемой меньше.Как в этом прекрасном языке строки вводятся, выводятся? Чот из методички нихрена не понял.Пните меня хоть в правильное место. Прерывания какие-то досовские, значения регистров для вызова правильной подпрограммы, вообще охуеть.
>>1371108Ну Spacewar! нахерячили же в 62 году. Скорее всего на ассемблере, либо вообще на двоичном запилили (Маловероятно, но возможно).(Хотя чёрт его знает что было на PDP-1 Вдруг и компилятор чего нибудь высокого. Хотя вряд ли)
>>1371944Том что выполнение начинается с первой строчки, а у тебя там вместо кода переменная. Утащи ее вниз. И еще тому, что для int 21h/func=9h DX должен указывать на строку, завершенную долларом, а у тебя не указывает и не на строку.
Ребят подскажите сколько цыклов процессора идет на выполнение комманд ассемблера таких как mov inc sub div и остальных. Или подскажите где это искать ибо у самого лапки и не нашел.
>>1372448>>1372448Не ну для 8088 все есть а для рабочих процов + архитектуры нет.Ну спс хоть за что-то.тактов/цыклов дискассМашинный цикл — промежуток времени между двумя последовательными обращениями центрального процессора к внешней оперативной памяти команд/данных, или обмена 1 словом данных с периферийными устройствами, в том числе в циклах обработки аппаратных прерываний и является составляющей частью исполнения машинной команды.Такт процессора или такт ядра процессора — промежуток между двумя импульсами тактового генератора, который синхронизирует выполнение всех операций процессора.
>>1372468> для рабочих процов + архитектуры нетСуперскалярная архитектура, мам. Какие именно такты ты считать собрался? Почитай Intel Architectures Optimization Reference Manual, почитай Агнера Фога для начала.
>>1372480Software Optimization Guide тута:https://developer.amd.com/resources/developer-guides-manuals/
>>1372441https://www.agner.org/optimize/instruction_tables.pdfПравда, как раз-таки с mov всё посложнее.
>>1373392Нету.Можно наподобие https://stackoverflow.com/questions/3898716/how-to-build-an-executable-without-import-table-in-c-cТолько какой-нибудь GetStartupInfo, а дальше искать в кернеле GetProcAddress и через него нужные апишки дергать.
Изучаю язык ассемблера, использую nasm ассемблер и линкер от Microsoft, пытаюсь вызвать С-функцию call puts, но при ее вызове выбрасывается ошибка "Access violation reading location" что я не так делаю?
>>1373311Завтра посмотрю. Под фейковым импортом я понимаю технологию, когда программа дёргает апи динамически при помощи парсинга таблицы импорта dll, а собственный импорт у неё фейковый или вообще спизжен у калькулятора.
>>1373439> Как он тебе на джоэсс откомпиляет хоть что-нибудь да со своей IAT?А как на Си компиляют? Какая разница-то, какой у тебя язык? Ну делаешь UInt8Array, создаешь от него DataView, пишешь туда по очереди поля IMAGE_DOS_HEADER, пишешь туда стаб, пишешь туда IMAGE_NT_HEADERS, пишешь IMAGE_SECTION_HEADER, пишешь данные секций, в том числе и секцию с твоей фэйковой директорией импорта, делаешь Blob, он сохраняется браузером, как обычно файлы скачиваются. Если хочется код генерить, есть готовые либы. Если не хочется, можно через FileReader загрузить бинарник и пропатчить его точно таким же способом.
>>1373459Один импорт парсит, другой GetProcAddress в ядре вызывает. Тебе экспорт парсить надо, обсуждалось в прошлом треде.
>>1373457> учусь водить машину, но когда я нажимаю педаль газа, у нее отваливается бампер, что я делаю не так?КОД ТАЩИ
>>1373469 global main extern puts section .textmain: mov rdi, message call puts retmessage: db "Test", 0
>>1373471Ты уверен, что ты линкуешься 64-битным линкером? Ты уверен, что первый аргумент для Microsoft-овой конвенции вызова должен быть в RDI? Ты уверен, что ты shadow space в стеке под аргументы зарезервировал?
Я начал заниматься кряканьем софта некоторое время назад. Подскажите, на каких форумах я могу найти заказы на взлом?
Треда для системников нет, а в С/С++ сидят одни ньюфаги хеллоуворлдщики поэтому спрошу здесь. Пишу классический non pnp драйвер, все вроде работает, но при выгрузке внезапно синий экран. PAGE FAULT IN NONPAGED AREA. В DriverEntry: DriverObject->DriverUnload = &Unload;Unload rouitne:VOID Unload( IN PDRIVER_OBJECT DriverObject){ IoDeleteSymbolicLink(&SymbolLink); IoDeleteDevice(DriverObject->DeviceObject);}Где проебался-то?
>>1374096Собираешь валидную таблицу дескрипторов, кладешь ее в GDTR, ставишь бит PE в CR0, выполняешь дальний jmp на начало 32-битного кода. Ну и там загрузка всяких SS и отключение прерываний по вкусу.
>>1374100Спасибо,а теперь наебень кода на асме, заранее спасибо.Ну или скажи где про это можно нормально почитать, а то я конченый.
>>1374230Подожди, ты самый умный или как? Расскажи как быть таким же умным. Я вот не могу уйти в защищённый режим. Ты вот красиво по пунктам расписал, оно понятно все, но вот код не понятно, акты в порты какието, таблиц куча, джампы, и вот везде кал написан а мне непонятно, объясни заранее спасибо
>>1374268Чо? А гипервизоры-то тут каким местом вообще?>>1374263Понятно, что строка. Где у тебя симлинк конкретно? Проверь ради разнообразия, что тебе IoDeleteSymbolicLink возвращает. Алсо, ты уверен, что у тебя после анлоада колбеки какие-нибудь не остаются торчать?>>1374291Ты хочешь перейти в защищенный режим из винды, лол?
>>1374331> Из третьего защищенного режима в нулевой. Из третьего кольца, ты хотел сказать. Режим на то и защищенный, чтобы ты так не смог.
>>1374296>Чо? А гипервизоры-то тут каким местом вообще?Вот таким: http://www.alex-ionescu.com/?m=201708. >>1374331Тоже самое выше читай. Никак ты не попадешь уже туда напрямую.
>>1374381В 9x как раз без проблем можно было запатчить IDT, перейдя из r3 в r0 буквально десятком инструкций, без дров. И наличие или отсутствие сейфмода при этом никак не мешало.>>1374399Ну теперь-то ясно. Я просто думал, что в изначальном вопросе спрашивали про банальный переход из реалмода, а вы тут хацкеры, оказывается.
>>1374291Да, читай 7 издание 1 часть, потом сразу 6 издание 1 и 2 часть наверни, чтобы почувствовать разницу и прощупать логику m$.>>1374296Спасибо, разобрался. Надо каждый раз что-ли строку инициализировать?
>>1374785Ну... кладешь в в IDT реалмодную таблицу, в GDT дескрипторы, чтобы на реалмод похоже было (16-битные сегменты, лимит мегабайт вот это все), прыгаешь в такой 16-битный сегмент, сбрасываешь CR0.PE, опять прыгаешь, чтобы CS перезагрузить уже реалмодным значением, перезагружаешь все остальные сегментные регистры сохраненными значениями (если у тебя DOS) или любыми разумными (если не DOS).
>>1369180 (OP)Программята, я тут по залёту. Препод сказал что повысит мне оценку если я принесу ему ёлочку на ассемблере, но у нас, блядь, было всего две пары по нему два года назад. Нагуглил только какую-то сложную ёлку с анимацией, а это слишком подозрительно. Поможете или я могу нахуй пройти?
Анон, где можно посмотреть/спиздить исходные коды различных девайсов, всякие мигалки на 100500 диодов заебали
Появилась недавно идея, сделать электронный замок для ящика стола. Короче говоря, я сажусь за ПК, ввожу пароль. Ящик открывается. Для этого нужно придумывать какую-то муть с подключением всего механизма к ПК. Впринципе, если б я это пилил на какой-нибудь ардуинке И вместо пароля- обычная кнопочка, то проблем бы это не составило. Но т.к я хочу сделать это через ПК, то возникает масса вопросов. Как организовать ввод-вывод (Через какие порты) Можно через usb, но как??Если на той же ардуино много разных портов ввода-вывода, и на каждый можно подавать напряжение по отдельности, либо считывать с него, то как это делать посредством usb провода?Натолкните на инфу по этому вопросу. Я даже слабо представляю как такое гуглить
>>1377050Ну погугли спеку юсб, как там инфа кодируется не подойдёт тебе юсб, попробуй выход на колонки
>>1377051> не подойдёт тебе юсб, попробуй выход на колонкиЭто как вообще? Просто как провода от jack 3.5 обрезать, и в качестве пинов использовать?
>>1377051Ну, не подойдёт если ты не хочешь ответное устройство городить>>1377053Ну зачем сразу отрезать, впаяй в свой замок разъем и возьми повод джек-джек
>>1377050> Если на той же ардуино много разных портов ввода-вывода, и на каждый можно подавать напряжение по отдельности, либо считывать с него, то как это делать посредством usb провода?Ну придумываешь кастомный протокол, кидаешь пакетики в устройство, чтобы управлять output-портами, периодически опрашиваешь устройство на предмет событий с input-портами. На компе через libusb, на устройстве - зависит от микроконтроллера, хоть вручную, хоть через многочисленные USB-либы. И вообще, ты сюда мимо, тебе в /ra/.
>>1377050LPT/COM/USB/Ethernet/Wi-Fi/Audio 3.5Выбирай любое. Для всего существуют готовые решения.>>1375845Можно на таком захуярить прямо онлайн http://rk86.ru/ . Должно быть попроще х86.>>1376703http://cxem.net/mc/mc.phphttps://www.radiokot.ru/circuit/http://easyelectronics.ru/И т. д.
> http://cxem.net/mc/mc.php> https://www.radiokot.ru/circuit/> http://easyelectronics.ru/> И т. д.Спасибо братишка, но там в основном уже все в омновном откомпилиравано, дизасемблировать занятие так себе
>>1377881> Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёрыНе, отреверсить то можно, но мне бы сначала с просто кодингом разобраться, все ж мы люди
Какой диалект на linux использовать - nasm или gas?Насколько я понял, то gas более типичен для данной ОС, а основное отличие в том, что используется не intel синтаксис, а AT&T (хоть gas и поддерживает intel syntax). AT&T вроде более нагляден и понятен.
>>1377963Вот как только томаш stabs осилит (нативно, а не через внешний костыль, который парсит fas), вот прямо сразу. А до тех пор fasm советовать широкому кругу особенно под linux бессмысленно, и даже сраный nasm будет лучше.
>>1378013Кстати, кто-нибудь знает, как из фасма / фасм-г экспортировать отладочные символы и импортировать их x64dbg? В каком формате это надо делать?
>>1378386Мне старых хватаетhttp://nf-team.github.io/zf5/zf5_005.htmlhttp://nf-team.github.io/zf4/zf4_015.html
>>1378404Кэп? Куча бреда в его статьях и книгах никак не отменяет того факта, что по ним училось большинство реверсеров в 2000х.
>>1378404Почитал. Критикующий ничем не лучше: тоже достаточно неточностей, фактических ошибок и просто вкусовщины.
Реверсач, я заебался. Как все это байтоебство монетизировать? Уже 2 года тут варюсь, да нравится, да интересно, но без денег на энтузиазме сами понимаете... Вакансии искать сложно, их просто нет. Что делать?
>>1378896Эту ерунду школьникам оставь. Пусть их бутылят.>>1378916Я что-то ни разу вакансий не видел, еще бы они были, брать рандома с улицы так себе затея.
>>1378927За читы не бутылят и это достаточно прибыльная ниша. Но судя по ответу у тебя мозго только на байтоебство хватает, так что остается тебе только страдать и тешить себя мыслью о том что не тупой, потому что "уже 2 года тут варюсь".
>>1378952Бутылят, на за сами читы, а за вытекающие проблемы этого бизнеса. Чтобы развернуть проект, нужна команда 3-5 человек минимум, нужно как то согласовывать разработку, распределять средства между незнакомыми друг с другом людьми в интернете и еще овер9999 подводных камней. >>1379217ДС/ДС2, опыт от 3 лет.. Понятное дело, что у гигантов типа касперского и прочих будут вакансии. С нуля без опыта-то куда вкатываться-то? А если я еще и из мухосрани?
Посоветуйте статьи про создание собственного ассемблера и написание простого парсера, лексера и генератора машинного кода. Хочу написать компилятор для своей ВМ.
НАДО АКТИВИРОВАТЬ ФУНКЦИЮ ПЕЧАТИ ДОКУМЕНТА@ДЛЯ РЕФЕРЕНСА РЯДОМ ЕСТЬ АКТИВНАЯ ФУНКЦИЯ ПЕЧАТИ ОДНОЙ СТРАНИЦЫ@ВЫПОЛНЯЕТСЯ ЗА 150 ИНСТРУКЦИЙ, ВСЁ ПРЕДЕЛЬНО ПРОСТО@НАШЁЛ, КАК ВЫЗВАТЬ ПЕЧАТЬ ДОКУМЕНТА@В ПРОЦЕССЕ ВЫПОЛНЕНИЯ ДЁРГАЕТ НЕБО И АЛЛАХА, ПРОВОДИТ КАКИЕ-ТО СКРЫТЫЕ ПРОВЕРКИ, КОТОРЫЕ ТОЖЕ НАДО ОБОЙТИ@СПУСТЯ 1000 ИНСТРУКЦИЙ И 3 ЧАШКИ КОФЕ МЕЧТАЕШЬ О ТОМ, ЧТО ЛУЧШЕ БЫ ШЛЁПАЛ ФОРМЫ НА ДЖАВАСКРИПТЕвкатился
>>1377050Я делал что-то подобное через ft232 - на стороне PC usb + driver, другим концом в микроконтроллер serial RX/TX. Все предельно просто. API на сях, довольно удобный и высокоуровневый. Код типа такогоFT_SetBaudRate (ftHandle, 9600);FT_SetDataCharacteristics(ftHandle, FT_BITS_8, FT_STOP_BITS_1, FT_PARITY_NONE);...ftStatus = FT_Write(ftHandle, &buf, sizeof buf, &bytesWritten);и тд. Никаких проблем. Я с армом спаривал, можешь хоть с ардуинкой, с чем угодно. В /ra/ сходи еще.
Пишу лабу. Нашел похожую прогу и вычищаю всякое ненужное говно и разбираюсь что здесь что.Можете пояснить, зачем он закидывает в стек дс и выкидывает ес? В чём суть? (Без этого лаба не работает, поэтому надо рабобраться)Для чего обычно это используется?push ds pop es
>>1382376>Для чего обычно это используется?>push ds>pop es es=dsТ.к. прямых команд типа mov es, ds нетути.
>>1382394А что это означает? Нахуя тобишь? Код не сильно большой, надеюсь меня не побьют.Без него ничего не работает, но я не пойму смысол.lea SI, StringINP+2 ;взятие адреса входящей строки lea DI, StringOUT+2 ;взятие адреса исходящей строки mov CL, StringINP+1 push ds pop es Proverka: lodsb cmp AL, 20h je stopcmp AL, 9 je stop stosb stop:loop Proverka lea dX,StringOUT mov AH, 09h int 21h quit: exitcode 0 end
>>1382398>Нахуя тобишь?Пушто lodsb работает с парой DS:SI, а stosb с парой ES:DI.Если SI и DI в одном сегменте, то надо как-то сделать, чтобы ES=DS.Т.к. прямого присвоения типа mov ES, DS нету, то костылишь это через pusd DS/pop ES.
Мимодебилу подскажите.Проходил туториал от cheat engine и немного разбираюсь в ассемблерах этих. Совсем чуть чуть.Есть одна игра, и в ней есть кнопка, которая требует 80 левл, чтоб на неё нажать.Я подумал найти где в ассемблере считается левл и изменить там.Текущий левл видно в меню персонажа, но я его чит энжином никак не могу найти. Искал уже по типу all, по типу string, ничего нет. Точнее за 2-3 прохода вся таблица исчезает. Будто адрес левла меняется постоянно.В меню персонажа левл выводится как Level: 4 например.Нашел эту строку в памяти Level: %dСделал Find out what accesses this addressПри открытом меню персонажа там есть 2 адреса, которые читают эту строку.Взял первый, Show disassemblerЕсли я меняю на nop, то текст пропадает из всего меню персонажа. Все строки. Значит я на верном пути.Сделал Break and trace instructions и теперь у меня тыща инструкций. Но это не просто printf (string, ADDRESS_OF_LEVEL); а куча хлама, среди котрого хрен найдёшь нужное.Как мне выследить где хранится ебучий левл?
>>1383459Кстати статы я так же не могу никак отловить, силу, ловкость, вот это всё. После 2-3 изменений в cheat engine пустая таблица.
>>1383459>теперь у меня тыща инструкций. Но это не просто printf (string, ADDRESS_OF_LEVEL); а куча хлама, среди котрого хрен найдёшь нужноеДобро пожаловать в ассемблер.
>>1383471>>1383468>>1383459Пиздец. Я справился. Я победил.Написал пелену текста как я это сделал, а макаба взяла и удалила мне весь пост.Лень писать, но я выйиграл. Пикрелейтед - проверка на 80 левл.
Как мне последовать за call инструкцией? То есть есть функция yoba, которая внутри вызывает функцию makaba, ида пишет мол вот смотри: yoba + 0x2b ; call makaba. Как мне блять адрес то макабы получить чтобы вызвать ее? (fnProt)yoba = get_addr(yoba) + 0x2b же? Но так не работает.
>>1383480Подозреваю, что ты хочешь что-то типа call_target = base + offset + 5 + dword_at(base + offset + 1), где base - это yoba, offset - это смещение инструкции call относительно base, т.е., 0x2b, call_target - вычисляемый адрес makaba, 1 - офсет rel32 внутри инструкции call (всегда 1 в этой форме), 5 - размер инструкции call rel32 (всегда 5 в этой форме), rel32 - это смещение вызываемой фукнции относительно следующей за call инструкции.
>>1383141Потому что никто уже третий тред не может его нормально прикрепить. Вот так:>>1369180 (OP)ОП, добавь в шапку гидру
Ассемблер ломает мне мозг. Я думал это машинный язык, а он компилируемый получается.Вот из примера>e db 'string',0 ; Определяем строку из 7 байт, заканчивающую нулёмКак это будет выглядеть в хексе экзешника? "e" это имя переменной.Там ведь не будет слова "e" для переменной?
>>1383826>\t\tЭто макаба добавила. Там в оригинале табуляция.И потом если этот экзешник открыть чем-нибудь, что показывает ассемблерный код, что он покажет?Я пока ничего не умею, сам проверить не могу.
>>1383827>>1383826А, я понял. >e db 'string',0превратится в >73 74 72 69 6E 67 00а>mov eax, [e]превратится в >mov eax, [0xАДРЕС]
>>1383485Спасибо конечно, но мне нужно это сделать не в иде, а в рантайме на С.>>1383592Теперь я еще сильнее запутался... Вот другой пример прикрилейтед. FUNC - экспортируемая функция в дллке, func_internal - нет, но мне нужно получить к ней доступ, чтобы единичку в последнем параметре заменить на нуль при вызове. Как мне вызвать то func_internal? Делаю GetProcAddress(func), получаю адрес func, смещение по которому находится вызов func_internal = func + C. Но все равно вызвать функцию не получается.
>>1383861> Как мне вызвать то func_internal?Псевдокод:typedef int func_internal_type(int a, int b, int c, int d, int e);uintptr_t funcptr = (uintptr_t) GetProcAddress(lib, "func");uintptr_t call_insn = funcptr + 0x0c;assert(∗(uint8_t ∗) call_insn == 0xe8); // Опкод CALL.uintptr_t rel32 = ∗(uintptr_t ∗) (call_insn + 1);uintptr_t call_target_addr = (call_insn + 5 + rel32) & 0xffffffff;func_internal_type ∗func_internal = (func_internal_type ∗) call_target_addr;func_internal(1, 2, 3, 4, 5);Пример на пальцах. Допустим, у тебя есть:0x10000000: e8 20 01 00 00: CALL 0x100001250x10000005: c3: RETТы читаешь из инструкции rel32 (little endian, выделено жирным): rel32 = 0x00'00'01'20, берешь адрес следующей инструкции после call: 0x10000005, прибавляешь к нему rel32 (считаешь в 32-битной арифметике с переполнением, rel32 со знаком, но на это похуй) и получаешь адрес вызываемой функции: 0x10000005 + 0x00000120 = 0x10000125. То же самое делается для относительного JMP.
>>1384303Благодарю, вроде все понял, буду пробовать. Есть вообще доп. материал по данной тематике? Как гуглить решение аналогичных задач? Или нужно асм активно вкуривать и само все придет? Еще вычитал способ с поиском адреса функции по сигнатуре, выглядит проще. Какой из этих двух способ более правильный?
>>1384525Возможно, имеет смысл искать сам опкод по сигнатуре, а то мало ли как компилятор в следующий раз наоптимизирует, офсет изменится, и приехали.>>1384523> выглядит прощеДа там на самом деле одно-два выражения всего, если лишних переменных не создавать. И да, я только сейчас случайно заметил, что у тебя 64-битный код, а у меня там unsigned читается. Сорян. Надо вот так хотя бы, тогда и в 32- и в 64-битном коде норм будет:uintptr_t rel32 = (uintptr_t) ∗(int32_t ∗) (call_insn + 1);uintptr_t call_target_addr = call_insn + 5 + rel32;
>>13845271. если он в следующий раз наоптимизирует, твой сигнатура идет нахер2. тебе не надо знать офсет, чтобы хукнуть импортируемую функцию из ддл
>>1384562Если он в следующий раз наоптимизирует, первая вызываемая функция останется первой (ну разве что стекчек появится какой). Чтобы хукнуть экспортируемую, офсет не нужен, но анону нужно самостоятельно вызвать неэкспортируемую фукнцию, которую вызывает экспортируемая.
Стоит ли читать Зубкова, учитывая что там большая часть книги описывает работу с dos, win95 и т.д.? Мб есть что-то поактуальнее?
>>1385026главное не выбирать долго долго а сесть и начать. кому как, у меня начало было так:курс с asmworld.ru по FASM + Калашников https://rutracker.org/forum/viewtopic.php?t=4480735Знаю что Калашников старье не актуальное и все что пишется либо на ХР запускать либо в досбоксе. Чисто чтоб привыкнуть к асемблеру.А дальше все как в книжке Юричева. компилятор + олька + ида, и в путь. Можно по курсу ольки от Нарвахи пробежаться.
>>1384525Так она не экспортируемая.>>1384527Спасибо еще раз. Почитать-то есть что-нибудь на данную тему? Далее планирую похукать функцию. Это же inline hook называется, когда в начало функции пишешь свой jmp, address?
Может кто поделиться статьей https://xakep.ru/2019/03/20/nsa-ghidra/брать подписку ради нее одной как то не хочется.
>>1385211Итак, мы рассмотрели фреймворк для реверс-инжиниринга Ghidra. Сможет ли он заменить IDA Pro? Я думаю, что на данном этапе своего существования — нет. Дело в том, что Java в качестве языка для написания подобных программ, на мой взгляд, не лучший выбор. И дело, конечно, в скорости.Дизассемблер работает небыстро, особенно на тяжелых файлах. Скажу больше: файлы размером свыше 150 Мбайт реверсить на Ghidra — то еще испытание. С другой стороны, Ghidra кросс-платформенна, и для кого-то это может быть важно.Следующий момент — это количество поддерживаемых архитектур и загрузчиков файлов: у IDA Pro их значительно больше. Еще очень не хватает такой же плотной интеграции с отладчиками, как в IDA Pro. Опять же, открытость кодов (если NSA выполнит обещание) — это хорошо, да и возможность добавлять поддержку других архитектур — по-настоящему крутая фишка. Но пока будет выполнена эта работа (и исправлены баги), пройдут годы.Вообще, у меня сложилось стойкое впечатление, что Ghidra — это не конечный продукт. В том виде, в котором этот фреймворк доступен сейчас, он тянет на бета-версию с публичным доступом, но никак не на версию под номером девять. Кстати, в названии архива есть слово PUBLIC. Наверняка где-то есть еще и версия PRIVATE.Безусловно, у Ghidra есть свои сильные стороны, и в чем-то она уже превосходит IDA Pro, но слабых мест пока что намного больше. А вот разработчикам IDA есть что позаимствовать в новом инструменте. Например, мне понравилась повышенная информативность кода, представленного в виде графа. Да и само построение графа кода выглядит более строго и упорядоченно. Есть патчинг инструкций без дополнительных плагинов и без разделения на x64 и x86. Зачем держать два ярлыка на рабочем столе, если достаточно одного?
>>1369180 (OP)я бы добаивл еще ссылку на копию зеркала старого васм.ру https://rutracker.org/forum/viewtopic.php?t=407571
>>1385215там после "Здесь видим список всех функций с их сигнатурами" закрыто сайтом. Можешь Ctrl+P и пдфкой сюда?)
>>1385210> Я думаю, что на данном этапе своего существования — нетУчитывая, как легко и красиво пишутся плагины, то иде пизда. И радару пизда.
>>1385841>>1385255Уже установили JRE? Налажали спец. службы конечно, уж писали бы на сисярпе хотя бы.
>>1385864ничего не наложали. у них при работе скорее всего крутится на сервере с нужными мощностями, а ты подключаешься по сети дебажешь. Да и понятие скорости там не так важно. ну анализирует оно дольше, да и фиг с ним. Главное простота поддержки кода, уровень вхождения.Цифра 9 - когда начинали .net core наверно был только в зарождении, а тут все сразу из коробки. так что для них выбор очень даже хороший.
>>1385864> Уже установили JRE? Ты мимо пробегал? Пробегай, не задерживайся. Мы тут реверсеры, нам приходится реверсить и жабкуандроид, поэтому жре у всех и так установлен.
Парни помогите ,жопа горит уже не могу.При установке драйвера TitanHide столкнулся с ошибкой StartService fails with error 6 "Invalid Handle" , а также до этого была проблема с загрузкой win без подписи драйвера, при выборе даже в загрузочном меню F8 команда игнорировалась и запускала обычную версию.Решил ту проблему через msconfigкак же я блять не навижу ебаный шиндовс
Сап, реверсач.Вопрос мб тупой, но всё же задам: в 2к19 пишутся ли годные малвари на чистом асме? Или это, как правило, сишный код с инлайн асм вставками?
>>1385993Ты как грузишь драйвер-то? Проблема очевидно c SCM-manager'ом. На сколько я помню проект опенсурс, так что смотри исходники и дебаж.>>1386277Прям целые боты естественно не пишутся на асме, люди ценят свое время. А вообще лучше не лезь, анон, сейчас за малварь активно бутылят, да и не выгодно это уже.
>>1386418Все в ознакомительных целях на самом деле, я хочу в недалеком будущем начать анализировать малвари, сейчас усиленно учу асм и хочу знать полностью его мощь/возможности.
>>1386567Тогда ты на выбор попадешь или к мусорам из раши, или к мусорам из СШП. Причем, ко вторым тебе шансов попасть больше. Еще есть такой вариант , что после бутылки от отечественных мусаров тебе предложат поработать штирлицом плаща и кинжала на гыгыру или какого вагнера (в противном случае на тебя повесят все глухари и отправят к маньяками и серийным мокрушникам в черный дельфин) тип штатным хакером, где ты в тюрячке/шараге под одобрительные солдатские пиздюли будешь ломать пентагон с IP адреса минобороны, после чего гыгыру и пуйло поджав хвост и поскуливая, сольют тебя мусорам из СШП. Где ты получишь тот же пожизняк-двадцаточку, но уже с многомиллиардными штрафами.Да, касперский, по последним сводкам тоже на гыгыру и вагнера работает, параллельно многостаночит на прочие кардерские тусовки. Так что ну его нахуй это хекерство - если ты не какой мексиканский главарь Los Zetas и у тебя нет своей личной армии. Хакеров везде не любят, тащемта. Тут тот случай что даже заведенный трактор/его отсутсвие похеру. Потому что речь идет о серьезных деньгах серьезных людей по всему миру.
>>1386567чекать малвари и сигнатуры в базы антивирусные вносить - утомительная работа, быстро надоест, к тому же нет роста как профессионала. А конкретно реверсеры, нужны не в таких больших количествах.Но это удобный скил лично для себя. Плюс с обилием крякми - всегда для хобби будут задачки головоломные которые порешать.а так, загляни https://habr.com/ru/post/438376/
>>1386579Анон, что ты несешь? Речь идет о кристально белой шляпе, которая проводит binary exploitation исключительно в рамках инфосек компании за зарплату. Ни про какие мутные взломы и прочую хрень речи не идет вовсе. Я лишь спросил про мощь асма у более знающих людей (уверен, здесь таких немало), а в ответ полетел бред про бутылку и криминал.
>>1386724Ты совсем даунич?с: Инфосек специалисты для чего в соответствующих компаниях работают? Чтобы проводить аудит безопасности для тех или иных продуктов, причем здесь вообще криминал, даунёнок? Им платят деньги за то, чтобы выходил качественный, трудновзламываемый софт.
>>1386728>Инфосек специалисты для чего в соответствующих компаниях работают?Чтобы за 15к фублей и статус невыездного подымать россиюшку.Ну и если что не так - то тут же сесть, разумеется.
>>1386732А, забыл упомянуть, что речь идет не про рашку и даже не про страны СНГ, но это совсем другая история с: Пожалуй, подожду адекватного ответа по поводу асма, а то продолжать юзлесс демагогию не имеет никакого смысла.
>>1386721Открою америку: белых шляп не существует - все инфосек конторы занимаются чернотой на заказ, при этом все сотрудники реально ходят под такими NDA, что вплоть до пули от киллера или пера в переулке.
>>1386701>к тому же нет роста как профессионалаТут ты обосрался. Карьерный рост есть:1. Кататься по дефконам светить лицом, продвигать себя и свою кантору 2. Вкатиться в разработку ав-движка3. Вкатиться в редтим4. Пилить девтулы для своей канторыСамое основное вспомнил.
>>1386701сейчас бы malware analyst был без профессионального роста, лол :-) Хотя, возможно, с ИБ в рашке действительно настолько все плохо, что на всю страну есть только лаборатория Касперского. Основная же масса айтишников - сброд унылых вебмаQAк :-)
>>1386818Он прав в том плане, что в пентестинг довольно легко вкатиться, но для того, чтобы продолжить заниматься чем-то действительно интересным, необходимы оче разносторонние знания вкупе с профильным образованием.
>>1385215>Дизассемблер работает небыстро, особенно на тяжелых файлах.Этот даун думает, что дисассемблер медленный из-за джавы?>Кстати, в названии архива есть слово PUBLIC. Наверняка где-то есть еще и версия PRIVATE.Натурально даун.
Есть, кто шарит за демосцену?Хочу вкатиться чисто для души поделать, плюс углубить анус свои знания.Тащемта, с чего начать, куда смотреть? Сам недокодер SoC на си
>>1386804ну будем честными, это единицам светит, остальные и будут сидеть "вычленять сигнатуры", в то времяч как жава/шарп джуны получают столько же и в джунах не задерживаются.
>>1386916Погугли сколько есть вакансий в разных странах на должности: malware analyst, security researcher. Все они реверсеры, камон, их не так мало. Да, порог вхождения высокий, но их все равно достаточно.
>>1386904В старых по-разному может быть.Современная выглядит так:var sheider='дохуя длинная строка шейдера в текстовом виде'call Init_grafikacall zapustit_sheiderloop poka_ne_zakonchitsyaА потом это все кранчем жмешь и получаешь заветные 1-4к.
>>1386880Очевидно он медленный из-за джавы. Очевидно у спец. служб есть и приватная софтина. Не понял твоих претензий. >>1386914В ДСе зп младшего вирусного аналитика может за 100к переваливать, даже джависты могут позавидовать. Рост возможен и потолок гораздо выше чем у того-же джависта/шарписта.
>>1387462ты это на хх смотришь? или работал там? порог вхождения джав/шарп-иста на такую зп куда ниже чем на того же аналитика. Рост у обычного аналитика не так прекрасен как рассказывают, по большей части ты выполняешь тупую нудную работу. В зависимости от фирмы еще и разной специфичности условия.Ну и да, совсем забыли тут сказать, работа вирусным аналитиком не так уж и сильно корелируется непосредственно с реверсом.ну а 100к джавистом/шарпистом можно и в регионах, если добавить немного фриланса
>>1388062А педалить какое-то говно на джаве - это не нудно?)Вирусный аналитик != реверсер? Анон, ты ебобо? 99.9% малварей требуют глубокого статического анализа, где от вирусного аналитика требуется мэдскиллз по обходу обфускации, пакеров, рантайм шифрования и прочего дерьма. Вирусный аналитик - это реверсер на стероидах, ибо обычный софт, в среднем, гораздо меньше и слабее онально огораживают от отладчиков и дизассемблеров, нежели малвари, и тому есть вполне логичные причины.
>>1388067>99.9% малварей требуют глубокого статического анализа, где от вирусного аналитика требуется мэдскиллз по обходу обфускации, пакеров, рантайм шифрования и прочего дерьма.Ржали всей лабораторией.
>>1388067> 99.9% малварей требуют глубокого статического анализа> Ржали всей лабораторией. Присоединяюсь. 90% малвари состоит из необфусцированного копипастного кода, написанного школьниками на переменах. Глубокий анализ такого заключается в strings virus.exe|grep http. Еще несколько процентов - это вариации на тему ксора с коротким ключом, иногда со скопипащенным из какого-нибудь метасплоита кодом поиска апи по хэшам, но внутри все тот же говнокод. Сколько-нибудь интересные сэмплы очень редки. Ковыряться в этом однообразном говне годами может только совершенно больной человек, даже у JS-макаки жизнь интереснее, чем у вирусного аналитика.
>>1388459Видать в пидорашке любая отрасль идет с 20-ти летним дилэйем как минимум. Держу в курсе, в 2к19 в цивилизованных странах с таким школьным говном имеют дело программы по анализу вредоносного кода, которые детектят недомалвари в строках, копипасты инфекторов исполняемых файлов и прочее дерьмо.Анон, интересно, откуда у тебя такие мысли. Только если ты не вирусный аналитик в лаборатории Касперского, но если там такая дичь творится, то земля вам пухом там, хуле
>>1388523> Только если ты не вирусный аналитик в лаборатории КасперскогоНет, я с дивана, а ты в целом прав.
>>1388523сам то чьих будешь где работаешь что такими заявлениями кидаешься? Живешь в каком то маня мирке.я вот много где посмотрел, вирусная налитика именно такая копипаста как выше тебе уже пояснили. Анализ чего то сложного и интересного. это настолько редко что охереть как.
>>1388459>>1388697Да никто не сидит там по 2 года, делая однообразную хуйню. Такой же карьерный рост как и везде. После полугода-год тебя начнут закидывать прикольными тасками, будешь выезжать на конфочки/хакатоны итд.
>>1388459>>1388115Вам если сэмп с сискаллами + кастом пакером + вм дадут, побежите сразу к старшему с криками:>ряяя нипохукать! ряяя нидампица! ряяя где оеп вапще?
>>1388811>После полугода-год тебя начнут закидывать прикольными тасками, будешь выезжать на конфочки/хакатоны итд.А через два года начнёшь получать 300кк в наносекунду.
суп реверсачпонадобилось крякнуть программу купить не вариант - уже не продаетсявообщем нужно написать декриптор для этой штукиhttps://paste.dlab.im/?0b0853f6e4817a61#NTz16ZkNLTjEdqZhreTOPZUCFJS3lxbvwxU5o7I01ac=да,я тупой инвалид,но не осилил
>>1389079А не, это внезапно майнер.[MINING]pool = 185.170.43.187:8080 ; pool addresswallet = 83VL4uUXJynELY1oc7vqwmdG5L4ykZYtb4XjbYDkDvDvF9Chh7xMZJy4FTPuSEUfYGTBJCFoH6qBcVV1AFakRHjeRPu7hKLpass = xproxy = false[CPU]cpubase_usage = 20 ; Basic powercpuidle_usage = 90 ; IDLE power[GPU]gpubase_usage = low ; 40% aka basic powergpuidle_usage = high ; 100% aka IDLE power
Сап котаныОбъясните ньюфагу, каким образом дрова исполняются в кольце 2 и 1, и каким образом он исполняются без ведома владельца пк? В общих чертах хотя бы, а то путаница насчет этогоЧуется мне, что все буткиты/руткиты - это малварь, завернутый в нечто похожее на драйвер, чи да?
>>1389082> дрова исполняются в кольце 2 и 1Никаким. Это влажные мечты Intel, которые никому не пригодились. Пользовательский софт в r3, все остальное в r0.> В общих чертах хотя бы> каким образом он исполняются без ведома владельца пкПроцессор при запуске ОС (опустим переключение в защищенный режим) начинает исполнять код в r0. Таким образом ядро ОС исполняется в r0, и оно может, грубо говоря, менять уровень привилегий при переключении потоков (задач), может вместе с процессором изолировать память различных задач, а процессор не дает задачам из r3 исполнять привилегированные инструкции. А вот владелец пека вообще ничего не может, он устройство ввода, его можно даже не опрашивать.> буткиты/руткиты - это малварь, завернутый в нечто похожее на драйверДа, но драйвер - это файл, который работает с системой по какому-то определенному апи и сам предоставляет какие-то интерфейсы, а руткит может не быть файлом или не использовать стандартные апи для драйверов.
>>1389281>а руткит может не быть файлом или не использовать стандартные апи для драйверов.Это ломает мой девственный мозг новичка, как код может быть исполнен, если он не файл? Из-под чего он исполняется, где хранится код зловреда?Или руткит инжектят каким-то раком в бут сектор и он хранится, не имея при этом файла, который содержит исполняемый код, тупо запускаясь вместе с ОС при включении компа? А что творится на уровне гипервизора или SMM я пока тоже не представляю.
>>1389082Смотри пикрил. Обычный юзер ты, твои приложухи, игрухи, итд находится в VTL 0 пользовательском режиме ring3. Драйверымышки, клавиатуры, системные и прочее находятся в VTL 0 режиме ядра ring0, тут же сидят и руткиты/буткиты. Руткиты - это и есть драйверы, то есть pe-файл с расширением .sys. После отображения в ядро могут скрыть себя множеством способов. С расширением архитектуры винды и добавлением внутренних механизмов защиты, их действия сильно ограничены.Windows Internals 6 или 7 издание почитай, много чего узнаешь.>>1389281>а руткит может не быть файлом или не использовать стандартные апи для драйверовАпи ядра они используют, без этого никак и функции легитимных/системных драйверов.
>>1389079обьясните алгоритм,хотя быу меня при циклах каждый раз где-то все наебывается и выходит полная залупа,а не нужный результати биткойн кошель кидайте сразу)
Объясните по дескрипторам потоков/процессов, в книгах фашиста и таненбаума не могу ничего этого найти. Какую книгу читать тогда?
>>1389430В идеале и 6 и 7 прочитать, чтобы прощупать логику маломягких.>>1389434Windows Internals. Очень подробно разбираются процессы и потоки, страниц на 300 все очень детально разжевано.
>>1389499со всем остальным,кроме этого метода,у меня все окейнужно просто написать декриптор для этих строчек,чтобы можно было бы переводить их в url и обратноизвиняюсь,могу тупить,время позднее
Котаны, посоветуйте плиз нормальный сорс, откуда можно почитать/посмотреть про хукинг, желательно на английском, а то все как-то не очень объясняют или это я прост тупой, ГЫ
>>1376951Программист перед сном ставит на тумбочку два стакана. Один с водой, если захочет пить, а второй пустой, если не захочет.
>>1389957Что? Поясни, что значит "импорт сбилдить"? Сгенерировать таблицу импортов? Слинковаться с длл? Сделать библиотеку импорта?
>>1390024Да я сам не знаю. Просто хочу чтобы при просмотре любым pe-viewer'ом в таблице импорта моего хеллоу ворлда отображалось три kernel32.dll
>>1390099Фасм:format pe guientry startinclude 'win32w.inc'start: invoke ExitProcess,0_ = VirtualAlloc ; "Use" function to prevent fasm from removing it from imports._ = CreateFiledata importlibrary kernel32_1,'KERNEL32.DLL',kernel32_2,'KERNEL32.DLL',kernel32_3,'KERNEL32.DLL'import kernel32_1,ExitProcess,'ExitProcess'import kernel32_2,VirtualAlloc,'VirtualAlloc'import kernel32_3,CreateFile,'CreateFileW'end data
>>1389312>как код может быть исполнен, если он не файл?Банально уязвимость в сетевом стеке, типа большой пакет озалупливает ОС, и она передаёт управление куда-то внутрь этого пакета. Файла нет, а троян есть.>>1389312>А что творится на уровне гипервизора или SMM я пока тоже не представляю. И не надо, есть IME, который имеет вышеперечисленных.
>>1390390>Банально уязвимость в сетевом стеке, типа большой пакет озалупливает ОС, и она передаёт управление куда-то внутрь этого пакета.Эмм, содержимое такого пакета парсится как строка? Поэтому и сам зловред представляет собой строку? (условно, скрипт баша/мелкомягкой силаскорлупы) Просто если там обычный код, который нужно, офк, скомпилировать перед исполнением, то мне сложно представить как этот троян исполнится.>И не надо, есть IME, который имеет вышеперечисленных.Не буду кривить душой, не раздуплил причем здесь софт, который позвляет вводить символы, которых нет на клаве
>>1390450>Эмм, содержимое такого пакета парсится как строка?Причём тут строки? Мы про бинари.>>1390450>Не буду кривить душой, не раздуплил причем здесь софт, который позвляет вводить символы, которых нет на клавеhttps://ru.wikipedia.org/wiki/Intel_Management_Engine
>>1390479>Причём тут строки? Мы про бинари.До сих пор не понимаю как можно пропихнуть бинарник в пэйлоуде пакета, да чтобы он еще и запустился. Только если это не dll/so, который должен экспортироваться в какой-то процесс и нагадить. >https://ru.wikipedia.org/wiki/Intel_Management_EngineСпасибо, раздуплил.
>>1390479Тебя спрашивают про архитектуру винды, а ты ему железячнуюфигню пихаешь, о которой ньюфагу еще последующие лет 5 не придется думать даже.>>1390487Тебе нужно перестать думать юзермодными абстракциями и загуглить что такое произвольное выполнения кода, переполнение буфера. У тебя задача вообще какая стоит? Или ты просто исследуешь? Так исследуй блеать! Виртуалку поднял, виндбг подрубил, основные модули в иде открыл, а дальше уже само пойдет.
>>1391094>Тебя спрашивают про архитектуру винды, а ты ему железячнуюБольше половины ответа про винду, гений.
>>1391094Ламповый асембли уже давно в тред элитистов превратился. Щас в сипп треде обсуждение асм живее чем тут
>>1391205Врешь. Сижу в С и С++ тредах, там одни ньюфаги просят помощи с laba_001.sln, ничего серьезного даже близко не обсуждают.
>>1388896бамп реквесту,сразу кидайте свой биткойн кошелек как напишите - кину что естьнужна консольная прога,которой можно дешифровать это и наоборот- шифровать нужные строки в этот вид
>>1391622Билят.s=Base64decode('DxEBFw4dF0RfQUZDXlZGWkBEVFBDRBgNCFJLUEoUCVQPC1sXXEI=')key='geug428ugthrifhnsjehtkrgbjshegb3'а потом каждый байт xorres=s[l] ^ key[j]l от нуля до длины получившихся данныхj = strlen(key); if j>strlen(key) {j = 0}
>>1391636import base64s=base64.b64decode('DxEBFw4dF0RfQUZDXlZGWkBEVFBDRBgNCFJLUEoUCVQPC1sXXEI=')key='geug428ugthrifhnsjehtkrgbjshegb3'y=0res=[]for x in range(0, len(s)): res.append((chr(ord(s[x])^ord(key[y])))) y+=1 if y==len(key): y=0;print(''.join(res))
>>1391657Сколько лишних слов!s = base64.b64decode(...)key='...'print(bytes(a ^ b for a, b in zip(s, itertools.cycle(key.encode()))).decode())
>>1391682хотел помочь нуждающемуся,но назад выходит другой результатделаю тоже самое,но в обратном порядке,в чем подвоха?мимо
>>1391693человеку вроде же как нужен был и шифратор и дешифратор под это дело?в любом случае,интересно в чем ошибкав криптографии ноль
Реверсач, выручайНемного путаница с import address table.До биндинга import lookup table и import address table указывают на один и тот же адрес (каждый энтри). После биндинга, каждый энтри в import address table меняется на указатель на функцию в дллке (это я понял), но при этом также меняется указатель в каждом энтри import lookup table после биндинга, почему? И нахуя нужен Хинт?Олсо, указатели на функции в энтри IAT после биндинга - это же VA, а не RVA, я правильно понимаю?
>>1391673>не робит,но все равно спасибо,алгоритм понялЭто питон 2.7 если что.>>1391693Я слабо знаю эти ваши пистоны, а за ''.join ваще бы убивал, но иногда вот приходится на нем писать под себя.
>>1391696> но при этом также меняется указатель в каждом энтри import lookup tableНе должно такого быть, оно же загрузку сломает. Возможно, линкер делает такую таблицу, где FirstChunk и OriginalFirstChunk указывают на одну и ту же цепочку? Фасм таким страдал раньше. Так-то не должно. Попробуй на другом файле.> И нахуя нужен Хинт?Чтобы не выполнять двоичный поиск по таблице в таблице имен в экспортах дллки, а сразу попробовать элемент с указанным индексом. Если таблица экспорта в целевой длл не менялась с момента линковки ссылающегося на нее модуля, получается лукап экспорта за O(1) вместо O(log n). Если менялась... а я вот не знаю, используется ли это значение в качестве первого индекса в двоичном поиске, или оно в таком случае с середины начинает? Cам посмотри реализацию, если интересно.> это же VA, а не RVA, я правильно понимаюДа, прибито гвоздями к расположению модулей в памяти и поэтому бесполезно во времена ASLR.>>1391698> Это питон 2.7 если что.Это часы, если что: https://pythonclock.org/ Тик-так.
>>1391817>Это часы, если что: https://pythonclock.org/ Тик-так.Пох. Пока sqlmap не переведут на 3, я не перейду.
Не могу понять как память устроена в винде. Какие-то страницы PML4, PDE, PTE и еще дофига всего там. Для чего это нужно вообще все? Где почитать можно?
Суп, реверсачТут есть анонс со знанием ARM?В плане архитектуры, ассемблера и прочего будет полегче, чем х86? В плане порога вхождения
>>1392980Ну вот смотри: в ARM вместо одного - два с половиной набора инструкций, всякие DSP-расширения с кучей однообразных арифметических инструкций, выносящие мозг псевдоинструкции (или ебля со сборкой констант по кусочкам, что еще хуже), режимы адресации, которые сложнее, чем в x86, и это все только "обычный" 32-битный код в юзермоде. Плюс AArch64, который по сути отдельная архитектура. Плюс десятки разнообразных, сложных и несовместимых между собой механизмов, про которые нужно знать, если ты соберешься писать под bare metal.x86 в целом легче, потому что куча софта и информации на любой вкус, потому что локально отлаживаться проще.
Гайс, чем Линукс легче Винды в плане системного программирования и архитектуры операционной системы в принципе?
>>1393411> чем Линукс легче ВиндыВ линуксе компилятор в комплекте. В винде устанавливается за пять минут. Все остальное в винде проще.
>>1393434Исходники винды тоже частично доступны, и качество кода там не в пример лучше. Плюс есть исходники реактос.
>>1393418Щас бы в 2к19 писать вирусы, не будучи при этом госслужащим, которому за это ничего не будет))>>1393434Один говорит винда проще, ты говоришь, что Линукс. Аргументы есть?
>>1393470Окей, давай пойдем другим путем. Расскажи нам, что ты понимаешь под системным программированием. Ты хочешь писать юзермодные утилиты? Компиляторы? Драйвера? Ты хочешь дергать за ноги малинку из баш-скриптов?анон, который предлагал винду
>>1393462Все равно придется долго сидеть с идой/виндбг. Реактос спасает, да. Майки тоже молодцы, начали пилить сэмплы и доки нормальные.>>1393538Все бабки у майков. А чего ты собрался драйвера-то писать если чего полегче ищешь, лол? >>1393559Смысл писать малварь на современном С++? Только если это не полноценный модульный бот. Если тебе надо, то возьми и сам перепиши, какой-то глупый реквест. А лучше не пиши, набутылят, будешь потом плакать.
Хз че тут за винду топят аноны, как это дерьмо вообще можно учить?Обрыганный и кривой реестр, миллиард API функций, половина из которых имеют по несколько лишних пермутаций. Обрыганское, совершенно конченное строение бинарников и обратная совместимость с никому не нужным говном мамонта. Учить Windows Internals == быть мазохистом
>>1393646Ты так говоришь потому что сам нифига не разобрался. Если бы глубже изучал, то понял бы что все это необходимо и это нифига не костыли, а фичи!
>>1393646> миллиард API функцийВот в линуксе другое дело - чтобы получить карту памяти процесса, нужно всего лишь написать парсер текстового файла. Это гораздо удобнее, чем запоминать всякие там VirtualQuery!> Обрыганское, совершенно конченное строение бинарниковВот в линуксе другое дело - в эльфах есть сегменты и секции, на секции лоадеру насрать, но тем не менее большинство файлов их с собой таскают. Эльфы грузит как бы ядро, но это пока эльфы не с динамической линковкой. В этом случае эльфы грузит (и заново парсит, блять) как бы ld, но как бы не всегда. А формат как бы ОТКРЫТЫЙ и документированный, но сплошь и рядом objdump -d показывает хуй, а readelf так и вообще сегфолт.> обратная совместимость с никому не нужным говном мамонтаВот в линуксе другое дело - чтобы скопировать с машины на машину программу, нужно просто взять исходники и скомпилировать программу на целевой машине. Ой, попутно еще поставить перл для мэйка, графические либы для перла, ффмпег для графических либ, иксы для ффмпега... ой, вот уже и гном на машине завелся. А по-другому никак, совместимость ведь не нужна, в глибц опять поправили оформление кода и бампнули версию - пересобирай свои хелловорлды, тебе заняться нечем. А хочешь ебаться по-особому - попробуй линковаться статически, тебе обязательно понравится!
Я иногда в ахуе. Как люди, пишущие про "МИЛЛИАРД ФУНКЦИЙ" смогли хотя бы основные функции/методы стдлибы своего ЯП запомнить?
>>1393686Ну вот, например, я пишу на сишке больше 15 лет, но до сих пор не помню порядок количеств и размеров в calloc() и fread(). И ведь это всего лишь сишка, где в стандартной либе полторы функции.
Щас бы быдлоспоры по поводу ОС начинать :-)Хочешь заниматься вирусной аналитикой - грызи винду и желательно х86 архитектуру.Хочешь заниматься встроенными системами, мобайл, интернетом вещей - грызи Линукс и желательно ARM архитектуру вдовесок.Для каждой ОС есть своя область применения. Винда вечно будет популярна среди обычных юзеров, ибо это GUI oriented ОС, и 90% вирусов будет писаться именно под винду. Линукс же всегда будет доминировать на серверах и в мобилах+имбэддэд.Точно также и со срачем х86 и ARM. Будем откровенными, ARM никогда не догонит х86 по производительности, а х86 не станет никогда такой же энергоэффективной, как ARM. Два абсолютно разных, несовместимых друг с другом рынка.
>>1393694По-моему базовая либа си последнего стандарта, независимо от компилятора в себе только хедеров штук 20 несёт. А в GCC так вообще сразу ставится glibc с тысячами функций не считая алиасов
>>1393820Ну я преувеличил, конечно, но в стандартной либе математика в основном, и еще wide-функции. А "обычных" часто используемых функций не так уж и много. И все это меркнет в сравнении с крестами или какой-нибудь джавой, которую, кажется, никто полностью не знает.
>>1393686А ты сидел и ботал все это? Ну и лох, иде и гугл все подскажет если надо будет. Гораздо важнее запоминать технологии, как писать код можно, а как нельзя и другие фундаментальные вещи.
Кто-нибудь пытался написать свой протектор? Или все вмпротекту доверяют? Начал писать пакер и понял, что все это бесполезно без нормального антидампа. Но как вообще можно предотвратить дамп? Scylla легко дампит и фиксит дамп на раз два.
А где вообще можно почитать о том, как с нуля написать простую навесную защиту с виртуализацией?https://www.oreans.com/codevirtualizer.php
>>1393908>гораздо важнее Разве что если ты джун-макака в ООО "Вазгенян Мессенджер" и не хочешь получить пизды от амбициозного тимлидера Заура Камазовича. Только, в таком случае непонятно что ты забыл а этом треде
>>1394020С++ уже наизусть весь выучил? Несешь хуйню. Я никогда в жизни не учил питон, яву и шарп, но если что-то нужно написать на этих яп, то беру и пишу без задней мысли с помощью доков. Зачем мне учить все это объясни пожалуйста. Еще раз повторяю, гораздо важнее ботать технологии, а не сам яп.
>>1394024А потом >Сап двач чё за хуйня с этой виндой тупой блин нихуя не понимаю почему мой 2 мегабайтный софт крашит систему
Сап, низкоуровневые. Есть ли какая-то разница в int 20h и 4Ch функции int 21h? По описанию они одинаковые, вроде, есть причины использовать какой-то определенный выход из программы?
Знающие, подскажите. Хочу что бы при запуске мой комп начал выполнять инструкции с флешки и нарисовал что то на экране. Все что я нахожу под древние архитектуры, а хочется по x64
>>1393989Какой толк с дампа, если код виртуализован? Да хотя бы если он просто расшифровывается перед выполнением и шифруется после? Ты должен предполагать, что виртуальное адресное пространство и системные вызовы полностью под контролем реверсера, а всякую антиотладку прикручивать лишь для того, чтобы киддисам не скучно было.>>1394066Да, есть разница. Для int 20h CS должен указывать на PSP, а еще ты не можешь вернуть статус в ОС.>>1394211> хочется по x64 LMGTFY: https://wiki.osdev.org/Entering_Long_Mode_DirectlyУдачи с рисованием на экране без прерываний, в защищенном режиме и без малейшего понимания основ.
>>1390255Спасибо. В визуал студио по аналогии можно такое линкером наколдовать наверное. Есть умельцы итт?Еще интересует сборка TLS без использования CRT, такое возможно вообще?
>>1394307Думаю ты прав. Можешь посоветовать что в приоритете, на что в первую очередь стоит обратить внимание? Виртуализация? На данный момент имею: Обычный pe-лодырь, как вот тут: https://kaimi.io/2012/09/pe-packer-step-by-step-1/Антиотладочные трюки из книги The_Ultimate_Anti-Reversing_Reference 2011 года. Не знаю зачем тратил на это время, абсолютно все обходится плагином Scylla Hide. И парочку трюков с гитхабов/блогов.Убрал все лишние зависимости, все возможные вызовы апи заменил сискалами. Что дальше делать не знаю.
>>1394315>Думаю ты прав. Можешь посоветовать что в приоритете, на что в первую очередь стоит обратить внимание? Виртуализация? Накидайте мануалов по виртуализации кода. Я написал простую VM и ассемблер нескольких инструкций для нее, но дальше не знаю, что делать. Хочу запилить йоба-криптор.
>>1393989>Но как вообще можно предотвратить дамп?Рискну предположить, что нужно пидорасить хэдеры и код распаковщика/декриптора перез передачей управления защищаемой программе. Естессно, это можно зареверсить и дампнуть в момент, когда образ загружен, но хэдеры еще не пидорнуты. Тут в бой вступает антиотладка, обфускация и тд
может кто дать пару подсказок как лучше написать задачу?прога стирающая экран при появлении сочетания латинской буквы "r" после любой цифры
Как во встроенном ассемблере вижуал студии зарезервировать байты более коротким способом, чем __emit, и чтобы инструкции резервирования можно было размещать по нескольку штук на одной строке?__declspec(naked) void Shellcode(){ __asm { pushad call DeltaOffset DeltaOffset: pop ebp sub ebp, offset DeltaOffset lea eax, [ebp + dllPath] push eax mov eax, 0xEEEEEEEE call eax popad push 0xEEEEEEEE retn dllPath: __emit('C') __emit(':') __emit('\\') __emit('\\') }}
>>1394577Попробую сделать макрос #define b(byte) __asm __emitНе знаю, будет ли работать вложенная инструкция __asm внутри другого блока __asm
Как обрабатывать ошибки при заражении файла? В своем инфекторе для удобства я создал структуру:struct FileInfo{....HANDLE hFile;....HANDLE hMapping;....LPBYTE hView;....DWORD dwFileSize;};Функция открытия файла возвращает эту структуру. Если hFile == INVALID_HANDLE_VALUE, бросать исключение или возвращать пустую структуру?
>>1394602Поделитесь своими вкусами и мнениями об исключениях в лоу-лвл коденке. Нужны ли они или лучше писать goto cleanup как писали деды?
>>1394602>заражении файлаТы в нулевых застрял? >бросать исключение или возвращать пустую структуруВозвращать NULL.>>1394623Как эти вещи вообще связаны? Исключения нужны, без них никак. >>1394577Ты что делаешь вообще? Уверен что хочешь писать путь как C:\\ ? Я бы не стал.
Я пока тут самый крутойhttps://www.youtube.com/watch?v=tGFOvuOxwuUНаписал крутую прогу, которая сишнику даже не приснится.
>>1394675Подтерся твоей прогой и пошел спать, завтра продолжать строить реальные решения для бизнеса, чем заниматься ассемблированием своего очка.
>>1394311> В визуал студио по аналогии можно такое линкером наколдовать наверноеСложно. Вероятно, нужно слинковаться с old-style импорт-либой или с либой, включающей в себя old-style импорт. Других идей у меня нет.> TLS без использования CRT, такое возможно вообще? Да, гугли магический символ __tls_used.>>1394315>>1394445Никогда не писал протекторы, но как бы бери llvm ir, или бери capstone и дизассемблируй, превращай инструкции в инструкции своей вм, все в твоих руках. Алсо, погугли мануалы и сдк коммерческих протекторов. Например, как там вызовами функций протектора "размечается" защищаемая функция.>>1394509> пидорасить хэдерыЛюбые хедеры можно пересоздать с нуля. Например, распакованный регион адресного пространства сдампить одним куском и сделать одной секцией. Да и много ты не напортишь. Чтобы системный лоадер работал, экспорты должны быть на месте, чтобы ресурсные функции работали, ресурсы должны быть на месте, и так далее.>>1394577> во встроенном ассемблереНинужно, ниподдерживается, делай отдельный асм-файл.>>1394602> ....HANDLE hFile;> ....HANDLE hMapping;Нинужно. Можно закрывать оба сразу же, как только создал вью.> заражении файлаРепорт за малварь.>>1394623Да, ничего плохого в goto в данном случае нет.>>1394653> Исключения нужны, без них никакКак это никак? setjmp лол.
>>1394696>Любые хедеры можно пересоздать с нуля.А если пидорасить ОЕР еще при упаковке и восстанавливать в TLS коллбэке и потом еще пидорасить CRT startup в отдельном треде после запуска? >Чтобы системный лоадер работал, экспорты должны быть на месте, чтобы ресурсные функции работали, ресурсы должны быть на месте, и так далее.Так речь же идет об упаковщике, как я понял. Распаковщик берет на себя задачи системного лоадера же. Он же может и пидорасить что нибудь после того, как отработает, не?
>>1394828> Он же может и пидорасить что нибудь после того, как отработает, не?Разве что импорты, но (в простом варианте) IAT все равно останется, и останется одним куском, любой дампер импорты восстановит. Экспорты окончательно ломать нельзя: другая длл сделает GetProcAddress(GetModuleHandle("твоя_dll_или_exe"), "func"), а экспорты распидорашены. Ресурсы ломать нельзя: ты сам делаешь DialogBoxParam, а ресурсы распидорашены. Это все решаемо, конечно.> CRT startupПо-моему, Themida раньше так делала. Да и вообще, можно просто взять у нее чеклист: https://www.oreans.com/winlicense_features.php
>>1394847Можно хоть весь хэдер затереть, если он не будет использоваться, сохранять его в каком-нибудь месте и восстанавливать по-надобности.>>1394830Что за бред? Секция TLS ни о чем не говорит, это стандартная фича винды, ею пользуются почти все продвинутые десктоп приложения.Вообщем анон выше прав, трюки все эти хорошо, но если вместо кода будет мусор, на разбор которого уйдет месяцок другой, вот это будет действительно неприятно ковырять крэкеру.
Аноны, книга вышла пикрилейтед. Кто-нибудь знаком с творчеством сей авторов? Стоит брать, как считаете?
>>1394681Ой блять, реальное решение для бизнеса у него, у меня вот сейчас реально реальное решение для бизнеса. Высокоуровневые просто обосрутся от такой задачи, она простая но они обосрутся. А если не обосрутся, то всё будет дико тормозить.Но мой пост был не о этом. А о том что ассемблер нужно !обуздать!. Ассемблер не хочет чтобы его изучали, он хочет работать.
>>1394957В результате моих действий, в конце-концов, пострадают плохие люди, плохие иженеры(и не иженеры вовсе). Которые сейчас потирают свои грязные ручёнки в ожидании большого(огромного) куша от моей конторы, но скоро им прийдёт сообщение: в ваших услугах не нуждаемся. Ниже я опишу что такое плохой инженер.Плохой инженер не делает технику, не ремонтирует технику. Плохой инженер занижает цену на ремонт, потому что он, сука хитрая, просчитал что ему выгоднее из 10 аппаратов сделать 3 с очень лёгкой поломкой, а к остальным найти отмазку вроде Ремонту не подлежит. СУКА, КАКЖЕ Я НЕНАВИЖУ ЭТИХ ПИДАРЮГ.И сейчас эти пидары потюрают свои ручёнки, ага блять.. нашли спасательную ниточку в период кризиса, который они же и создали. Соснут хуйца, нехуй было меня злить.
>>1394982Ахаха, всегда знал что реверсачеры поехавшие.>Плохой инженер занижает цену на ремонтНо вот тут согласен.
>>1395421Найди что-нибудь посовременнее. Книги Криса - классика, но только потому что в те времена другого не было. Эти книги состоят из ошибок, петросянства и базовой информации, в которой автор сам поверхностно разобрался во время написания книги. Читать Криса стоит, надеяться что-то понять, читая только лишь Криса - глупо.
Аноны, а почему в треде нет движухи по поводу ARM и реверсинга мобильных приложух/мобильных малварей и встраиваемых систем с выходом в тырнет? Годная тема же.
>>1395483В общем, недавно понял, что я не люблю винду, а люблю линукс, плюс узрел ARM асм краем глаза и он мне понравился. Подумываю вкатиться в это дело как следует.Хотел спросить знает ли кто-то какие-то хорошие источники почитать/посмотреть. На инглише или русском, желательно офк на инглише. Кроме Linux internals, это и ежу понятно.В общем, знатоки мобайл секьюрити и имбэдэда, если таковые имеются, закидайте меня годнотой плиз.
>>1395494>В общем, недавно понял, что я не люблю винду, а люблю линукс, плюс узрел ARM асм краем глаза и он мне понравился. Подумываю вкатиться в это дело как следует.>Хотел спросить знает ли кто-то какие-то хорошие источники почитать/посмотреть. На инглише или русском, желательно офк на инглише. Кроме Linux internals, это и ежу понятно.>В общем, знатоки мобайл секьюрити и имбэдэда, если таковые имеются, закидайте меня годнотой плиз. Проблема арма в том что он наглухо проприетарно огорожен и в большинстве своих реализаций, из исключений разве что школомалина да микроконтроллеры на Cortex M. Кроме того арм очень многое не прощает в многопоточности что прокатывает на шинтеле по причине отсутсвия инвалидации кеша по умолчанию. SIMD там по прежнему с заебами "перед использованием включить те и те флаги и не забыть сохранить" аля MMX/3DNow.
>>1395588> Как пользоваться сэмплами на арм асме из книги Юричева? Чем компилить сорцы под виндой? https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
>>1395590https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
>>1395589> Проблема арма в том что он наглухо проприетарно огороженЭто не более-менее решаемая проблема. Чаще всего можно нарыть мануалы, а то и целые сдк у китайцев. Часто производители SoC закупают IP у одного и того же разработчика (тот же Synopsys DesignWare например), и поэтому можно использовать чужие мануалы, ну и в крайнем случае, можно худо-бедно отреверсить интересующие вещи.
Поясните пж, как вычисляется псевдокодом иды глобальная переменная класса относительно GOT (Global Offset Table). Xrefs не видит, а в псевдокоде есть. В процесс включены операции со Stack Pointer'ом вида: LDR R12, [SP, #0x1A4+var_190]. Научите считать эту дичь.
>>1396674Ну вот смотри. Вся адресация очень простая: в GOT при загрузке кладутся правильные (абсолютные) адреса всякой хуйни, ты знаешь офсет GOT относительно своего кода (при линковке впатчивается линкером), но ты не знаешь, куда именно загрузили твой код. И ты идешь с конца: читаешь из PC адрес кода, вычисляешь относительно этого адреса адрес GOT, читаешь из нужного элемента GOT абсолютный адрес данных, работаешь с этими данными по этому адресу.По 004D9E14 вычисляется абсолютный адрес GOT: PC + офсет. Не забывай, что инструкции, читающие PC, получают не адрес текущей инструкции, а адрес текущей инструкции + 8, потому что конвейер, потому что ARM. Т.е., чтобы посчитать адрес GOT относительно PC, наш офсет должен быть равен $_GLOBAL_OFFSET_TABLE_ - (0x4D9E14 + 8), мы его берем из R8, а положили его туда по по 004D9E04 (сравни - офсет правильный). В результате после выполнения R8 = PC + R8, в R8 у тебя адрес GOT.Дальше по 004D9E10 в R3 грузится смещение нужного элемента относительно начала GOT, в котором IDA облажалась (как обычно). Тыкни H по этому литералу, чтобы увидеть просто число, потом тыкни Ctrl+R по нему же (если ничего не произойдет - сходи в конец функции и поищи этот литерал там). В диалоге Reference information пересчитай адрес относительно GOT: type=32-bit full offset, base address = $_GLOBAL_OFFSET_TABLE_ (или адрес GOT числом напиши), галки снять, target address = 0xFFFFFFFF. После этого во втором операнде LDR ты должен заметить правильное имя переменной (имя_ptr). Если видишь что-то типа "dword_abcd - $_GLOBAL_OFFSET_TABLE_" или "off_abcd - $_GLOBAL_OFFSET_TABLE_ " - Enter по имени, и переименовываешь вот это говно_abcd в имя_ptr, т.е., чтобы оно выглядело как имя_ptr dcd имя.Ну и дальше. По 004D9E28 R3 (офсет в GOT) сохраняется на стеке (компилятор - говно). Дальше по 004D9E7C он обратно читается в R12. Т.е., в R8 GOT, в R12 офсет внутрь GOT, значит по 004D9E90 в R10 из GOT (R8 + R12) читается адрес переменной. Ну а следующие две инструкции пишут по этому адресу и еще рядом. Ну и раз это называется screen size, то очевидно это структура из width и height, тыкаешь Enter на k_screenSize, Alt+Q, все дела.
Хочу написать свой дизассемблер по статье https://habr.com/ru/post/128042/ и интел мануалу. Посоветуйте простые реализации дизасма, чтобы можно было изучать теорию и смотреть, как дизассемблирование реализуется на практике. Я нашел крутые вещи типа VirXdasm (дизассемблер, который весит 333 байта), но там очень хардкорные алгосы.
>>1396787Крис Касперски тоже дает много теории, а практики у него нет. Он не показывает, как строятся таблицы, как происходит поиск в них и как обрабатываются составляющие части инструкции. Но излагает он более понятно.
>>1396683Черт, гениально. После настройки в Reference information пойнтер сам обозначился именем, гайд однозначно золотой. А про width и height мне известно. Спасибо за столь развернутый ответ, однозначно сохраню его.
>>1396787Ну короч берешь Intel SDM, там в конце 2 тома таблицы есть. Ты их копипастишь, разбираешь условные обозначения, разбираешь формат инструкций (в начале 2 тома) - получаешь дизассемблер. На недовасме поищи "Заклинание кода".
>>1396917Я хочу научиться писать оптимизированные алгоритмы, а не те, которые писал Зомби при помощи огромного switch case http://www.rohitab.com/discuss/topic/36031-defs-lde/
>>1396946>Заклинание кода"У буквы "заин" долгая и богатая история. Многие поколения магов пытались определить, в чем заключается ее сокровенный смысл. Некоторые утвеждали, что она несет врагам смерть и страдания от разящего клинка, иные указывали на ее форму и говорили, что этот разящий клинок применим далеко не всегда и не везде, а только в некоторых, хотя и весьма ответственных операциях. "Хорошее начало дизассемблирования, лол
>>1396946Краткий гайд.1. Делаешь запрос в гугле а не на двачеfastest disassembler library2. git clone...3. Копаешься в тысячах строк кода сколько тебе угодно4. Понимаешь, что лучше ничего придумать нельзя, одному уж точно5. Пользуешься готовыми решениями и не выебываешься.
>>1397277> Пользуешься готовыми решениямиКапстоун нельзя назвать быстрым и тем более компактным решением. Медиана не поддерживается. Что-то другое подскажешь?> лучше ничего придумать нельзяРасскажи это авторам вирусов из 90х, у которых дизассемблер длин с таблицами занимал полкило.
>>1396787загляни в гит эмулятора https://github.com/Ryujinx/Ryujinx красиво и просто написан на шарпе. сделаны таблицы для опкодов и т.д.
>>1378386>Крис дважды по заданию шерифа участвовал в платных боевых операциях по задержанию бандитских группировок. В первой операции четверо ребят вместе с ним, не служивших в армии, брали банду из шести вооруженных человек. Крису пришлось первый раз в жизни, по необходимости, стрелять в человека. Все шестеро были задержаны.Истории уровня /b какие-то..Хотя я конечно могу и ошибаться.
Меня одного пугает Китай? Китайцы спокойно постят в своих блогах о том как пилят малварь, обходят разные продукты безопасности, буткиты, руткиты, анальные зонды. И их даже никто за это не бутылит! Информация размещена в свободном доступе, на всяких новостных порталах аля наш XAKEP. Что за пиздец? У них такое законом не запрещено?
>>1399038разрабатывать малварь не запрещено законом, запрещено распространять с целью порчи/кражи данных.
>>1399038>У них такое законом не запрещено?Так они же буржуйские программы вскрывают. За вскрытие программы из КНР их будет ждать что похуже побольше, чем бутылка.
Сап,реверсачесть сэмл app. any.run/tasks/d55 93b4d -1911- 4d4f-b60d-6eff182efd9b уберите пробелыНакрыт KoiVM+confuserЧем вскрывать и как?никаких идейНа tuts4you 1.5 упоминания и то вскользь
>>1399497dnspy, ded4dot, любой анпакер для кофусера с гитхаба.В чем проблема-то? Ты дебагером пользоваться умеешь?
>>1399663де4дот вообще говно ебанное и виртуализацию не осилитв днспае его нормально не выходит продебажить
>>1399732Если ты не можешь .net-помойку дебажить, то у меня для тебя плохие новости. Кроме того, зачем тебе девиртуализировать приложение? У тебя задача какая?
Чуваки, начал читать книгу Ирвина, в ней используют masm, а у меня линукс. Как быть, что посоветуете? Может выкрутиться как то можно, чтобы запустить masm на линуксе?Книга нравится, кроме ассемблера рассказывает подробно про процессор. Поэтому другую читать нехочется. Остальные мне показались слабенькими. Может я не прав и есть крутые книги?
Реверсач, а нахой юзать бесплатную кастрированную айду, если есть гуй Каттер от радар2 с таким же функционалом, только бесплатный и поддерживающий очень много архитектур?
>>1399874>нахой юзать бесплатную кастрированную айдуДействительно, нахой? Есть же торрент.Кстати, пароль от архива с 7.2 ещё не слили?>с таким же функционаломВ голосину.
>>1399847Зачем тебе запускать masm на линуксе? Возьми fasm или nasm, почитай про различия в синтаксисе.>>1399938> В голосину.Присоединяюсь.
>>1399964fasm мощнее, nasm больше подходит для линукса, поддерживает привычную отладочную информацию без костылей.
>>1399793>>1399863хотя даже исходники не нужны,нужно найти порядка 5 разных стрингов и заменить их значения на свои нужныев любом случае надо как-то снять этот KoiVM
Вечер в хату!Прохожу тут курсик по radare2 (да, я вижу по шапке, что он тут не в почёте, но мой вопрос не совсем по нему) - https://github.com/s4n7h0/Practical-Reverse-Engineering-using-Radare2Там всё на элементарном уровне освоения команд, но вот с пятой лабой янихуянепонел. Задание "найти шелкод и понять что он делает". Ну символ obj.shellcode я вижу. Опкоды по нему парсятся в какое-то говно непонятное - https://pastebin.com/cZxZtJUtЧЯДНТ?
>>1400603Спасибо!сссука всё-таки дело в радаре оказалось..."e bin.strings=false" сделал, конечно строковые константы при этом отвалились. Как реинтерпретировать конкретные байты так и не ясно.
>>1400627Берешь иду, видишь свою "строку", выбираешь ее мышью или стрелками, нажимаешь на клавиатуре C, профит. Берешь r2, нажимаешь кучу кнопочек, чтобы попасть в visual mode, куда-то все же попадаешь, теряешься в набегающих домиках и гей-параде из разноцветного ASCII-арта и цифр, но героически нажимаешь D C, тоже профит (или нет?).
>>1400829Да, действительно. Хотя ни в одном cheat-sheet или quick start это не упоминалось, да и не трогал я этот visual mode.За пол дня конечно хер столько команд и опций запомнить.
В Си треде не отвечают. Продублирую сюда.Аноны, пишу драйвер, использую стороннюю либу при инициализации, далее ею не пользуюсь, а весит она знатно, аж целый метр. В обычном приложении подгружаю длл по-надобности, потом выгружаю. В ядре как эти дела делаются? Неужели придется отдельный драйвер пилить, его дергать и потом выгружать?
Аноны, приветствую.Хочу научиться писать скрипты в айде для автоматизации статического анализа, слышал годная тема, особенно, если прога обфусцирована или же просто слишком грузная для ручной суходрочки.Посоветуете что почитать или посмотреть. До этого писал скрипты только на баше, но всё же более или менее базовые.
>>1403341> что почитать1) Любую книгу по питону.2) idaapi.py/idc.py/idautils.py3) Исходники проектов типа flare.Это просто чтобы научиться писать скрипты хоть как-нибудь. Плюс теория. По теории не подскажу.
Сап, Антош. Хочу инжектить свою DLL во все виндовые процессы уровня пользователя в т.ч. svchost на постоянной основе на этапе их создания. Предусловия - полный физический и административный доступ к машине. ОС - шиндошс 10 х64. Я попробовал appinit_dlls, но оно работает только для того, что грузит user32.dll (очевидно). Как я понял, SSDT и вообще все фишки связанные с ядром соснулей, ибо требуют включения testsign для дров. Вроде есть варианты через колбэки и APC - это то, что мне надо? Где почитать?
>>1403502> AT&T кажется логичнейА тебе не кажется нелогичным, что под все остальные архитектуры, кроме интел, у gas сразу же, по умолчанию нормальный порядок операндов?
>>1403497Судя по твоему набору слов, ты понятия не имеешь что делаешь. Учи архитектуру ОС. Где ты вообще этот баянистый способ реализации руткита вычитал? Ему больше 20 лет.
>>1403608> Судя по твоему набору слов, ты понятия не имеешь что делаешь.Как минимум общее представление имею, просто с конкретно такой задачей впервые столкнулся.> Учи архитектуру ОС.Пустые понты кидать не хочу, поэтому скажу, что в целом в курсе, могу не знать каких-то тонких деталей, необходимых для данного случая.> Где ты вообще этот баянистый способ реализации руткита вычитал? Ему больше 20 лет.Который именно? В интернете, само собой. Если кинешь ссылку на что-то более актуальное - буду благодарен.
Как ОС работает с dll/so в винде/линуксе при загрузке в процесс в случае системных либ типа kernel32.dll и пользовательских типа libmylib.so? Она создает копию либы в виртуальном пространстве процесса или создает отдельный процесс под эту либу (какой нибудь dllhost.exe/svchost.exe) и пользовательские процессы просто напрямую смотрят туда? Если два процесса импортируют одну и ту же либу, если один процесс в ней сделает детур на свой код, то повлияет ли это на второй процесс?
>>1403748> Как ОС работает с dll/so в винде/линуксе при загрузке в процесс в случае системных либ типа kernel32.dll и пользовательских типа libmylib.so? Она создает копию либы в виртуальном пространстве процесса или создает отдельный процесс под эту либу (какой нибудь dllhost.exe/svchost.exe) и пользовательские процессы просто напрямую смотрят туда?Первое, только не копию, а отображение с коровой (COW). Это если очень по-простому. В линуксе нет "системных" либ, в винде это только ntdll.dll (kernel32.dll нужна только Win32 процессам).> Если два процесса импортируют одну и ту же либу, если один процесс в ней сделает детур на свой код, то повлияет ли это на второй процесс?Опять же COW, иначе каждый мамкин хакер загружал бы в память OpenSSL и отключал бы шифрование во всей системе.
>>1403765Прочитал про copy on write. А если у либы есть состояние и она сама в себя пишет при вызове определенной функции, чтобы его изменить. Что произойдет, если процесс А вызовет эту функцию? Изменение состояния либы будет заметно в процессе Б, использующем эту же либу? И еще, если ОС копирует в VM процесса либу во время первой записи, то эта либа как то хостится ОСью? Для этого есть какие нибудь системные процессы, или это где то в кишках ОС зарыто и из пользовательского пространства до туда не добраться?
>>1403771С линуксами вроде понял. При загрузке процесса делается мемори мап на исполняемую и readonly секции shared object'а с дальнейшим копированием в VM space процесса при записи благодаря CoW, а writable-секции так и вовсе при запуске копируются в адресное пространство запускаемого процесса если верить гуру с stackoverflow. А что с видновсами? Я в эльфе не шарю, но вот в РЕ знаю, что file alignment и virtual alignment могут быть (и КМК, почти всегда) разные, там так просто файл не замапишь. Что в винде то происходит?
>>1403784> Что в винде то происходит?Да плюс на минус то же самое, с другими названиями и реализациями. В теории и архитектуре ОСей последние лет так 30 если не 50 никаких существенных изменений не происходило, и старый добрый Таненбаум до сих пор прекрасно все описывает. Совершенствуются конкретные механизмы, да - за ними тебе к Руссиновичу и в исходники ReactOS.
>>1403765> в винде это только ntdll.dll (kernel32.dll нужна только Win32 процессам).Кстати ntdll.dll не грузится в пико процессы.
>>1403700Гугли cплайсинг.>>1403748У тебя задача какая? Ты хочешь узнать можно ли похукать все глобально? Можно, но без танцев с бубнами не обойтись.>>1403765>только ntdll.dll Если процесс wow64, то еще 4 либы сверху, насколько я помню.>>1403928IDA Skins гугли.>>1403916Выглядит как обычный конфусер. Гугли de4dot.
>>1404251А ты думал тебе чистенький сурс вытащат? Нет таких инструментов. Вообще пиздуйте в C# тред со своими кофусерами, заебали срать здесь высокоуровневой парашей.
Объясните, пожалуйста, начнающему ассемблерщику мне. Я не понимаю. В Long mode (x86-64) опреранды могут задаваться их линейными адресами (в качестве immediate-аргументов в командах). Но ведь при загрузке требуемые данных (которые мы хотим адресовать) могут быть размещены достаточно произвольно - страница с данными может быть в разных местах памяти. И адрес данных будет меняться от загрузки к загрузке. А значение immediate-аргумента не изменяется. Как же инструкция доберётся до нужных данных? Видимо, я что-то упускаю. Извините, за корявую формулировку.
>>1405062Не совсем понял, о чем ты конкретно. Нарисовал бы пример что ли.> страница с данными может быть в разных местах памятиТаблица страниц.> адрес данных будет меняться от загрузки к загрузкеВместе с адресом кода. RIP-relative адресация, редко (гораздо реже, чем в 32-битном режиме) таблица поправок.
>>1405083Ну вот например.data: dd 123456789h...mov rax , [data]Место данных data в памяти определяется во время загрузки, а immediate-аргумент команды mov ([data] - некоторый адрес) фиксирован (при трансляции, видимо).
>>1405174Какая оптимизация? Ты уверен, что хорошо понимаешь, как действуеет ассемблер, и для чего он применяется?
>>1405146Сосут по сравнению с чем? И что в них такого нового появилось за последние 30 лет?>>1405152Ну вот, оно сассемблируется с ошибками, потому что ты кладешь дворд в rax, а еще потому что 123456789h не влезает в dd с вычислением адреса относительно адреса следующей инструкции, т.е. будет:mov rax,[rip+(data-next_instruction)]next_instruction:...data dq 123456789hВот если бы у тебя положение секции данных менялось относительно кода, то при загрузке пришлось бы патчить адреса.>>1405177У асмов есть оптимизация. Например, можно воткнуть длинный jmp, а можно короткий. Это работает. Остальную оптимизацию делает приставка к клавиатуре.
>>1405180Говорят, что кур доят. Автоматическая векторизация по-прежнему сосет. Алиасинг в си/си++ по-прежнему создает проблемы. Приставка к клавиатуре по-прежнему рулит. Только она медленная и дорогая, поэтому ей пользуются относительно редко.>>1405181nasm/fasm/gas, похуй.
>>1405182А есть какой-нибудь кроссплатформенный машинный код?Или кроссплатформенность начинается только с АСМа?
>>1405179>относительно адреса следующей инструкцииТо есть абсолютных адресов в immediate-аргументах не бывает?>Вот если бы у тебя положение секции данных менялось относительно кодаА что если они загружаются (или даже транслируются) по отдельности? Что, вообще с раздельной сборкой?>патчить адресаКак это делается?
>>1405179Кстати адресация в immediate-аргументах в виде (сегментный регистр + immediate-смещение) имеет смысл в Long mode?
>>1405200>кроссплатформенный машинный кодСухая вода? Выбери одно или машинно-специфичный язык (машинный код) или код не зависящий от платформы ('машины').
>>1405205> То есть абсолютных адресов в immediate-аргументах не бывает?Ну хватит уже это immediate называть. immediate - это значение, которое ты непосредственно используешь для чего-то, константа, число (в mov eax,1 единица - просто число), поэтому оно immediate и называется. А ты говоришь про офсеты.Бывают абсолютные адреса. Эффективная адресация осталась, ты можешь не использовать в ней scale/index/base, оставив только 32-битное смещение, тем самым получив абсолютный адрес в пределах первых 4 гб. Алсо, есть mov rax с 64-битным офсетом (да, только для rax).> А что если они загружаются (или даже транслируются) по отдельности?Линкер, когда занимается связаванием (link) символов, как раз патчит все ссылки на символ так, как будет в памяти.> Как это делается?Ну формируется список адресов (у линкера или если мы про рантайм - то в исполняемый файл кладется) и типов поправок (ну где относительный адрес, где абсолютный, где только кусок какой-нибудь, там дохуя вариантов, особенно для некоторых особо хитровыебанных процессоров). Ну и код (линкер или загрузчик) идет по списку и что-то делает в зависимости от типа. Например, в 32-битном коде для mov eax,[data] линкер положит в инструкцию правильный адрес data, а если у нас дллка виндовая, которая загружена не по своему предпочтительному адресу, то загрузчик прибавит к адресу data внутри инструкции разницу между предпочтительным адресом загрузки дллки и фактическим. Ну это самые простые примеры.>>1405209> сегментный регистр +Для fs/gs сохранилась более-менее, для остальных сегментных регистров база из дескриптора не учитывается и считается равной нулю.>>1405232Считать ли x86-код кроссплатформенным, если его раньше всякие трансметы микрокодом выполняли?
>>1405248> есть mov rax с 64-битным офсетом (да, только для rax)В смысле, для al/ax/eax/rax, и, конечно же, не только в регистр, но и обратно, из регистра в память.
>>1404267И ведь никто не помог! Решение: поместить либу в отдельную секцию и пометить ее как сбрасываемую. После инициализации драйвера, загрузчик винды сам её выгрузит.
>>1405248>Ну хватит уже это immediate называть.Извините ещё раз за корявость формулировок. Ты прав. Это называется "смещение в команде".>Линкер, когда занимается связаванием (link) символов, как раз патчит все ссылки на символ так, как будет в памяти.А если без линкера? Что в случае сборки в бинарный файл?>Считать ли x86-код кроссплатформенным, если его раньше всякие трансметы микрокодом выполняли?Думаю, сейчас нет. Машинные инструкции и сейчас в микрокод транслируется процессором. Но ведь программисту микрокоды недоступны. И машинный язык однозначно определён архитектурой ЦП. Нет тут кросплатформенности (в нынешних x86 процессорах).
>>1405263> А если без линкера? Что в случае сборки в бинарный файл?Не понял вопроса. Если у тебя ассемблер, нет секций и бинарник на выходе (допустим, fasm и format binary), то ассемблер все равно делает то же самое, что и линкер внутри себя, когда назначает адреса меткам и впатчивает эти адреса в инструкции.> Но ведь программисту микрокоды недоступныЭто пока процессор не твой собственный. Берешь, значит, много-много баксов и подходящую по размеру FPGA... Хотя вообще-то я пошутил.> И машинный язык однозначно определён архитектурой ЦПНабор команд в x86 уже давно имеет мало отношения к архитектуре, это просто абстрактная хрень, которая живет лишь из-за необходимости поддерживать совместимость.
>>1405232>Сухая вода?https://ru.wikipedia.org/wiki/Novec_1230Я всё понимаю, но разве нельзя сделать такую штуку, которая будет некоторые кроссплатформенные команды перефигачивать под конкретное железо и ОС?Полно их.Только тут разница в низкоуровневом программировании, ниже, чем у АСМа.
Buf1 db 11Len1 db ?Opnd1 db 12 dup( ? )Buf2 db 11Len2 db ?Opnd2 db 12 dup( ? )Res db 12 dup(' '),'$'codesegstartupcodepush DSpop ES BEGIN:;Ввод первого слагаемогоB1: lea DX, Buf1mov AH, 0Ahint 21hcmp Len1, 0je B1Помохите пожалуйста.Переписываю потихонечку чужой код и не могу понять для чего тут Len1. Точнее я знаю, он туда засунет в последствии кол-во символов в строке.Но что означает это?cmp Len1, 0je B1Зачем сравнивать Len1 с нулём, и в случае равенства или нуля переходить обратно на начало?Что это за колдунство?В лен1 же нихуя нет.Зачем он сравнивает?
>>1405263>>1405271А сейчас на микрокоде писать нельзя проги?А как обстоит дело и машинными кодами на Видеокартах?И есть ли под них свой АСМ?
>>1405295> Зачем он сравнивает? Ну видимо чтобы запросить ввод повторно, если юзер просто нажал Enter.>>1405296> А сейчас на микрокоде писать нельзя проги?У интела микрокод не документирован, обновления зашифрованы. Максимум, что есть - это статьи про какой-то очень древний AMD, у которого микрокод еще шел без шифрования.>>1405302> Так покажи примерчик хоть.mov ah,09himov dx,_textint 21hint 20h_text db 'Content-Type: text/plain',13,10,13,10,'Hello, world!$'
А что на видеокарты до сих пор не завезли кроссплатформенный Ассемблер?У Нвидиа свои языки, у АМД свои.Модели видях ещё новые нужны для новых языков.Херня какая-то.
>>1405304> Ну видимо чтобы запросить ввод повторно, если юзер просто нажал Enter.Пасиба. Понял. А если буковку ввести? Он сожрёт и пропустит дальше по коду?
>>1405312А если буковку ввести, то во втором байте буфера, т.е., в Len1 уже не будет 0 (а будет 1, например), сравнение не выставит ZF, je не сработает.
>>1405309Речь идёт о программировании на машкоде, а не о перегоне в него из других языков, улавливаешь?Так что твой АСМовский сервак ничем не особо не отличается от сервака на Раби. Только побыстрее работает в десятки раз и всё.
Бля, не вижу смысла учить ASM из-за такой хуеты с GPU.Лучше тогда C/C++ взять, а GPU хуярить на универсальном OpenCL.
>>1405335Нет, не улавливаю. Хочешь - бери таблицу опкодов и пиши, только кроме кучи дополнительной ебли это ничем не будет отличаться от использования ассемблера. Никаких дополнительных преимуществ, ничего такого, что нельзя с точностью до бита воспроизвести из ассемблера.>>1405350> не вижу смысла учить ASMНе учи, разрешаю.
>>1405294Стандартная библиотека называется. Ты из какого века вылез-то? У асма никогда не было кроссплатформенности.
>>1405429Да это не троллинг. Сюда действительно иногда дебилы первокурсники из C/C++ тредов закатываются и начинают тупить. Тут только ОП-хуй который с сагой пишет всегда адекватный.
>>1405423Тогда почему сразу С/С++ не взять?Ебли же меньше, а скорость работы сложных программ уже выше, потому что не будешь вручную оптимизировать каждую строчку на АСМе.
>>1405451Ты кроссассемблирование/кросскомпилляцию с кросплатформенностью (языка машинного) не путаешь?
>>1405450> Тогда почему сразу С/С++ не взять?Я для тебя специально пояснил: между машинным кодом и ассемблером разница - только ебля. Между ассемблером и более высокоуровенвым языком разница в огромном количестве возможностей и полным контролем над кодом. Ну почти. В ассемблерах обычно ты не можешь выбирать из разных вариантов кодирования одной и той же инструкции, но ты всегда можешь написать под это макрос, если это почему-то важно.> скорость работы сложных программ уже вышеЗависит только от тебя. Не от компилятора, а от тебя. И нет, причина использования высокоуровневых языков - скорость разработки, а не работы. Модификация оптимизированного ассемблерного кода может закончиться переписыванием с нуля.> почему сразу С/С++ не взять?Если ты не пишешь какую-нибудь жестокую математику для SIMD, хитровыебанный JIT, низкоуровневые процедуры для своей ОС типа сохранения/восстановления контектста или обработчика прерывания который все равно выполняет только самую грязную работу, а потом вызывает код на Си - без вариантов стоит брать нормальный высокоуровневый язык, а ассемблер использовать там, где он действительно необходим.>>1405438> ОП-хуй который с сагойЯ не оп.
Хочу заняться фазингом. Сейчас у каждой второй десктоп приложухи драйвер под копотом, никто писать их толком не умеет, багоров куча. Подводные?
>>1405304>У интела микрокод не документирован, обновления зашифрованыЗашифрованы чем, универсальным интеловским ключом? Почему тогда до сих пор никто не вытащил из кремния этот ключ электронным микроскопом и не выложил в паблик? Я не верю, что там в каждом камне физическая защита уровня смарткарт на всем УУ.
>>1405481> Зашифрованы чем, универсальным интеловским ключомДа, там предполагался 2048-битный RSA. И там несколько блоков под разные семейства с разными ключами:https://www.dcddcc.com/docs/2014_paper_microcode.pdfhttps://www.emsec.ruhr-uni-bochum.de/media/emma/veroeffentlichungen/2017/08/16/usenix17-microcode.pdf> не вытащил из кремния этот ключ электронным микроскопом и не выложил в пабликРазмер кристалла, техпроцесс. Это тебе не R3051 реверсить.
>>1405485Ну у того же AMD есть такие возможности точно. Могли бы отреверсить и выложить, чтобы мимокрокодилы там регулярно находили всякие непотребства и опускали Intel. Гораздо дешевле, чем вкладываться в рекламу и всякое такое.
>>1405472Я так нихуя и не понял.АСМ зачем нужен, если скорость почти та, что на С, но писать дольше и сложнее?Если сравнить Питоноговно с этими языками, так он в десятки раз медленней работает, тут всё предельно ясно.Но вот с выбором АСМ вместо С или плюсов не ясно.
>>1405663На АСМе пишут куски кода в системах реального времени и ОС, в кодах вирусов, в софте встроенных систем. На чистом АСМе уже давно не программируют, уже как лет 40 точно.Уметь читать чистый АСМ нужно реверсерам. Статический анализ = чтение чистого ассемблерного листинга с целью восстановить исходный алгоритм функции/блока кода/всей программы, нужное подчеркнуть. Для чего? Чтобы написать похожую программу, написать кряк для нее, найти дыру в безопасности для тех или иных целей и т.п. Нужное подчеркнуть, как говорится.
Можете обьяснить BCD-числа и их умножение.Такая ебанина пиздец. Мама я у них поел просто.Точнее алгоритм перевода в неупакованный bcd у меня есть, вот он. https://pastebin.com/t4Kgs8hYНо алгоритм не мой, я черт его знает что там происходит. И умножение я хуй знает как сделать. Умножение через мул как то ниполучаицца. Там сначала результат залетает в АХ, потом надо аам делать ради (исправления чего-то?), и результаты раскидываются по двум регистрам.Теперь сразу два регистра выводить?Йа тупой, арррр.
>>1405663Он нужен для выполнения специфических задач, где нужен прямой доступ к регистрам, например. Короче с асмом дела обстоят, как в том самом анекдоте: Ньюфаги не знают, олдфаги не помнят.
Народ, на каком АСМе можно написать программу, которая будет работать на 32 и 64 архитектуре, Intel, AMD, ARM, а также Винде, Линуксе, Маке и желательно Андроид с Айфоном?
>>1405861Он, конечно, троллит, но здравое зерно в этом есть. https://www.slideshare.net/ShaneWilton/one-shellcode-to-rule-them-all Подобные вещи сделать можно, но вот сделать именно программу будут мешать отличия файловых форматов.
>>1405743> в кодах вирусовРазмечтался. Сейчас вирусы пишут на Node.js и тянут за собой хром с драйвером контроллера xBox.
>>1405871Ну, если он работает в реальном режиме и загружается с дискеты - нет. А иначе дергать ось тебе таки придется.
>>1405879А что компилятор не может на себя взять работу с АПИ, чтобы можно было сразу для любой оси писать?
>>1405881А компиляторов-то и нет. Можешь хоть в хекс-редакторе писать на асме, хотя это и несколько сложновато. Ну, com уж точно можно.
>>1405886А универсального апи вообще нет. Оно либо не универсальное, либо ограниченное и не позволяет пользоваться всеми возможностями ОС.
>>1405890Аналогично. Стандартная библиотека не покрывает всего. Хотя странновато, что потоки в нее включили, а получение листинга директории - нет.
Какой АСМ выбрать и как вкатиться побыстряку за пару дней?Не смог найти книги "АСМ для чяйников", она есть?Легко ли будет вкатиться после Пайтона?
>>1405750А в чем вопрос-то? У тебя есть два числа, состоящие из BCD-цифр. Берешь и умножаешь цифры в столбик, как в школе. Самый простой метод.> я черт его знает что там происходитНу берутся цифры одну за другой из ввода, приводится ASCII-код к 0..9 (используя тот факт, что '0'...'9' - это 0x30...0x39, поэтому можно просто взять младшие 4 бита), потом это все зачем-то двигается (хотя удобнее и логичнее хранить числа в little-endian, начиная с младшего разряда).> аам делать ради (исправления чего-то?)Ну потому что 09h умножить на 02h = 12h не будет валидным неупакованным BCD. И надо отнять и поделить получить две правильные цифры. Можешь это сделать медленнее вручную, через деление на 10, но это займет несколько инструкций, а тебе дали одну удобную, которая сама сделает из 12h = 18 = (18 / 10, 18 % 10) = (ah = 01h, al = 08h).
Асмач, что за йоба-функции по типу: _enable(), _disable(), _writecr(), _mm_... итп? Очень часто их вижу в хэдерах, но не понимаю что они делают и для чего вообще нужны? Да, визуал студио.
>>1405958> Берешь и умножаешь цифры в столбик, как в школе. Самый простой метод.Но не самый эффективный. habr.com/post/451860/>>1405963>_writecrЗаписывает регистр CRP.S. Как избавится от уебанской гугкапчи? В настройках поставил 2капчу, не работает. Абу пидарас
>>1405970Так для чего в целом эти команды нужны? Какой спектр задач решать? Там хэдеры сотнями таких команд засраны.
>>1405979Ну например:or ax,3030hmov [output+0],ahmov [output+1],almov dx,mesgmov ah,09hint 21h...mesg db 'Result is 'output db 'XX'mesg2 db '.', 13, 10, '$'Или:or ax,3030hpush axmov dl,ahmov ah,02hint 21hpop axmov dl,almov ah,02hint 21h
>>1405922Atmel Studio (ранее AVR Studio) — основанная на Visual Studio бесплатная проприетарная интегрированная среда разработки (IDE) для разработки приложений для 8- и 32-битных микроконтроллеров семейства AVR и 32-битных микроконтроллеров семейства ARM от компании Atmel, работающая в операционных системах Windows NT/2000/XP/Vista/7/8/10.Чо за лажа?
>>1406217> на уровне гипервизора> и нижеА если серьезно, то такие только на бумаге в теории есть. В реале запилить рабочий прототип практически невозможно, разве что в лабораторных условиях и то будет работать все через раз.
>>1406257Ты серьезно думаешь, что такие руткиты выкладывают в паблик? Почитай слитые каталоги АНБ, охуеешь, какие вещи успешно реализуют.
>>1406505Хуйню там слили у анб, никакими гипервизорами, фирмваре даже и не пахнет, сам модуль у них тоже тухлый. В паблике как раз есть вещи по-круче, особенно у китайцев.
Сап, аноныРасскажите нубу кто шаритЕсть ли какая-то сила за разработкой драйверов? Ведь код драйвера имеет больше привелегий, нежели рядова прога (кольца 2 и 1, если не ошибаюсь)Значит ли это, что существуют малвари, написанные в стиле драйверов? Или завернутые в драйвер?
>>1406913>Есть ли какая-то сила за разработкой драйверовБезусловно. Средняя зп ~150 тыс. долларов в год.>Значит ли это, что существуют малвари, написанные в стиле драйверовДа.>>1406997Как и обычный драйвер, логично же.