24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (RE).
Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда. Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.
Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.
Инструменты для RE: Дизассемблеры: 0) IDA Pro 7.2 когда подберут пароль к архиву 1) IDA Pro 7.0.torrent (x64 only, для XP нужно патчить PE + вылеты) 2) IDA Pro 6.8.torrent 3) IDA Pro 5.0 - бесплатная версия для некоммерческого использования 4) Radare 2 - наконец прикрутили гуй, но по прежнему нужна только клиническим, не умеющим в скачивания торрентов, или пользователям альтернативных ОС 5) Ghidra для любителей анальных зондов от АНБ 6) Остальное
Почему декомпилятор из асм в Си hex-rays до сих пор не отреверсили и не внедрили у себя ребята из radare2 (r2dec)? Это слишком сложно или слишком нинужно? Вообще "профессиональные реверсеры" этим пользуются ли? Читал, что он иногда некорректно работает.
> Ghidra для любителей анальных зондов Нет там никаких зондов, бесплатная и вполне применима для чего-то серьезного (в отличие от радара).
>>1406222 > hex-rays до сих пор не отреверсил Потому что он говно. Меньшее говно, чем другие, но все же никому не хочется в этом копаться. Он, как и вся IDA, состоит из хаков. Проще с нуля написать (нет).
> пользуются ли Да. Ты экономишь много раз по много часов ценой того, что однажды он тебя обязательно наебет.
>>1406259 > Каким надо быть мазохистом чтобы в статике простыни ассемблерного листинга рассматривать? Жили и до иксрэйсов, и неплохо жили. И сейчас есть куча архитектур, где никаких иксрэйсов нет и никогда не будет, а реверсить как-то нужно.
>>1406347 > когда она открывала порт наружу для отладки Как будто это единственное в мире приложение на Java, в котором используются отладочные возможности Java. Как будто тебя на машине нет файрвола, а между тобой и интернетом нет роутера. Может быть, и ида, которая ищет своих друзей в твоей локалке, тоже тебя смущает?
>>1406468 Не все с начала сплайсят. Тот же пролог стандартный нет никакой проблемы пропустить даже без полноценного дизасма, достаточно дизасма длин.
>>1406465 > Аноны, как обнаружить inline hook в рантайме? Прочитать секцию кода с диска и сравнить, например. Она обычно ридонли, RWE сейчас не в почете.
>>1406213 (OP) >Ghidra для любителей анальных зондов от АНБ Это вы про дебаг гидры? Порт же закрыть можно. А в новых версиях дебаг по дефолту выключен. В версиях 9.0.2 и 9.0.4 точно. C каких пор реверсеры боятся зондов?
>>1407016 > про макрос data import data - не макрос, а директива, она пишет начало и размер блока data в поля IMAGE_NT_HEADERS.OptionalHeader.DataDirectory, import/export/fixups преобразуется в соответствующий индекс директории, но индексы можно указывать и сразу числом. А вот чтобы понять, как работают макросы library и import, читай в fasm.pdf про forward и common (хотя бы), ну и начать в любом случае нужно с https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format
Я знаю. Сейчас я собираю свой минимальный PE-имидж по байтам и параллельно пишу лоадер для него. Но в FASM оказалось много неизвестного для меня. Здесь есть удобный аналог assume edi:IMAGE_DOS_HEADER? Или как его накостылировать?
>>1407039 Нет, макрос assume как бы есть, но работает хуево. Можно еще virtual at edi dosheader IMAGE_DOS_HEADER end virtual, но оно глобально и неотменяемо. В целом в фасме принято делать явно mov eax,[edi+IMAGE_DOS_HEADER.e_lfanew]. Больше писанины, зато все сразу понятно.
>>1407535 16 бит всё. А 32 ещё работают. Хотя в век современных электронов 2 (4) ГБ н"серьёзному" приложению (например пасьянс) не хватает, так что можно смело переходить на 64 бита. АЛСО, для асма не актуально.
Покопался я тут в "Ассемблерах" для GPU, там полный зоопарк.
Короче, если хочется что-то универсальное, тогда придётся брать фреймворки OpenCL, OpenGL итп. Естественно, это всё высокоуровневая хренотень.
Почему до сих пор не создали хотя бы мало мальски универсальный Ассемблер для GPU? Даже то, что каждый тянет одеяло в свою сторону, каждый строит свой рынок не должно было сильно помешать подобному проекту.
Видимо, всем просто по хуй.
А посему и смысла использовать ЦП-Ассемблеры нет в игрушках, как и в sci и Big Data. Всё равно эти фреймворки срежут производительность до своего уровня.
Лучше всё хуярить на C/C++.
А Ассемблер только для ОС и драйверов, ещё встраиваемые. Вот и всё.
>>1407931 Блд, сказали же, Питон - самый медленный, миллион тестов в сети есть и самых разных.
Питон 4х версий будет уже просто сосать, он станет неприменим для серьёзных проектов. Будут в учебных целях его дрочить, как когда-то ТурбоПаскаль дрочили, чисто, чтобы научиться программировать на базовом уровне, понять основные принципы итд.
А большинство проектов перекатится на Нод/ЖС. Особенно всё, что веб. Питон к 5й версии в вебе и вовсе сдохнет. (Раби ещё подержится.) К 6й станет устаревшим языком, который только в школках и будут проходить вместо Бейсика и Паскаля, но основное внимание будет уделяться JS. Потом Питон выкинут и из школ.
К 7й версии Питон станет историей.
Так что я советую вам с этого питоноговна уже сегодня слезть. Учите нормальные ЯП, C++ тот же, или хотя бы ненормальные, но востребованные вроде JS.
>>1408062 пизда, вали из нашего треда обратно в общий, так и знал, что это ты тут трольнул, продолжая гнуть свою глупую линию, дохуя перегоняльщиков кода, они тебе только уникальную специфику проца не смогут сделать, а стандартный код сделают.
Как думаете, печему не взлетел IA64? Какие, вообще, есть перспективы у новых наборов инструкций? Я правильно понимаю, что, в конечном итоге, будущее за RISC?
>>1406213 (OP) ОП, я не понял. Почему в шапке нет книги Рендала Хайда? Какой, нафиг, Зубков? Лучший асм-учебник на русском - Юрова. Не лишним будет упомянуть Интел-талмуды. Где книги Агнера Фога? Можно ещё опус магнум по оптимизации Майкла Абраша привести (хоть и устарело).
>>1409157 >Рано или поздно мы к VLIW придем (вернемся). Так ли уж нужен параллелизм на уровне инструкций? Это, ведь просто, способ избежать спекулятивного исполнения, не потеряв в производительности. Или я плохо улавливаю идею? Что думаете про RISC-V?
Я неопытен в фасме. Хочу написать модуль для логирования в файл. Соответственно, внутри объектника должны определяться переменные для дескриптора открытого файла, форматной строки и функция, приинимающая произвольные строки, которыезаписываются в файл. Мне это нужно для тщательного логирования того, что происходит внутри программы. Как можно создать такой модуль и подключить к программе?
В линуксовых shared object'ах extern переменные и функции в двух разных процессах будут иметь один и тот же виртуальный адрес, или могут (и должны) иметь одинаковые значения в младших битах адреса, но разные в старших из за какого нибудь ASLR? При этом для обоих процессов они имеют одинаковый физический адрес до первой записи?
>>1410247 К сожалению, в фасме макросы не могут возвращать значения. Можешь сделать так: macro round n, r { rounded = (((n+(r-1))/r)*r) } round 12,5 ; и используешь: mov eax,rounded
Как условному Васяну получить EV сертификат для подписи дров? И нужен ли он вообще? Обычный не прокатит что-ли? Гуглить пробовал, там одни диваны, сами толком не знают.
>>1410523 > У меня filesize equ $ - $$ определено в конце исходника Ты хотел сделать filesize = $ - $$. = обрабатывается на стадии ассемблирования, оно создает или изменяет настоящую переменную (ассемблера, а не генерируемой программы естественно), фасм умеет в forward references (ценой дополнительного прохода ассемблирования). А вот equ работает в препроцессоре, ничего про переменные не знает, это просто текстовая замена, работающая от equ и до конца файла (или до отмены equ c помощью restore). Даже если предположить, что твой equ сработал бы, как ты хотел, то $ в месте использования отличался бы от $ в месте, где ты создал equ.
О круто, тред про ассемблер. Я полный ноль в этом, но хочу вкатиться. Что надо скачать чтобы получить хоть какое-то начальное представление, а то в шапке дохуя написано. Посоветуйте одну книгу и одну прогу пока.
>>1410614 Что-то как-то стремно решается моя надуманная задача на фасме. Возьму, пожалуй, NASM. Я собираю минимальный PE-имидж по байтам и параллельно пишу лоадер. Хочу сделать имидж меньше 200 байт.
Здесь SizeOfImage равно нулю, но я хочу записать туда размер дискового образа, выровненный на section aignment. Размер файла определяю так: filesize equ $ - $$ Как написать макрос, чтобы сделать dd выровненное значение размера файла? В NASM та же самая проблема с макросами.
>>1410714 >Загужать исполняемые образы для исполнения? Вместо системного загрузчика? Да. Еще хочу добавить к нему защиту от динамического анализа. Что сейчас актуально? Видел детект VM Ware по GDT, защиту от рантайм анализа при помощи сообщений из других потоков, коды возврата недокументированных апи. Все это, вроде, устарело. Но кода я только начал этим заниматься, детект движения курсора лучше всего останавливал динамическую проверку. Как работают эмуляторы? Они передают управление на точку входа и анализируют поведение программы, или действуют более тщательно, дизассемблируют каждую процедуру и трассируют ее? В последнем случае, наверное, можно было бы навставлять в процедуры ret и перепрыгивать их при выполнении. Это должно запутать дизассемблер, если он дизассемблирует от начала функции до ret. Но это, наверное, слишком наивный способ обойти дизассемблирование.
>>1410735 Я еще не могу для себя точно объяснить разницу между отладкой и трассировкой. Там, где я работал, слово трассировка вообще не употребляли. А в лоу лвл кодинге оно используется часто. Я нагуглил тред о различии отладки и трассировки, и там говорится, что отладка - это пошаговое выполнение, а трассировка это пакетный анализ поведения программы: запускаешь программу и смотришь журнал выполнения, по которому определяешь место проблемы, после чего начинаешь в этом месте отладку. То есть и принтф, и логи в консоль, и журнал в файле, и MessageBox'ы с ошибками можно назвать трассировкой. Я прав?
>>1410652 > Что-то как-то стремно решается моя надуманная задача на фасме На насме будет еще хуже, фасм в плане ебли байтов гораздо мощнее.
>>1410666 > я хочу записать туда размер дискового образа, выровненный на section alignment Ну я же тебе написал, как сделать. dd (SizeOfImage + sectalign - 1) and not (sectalign - 1) ... ; В конце файла: SizeOfImage = $ - $$ ; тут возможны варианты, в зависимости от того, хочешь ли ты ебаться в org в секциях. Что сложного-то?
>>1410579 Конечно. Правда ссылка на вики это моветон, если реверсер её не найдёт, то он и в ИДЕ не разберётся, и компутер не включит. >>1410580 Зарегистрировать компанию, только им и выдают. Можно попросится подписать у пары компаний, которые подписывают дрова с открытым кодом, но там, ВНЕЗАПНО, нужен открытый исходный кот, твои затрояненные бинари отошлют тебе обратно. >>1410632 >а то в шапке дохуя написано Я тебя разочарую, но в книгах по асму написано ещё больше, чем в шапке. Если ты шапку ниосилил, то и асми не осилишь.
>>1410832 Почему малварь-то сразу? Те кто создают малварь подобного уровня, спонсируются и достать такой серт им не составит труда. А мне Васяну где и как его взять? Я может хочу свой антивирус бабушкина с блэкджэком и куртизанками запилить. Но думаю начать с мини-тулз, типа sysinternals. Есть конечно вариант опенсурса, гит прокачаю, портфолио так сказать, но думаю шанс, что меня кто-то заметит и озолотит мизерный..
поясните мне пж за следующий аспект кэш памяти процессоров. вот есть у меня программа, которой нужно прочесть N байт по адресу 0xAAAABBBB. процессор может закешировать эти данные, и они будут от L1 до L3. вот процессор начинает выполнять команду типа add %(0xAAAABBBB), %eax, он такой возьмёт VA, получит с него PhA, с PhA хеш получит какой нибудь 0xABCD, но! как он знает, что сейчас в кеше для данного адреса под индексом 0xABCD лежит чанк именно для текущего процесса и именно для нужного VA, а не из какого нибудь другого процесса, что выполнялся до последнего прерывания, и если одному блоку данных в кеше могут соответствовать несколько физических адресов, в которых могут находиться данные того же самого процесса?
>>1411676 Смотрел недавно лекцию на данную тему, но проебал ссылку. Короче все сводится к тому, что... нихуя толком не говорится как это работает, ПРОСТО работает и все.
>>1411923 Спалятся потом где-нибудь, как malware-tech и сядут на бутылку. Даже если не спалятся, то за такие бабки их фбр где угодно найдут.
Вы мне лучше скажите, как сломать F5 в иде, дабы подпортить жизнь школоте? Видел много раз в комерческом софте такие функции. Это из серии виртуализации?
>>1412010 >джампай в середину инструкции Как это на деле реализуется? Вот джампну я на байт ModRM или SIB. Что дальше делать, чтобы процессора не выдал исключение?
>>1412406 > Что значит сломать стек? Разбалансировать. Например, чтобы в одной из веток был ret при оставшихся в стеке локальных переменных. Или вызов функции, которая за собой подчищает стека больше, чем ей передали параметров. Реально передавать управление в эти ветки вовсе не обязательно, лишь бы они были. HexRays очень чувствителен к такому, но исправляется оно элементарно, поэтому помогает только от школоты.
>>1406465 Разобрался. Теперь следующий вопрос: как убрать инлайн хук в рантайме? На диске нет данных, предварительных данных тоже нет. Потыкал всякие антируткиты, они каким-то магическим образом имеют предыдущие байтики и спокойно убирают хук.
>>1412650 не знаю, насколько это реально и вообще полезно в боевых условиях, но я как то раз в образовательных целях на элементарной х86 программе в хэдерах пидорасил ОЕР, заведомо указывая его в ебеня, а потом в TLS коллбэке опционально восстанавливал, прибавляя захардкоженную дельту к одному месту в памяти. не помню точно как это работало, но то ли на +-0х1000 байт от EBP то ли еще где неподалеку лежал не то VA с уже прибавленной дельтой релоков, не то RVA OEP, куда должно выполнение перейти после TLS. ну и в итоге ОЕР восстанавливалась, а ида смотрела на неправильный ОЕР со всеми вытекающими.
Сап,кто знает можно ли получить триал вирустотал интележенс?мне буквально пару сэмплов скачать нужно раньше давали триалы всем подряд,а теперь не выходит(вроде как только фирмам типа ав и студентам(и то не всем) если у кого-то есть,то буду очень благодарен если поможете
Можно пример программы с подпрограммой? А то я в методичке смотрел, а там какая-то хуйня запутанная.
У меня такой вариант задачи, но это так ради понимания уровня задачи. Не нужно слишком сложное. Разработать подпрограмму, которая разбивает заданную строку на две части: первое слово строки (до первого пробела) и оста-ток строки (пробелы после первого слова отбрасываются). Разработать программу, которая вводит с клавиатуры строку и выводит каждое слово с новой строки. Сложна, сложна, нипанятна.
Заранее извиняюсь за то, что насру здесь. Я хочу вкатиться взламывать разный софт и писать под него патчи/кейгены, но я полный ноль. Мне посоветовали: а) Сначала подучить лёгкий язык вроде питона и обмазаться курсами по CS, а потом уже начинать медленно бросать взгляд в сторону ASM б) Сразу учить Ассемблер, стоически переносить сложности, попутно читая те же курсы по CS и в целом про особенности различного железа На какой стул себя посадить, а на какой не стоит? Важно ваше мнение, анончики.
>>1413031 Идея хуйня. Современный CS это такая хуйня для неосиляторов и мочеглотов, способных только языком чесать. Язык какой-то учить? Ну разве что всякие кресты/си, на которых системы/АПИшки для железа написаны да шеллчики. Интересно сидеть инструкции дрочить? => Сиди дрочи насм дальше, и нахуя тебе этот пайтон сдался тогда? Советую тебе учебников по информатике закупить для 1-3 курсов для начала.
>>1413102 К питону возвращаться можно и нужно, только когда ты уже успешный c/c++ боярин, ресерчер, сеньер-байтоеб и знаешь что тебе нужно. А так это довольно бесполезный яп.
>>1413031 Учи ассемблер, изучай архитектуру ос, учись пользоваться тулзами: ida pro, windbg.
>>1413208 >windbg Ну ты и посоветовал. Ладно бы он сплоенты изучал. Ему же просто обычным крякером хочется стать. Тут лучше ollydbg/x64dbg ничего не придумали. К ним и туторов масса, и плагины на любой вкус и цвет, и скрипты под плагины, и кодериперы для кейгенов.
>beginners.re - "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна! >Чтобы не палить свой адрес почты, вот прямая ссылка https://beginners.re/f572d396fae9206628714fb2ce00f72e94f2258f/ Что-то ссылка поломалась, как и новорегнутые на самом beginners.re(( Желающие натянуть латексное белье с затычкой - велкам на гитхаб, собирать книгу сами: https://github.com/DennisYurichev/RE-for-beginners Для нежелающих ссылка на собранную сегодняшнюю RU/EN копию: https://dropmefiles.com/ESdEP Наверное хватит переждать, пока господин Юричев починит свою хитрую систему сбора адресов.
Предлагаю шапку обновить, ибо протухла. Нужны ссылки на свежие, активные блоги. Книги/гайды по современному ассемблеру. Раз скрины из ядрер ОС, то следует и добавить блоги/гайды/любой другой ресерч по осям.
и можно пойти в армию метеорологом меня научили да да пограмистинешы самоек главноке понимать процесс ф именоо и именооно... матиматика это вообще ... вот почему уобного код работает 8 минут а у второго просто глазом виднол https://www.youtube.com/watch?v=6CF4wUFnp3M 1 4 7 0 3 5 7 9 2
Хочу написать простой драйвер под винду. Какой SDK качать, чтобы можно было кодить в студии? Когда я в первые хотел этим заняться, помню, что пришлось поебать себе мозги тем, какие библиотеки скачать. Я нагуглил статьи для ньюфагов и пошел на сайт МС за либами, а там оказалось, что того пакета либ уже не существует и надо качать что-то другое.
>>1413338 WDK установи и все. Create new project -> Windows Drivers -> и тут выбираешь что тебе нужно. Начать наверное лучше будет с легаси либо wdf драйверов. Спрашивай если будут вопросы.
>>1413314 >\t >вот бы придумать не зависящий от врем именно гже есть блоки котораи более эфективно вып\олняют эт мех дейсчтвия я мервый ветер я https://youtu.be/DG2TRdz6oUg?t=1800
>>1413406 Ой, ну это уже думать надо. Windows Internals книгу в шапку нужно запихать точно, в нескольких тредах упоминали её. http://undocumented.ntinternals.net - описание недокументированных апи в шапке только структуры https://vimalshekar.github.io/blog/ - основы для вкатывальщиков, за пару вечеров можно осилить. Книгу - Modern X86 Assembly Language Programming: 32-bit, 64-bit, SSE, and AVX 1st edition. Книгу по Идочке.
Кстати, спасибо анону, который залил Rootkits and Bootkits книжку, читаю потихоньку
>>1413363 Поставил WDK, создал в студии проект типа KMDF Driver, начал писать код, но #include <ntddk.h> не может найти хедер. Где искать этот хедер и wdf.h?
Автор использует масм и советует скопировать библиотечные файлы из DDK в каталог \masm32\lib\w2k. Но у меня win10 и стоит WDF. Как использовать то, что у меня имеется, для изучения этих статей?
Допустим, у меня есть адрес возврата некоторой функции, как мне определить какой конкретно функции принадлежит данный адрес? Нашел только LdrFindEntryForAddress, с помощью данного апи получаю имя модуля, в котором находится нужная функция. Куда дальше копать? Не самому же сканить с дизасмом?
>>1415527 Отдельный режим процессора, который включается при подергивании соответствующей ноги процессора, который в отдельной области памяти выполняет код, практически незаметно (не считая потраченного процессорного времени) и не спрашивая разрешения у гипервизоа и выше.
> Но куда ниже то? Ну как это куда?! Отдельный чип, который рулит всей системой.
посоветуйте пж годных статей по структурам дампов ОС. типа вот если сдампить процесс винды, то у него будет структура РЕ, в ней там хэдеры, секции, тоси боси, у линуксов ELF с его структурами, а с ОС что? все запросы в гугле переводят на конкретные инструменты типа lime, volatility, а я хотел бы предварительно просто пробежаться по теоретический части структур дампов популярных ОС типа чё в них есть, что в них может быть, чего в них не может быть, как это в теории должно быть выложено, и т.д.
>>1415786 Что ты имеешь ввиду под структурами дампов ОС? Читай книги по архитектуре интересующей тебя ОС. Структуры, функции, таблицы и прочее вычленяются с помощью отладочных символов и WinDbg.
Читаю про аппаратно-программные руткиты, которые в прошлом веке располагались в святая святых BIOS материнки и сетевухи. Насколько это актуально сейчас, когда в материнках UEFI? Дело в том, что мои компы побывали в органах. Данные на дисках затер нулями.
>>1416872 То что на это способны наши органы, я сомневаюсь. Естественно сбросить и переустановить прошивку нужно на всякий случай. Более вероятно что тебя будут просто прослушивать. Меняй провайдера, шифрую трафик, сиди с вайфая соседа.
Как лучше заимплементить PE-загрузчик на фасме, если перед загрузкой происходит парсинг заголовков, а после него мапинг? Определить все структуры, реализовать структуру контекста, в которую напихать все структуры (или наиболее значимые поля) и в процессе парсинга заполнять контекст, а во время отображения дискового образа на память пользоваться этим контекстом?
>>1416982 Но ведь виндовый загрузчик уже делает самое правильное, что можно сделать: мапит заголовки, валидирует заголовки, мапит секции, занимается инициализацей и динамическим связыванием. Зачем тебе контекст с отдельной копией заголовков, если тебе их все равно грузить?
>>1416984 binfmt_pe.c написать несложно (и не один раз его уже реализовали), но вот окружение само по себе не появится.
>>1417027 > окружение Среда, в которой выполняется код - все, что он видит вокруг себя. Системные вызовы, системные данные в памяти (тот же PEB), библиотеки, структура файловой системы. Все это предоставляет вайн. Можно было бы, как сделала Microsoft для WSL, эмулировать только системные вызовы, пользуясь родными библиотеками, но в винде слишком много всего прибито гвоздями к ядру.
>>1417036 >Можно было бы, как сделала Microsoft для WSL, эмулировать только системные вызовы, пользуясь родными библиотеками Нельзя, проприетарная лицензия-с. >но в винде слишком много всего прибито гвоздями к ядру. На самом деле к драйверам. Win подсистема ютится в win32k.sys, и ядру NT она нафиг не нужна, оно может работать и без неё. Только эмулировать ядро до степени работоспособности драйверов ещё сложнее, чем по внешним интерфейсам. Перед последней задачей даже МС спасовали, в новых версиях WSL они будут запускать едро люнупса в виртуалке.
>>1417045 > лицензия Нельзя пользоваться либами, но это проблемы юзеров. Так часто при реверсинге игр делают: движок опенсорс, данные родные, и лицензию, даже если она что-то подобное запрещает, нарушает пользователь, а код ни в чем не виноват.
> оно может работать и без неё Ну ты же понимаешь, что фактически это часть ядра, а все эти "может работать" равносильны заявлениям, что софт может работать без ОС (да, может, но такое пишут крайне редко).
> в новых версиях WSL они будут запускать едро люнупса в виртуалке Ну вот, теперь в десяточке нет абсолютно ничего хорошего.
>>1417023 Пишу упаковщик с лоадером. Но если не пихать заголовки в контекст, все равно ведь придется делать два прохода по заголовкам: первый раз, чтобы прочитать ImageBase, а второй раз - выделить память по этому адресу и развернуть там образ. Алсо, как работает лоадер на сисколлах? https://github.com/luis140219/luismark-loader/blob/master/luisldr.asm В чем плюсы, минусы? Как вообще загрузка образа сводится к вызову ZwCreateSection? Что делает эта функа?
Насколько кэширование процессором кода может помешать выполнению кода при довольно интенсивном его изменении находу? Можно ли как-нибудь избежать отрицательных эффектов? Отключить кэширование кода для приложения/треда?
>>1417047 >Нельзя пользоваться либами, но это проблемы юзеров. В общем то да, и сейчас можно подсунуть вайну родные либы. Но видимо уровни программ разные, и что можно реверсеру с гитхаба с 3 звёздочками, то запрещено проекту с тысячей контрибуторов. >Ну ты же понимаешь, что фактически это часть ядра Не а. Оно, как драйвер, работает в адресном пространстве ядра, пользуется его сервисами, ядро пользуется сервисами этого драйвера, но неотъемлемой частью оно не является. >Ну вот, теперь в десяточке нет абсолютно ничего хорошего Ну не знаю. Как по уровню интеграции Wine в сравнении с WSL? >>1417129 Кеширование не мешает изменяемому коду, оно помогает неизменяемому, притом существенно. Решение только одно - не использовать полиморфный код. Отключить кеширование можно для отдельных страниц, обладая правами админа, но будь готов к производительности уровня первых атомов.
>>1417221 >Решение только одно - не использовать полиморфный код. Хотелось-бы наоборот. Есть ли необходимость для этого флагировать страницу как PAGE_NOCACHE? Это что-нибудь даст?
Если я рассматриваю программирование как хобби и процесс>результат, те могу писать условный хеллоуворлд годами, то ассемблер мой выбор? Веб мне не нравится, хотя для такого гуманитария как я он лучший выбор, но не хочу и все тут.
>>1417261 Для начала стоит хотя бы понять о чем говоришь. Веб это не только разметку рисовать и конфигами жонглировать. АСМ явно не твой выбор, ибо с текущим уровнем дискурса ты себе даже задачу не сможешь поставить.
>>1417260 Ничего не даст, дело не только в кэше, но еще и в конвейере. Изменение страницы, инструкции из которой уже выбраны и декодированы/декодируются = сброс конвейера. Постоянные сбросы конвейера = никакая производительность.
>>1417221 > Не а. Оно, как драйвер, работает в адресном пространстве ядра Это все понятно, но это все детали. Но мы ведь об эмуляции винды говорим? И если рассматривать картину с этой стороны, то win32k и другие дрова вполне можно считать частью ядра. Выбрось их, и это уже будет не винда.
>>1417119 Ты видимо вообще нюфаня, раз такие вопросы задаешь и не знаешь, как загрузчик винды работает. Куда собрался то свой писать? Мы тут уже обсуждали защиту софта, лодеры и прочее, в итоге порешали, что все это херня и единственный рабочий метод - виртуализация кода.
Прямой вызов сисколов хорош тем, что тебя нельзя похукать можно на самом деле из юзермода, тк ты минуешь функцию-обертку и сразу переключаешь контекст в ядро. Из минусов - сложность реализации, зависимость от среды. Это если вкратце.
Про апи винды на msdn читай. Исходный код ReactOS в помощь.
>>1417429 >Ты видимо вообще нюфаня, раз такие вопросы задаешь и не знаешь, как загрузчик винды работает. В статьях пишут про такой алгоритм: 1) Парсинг хедеров 2) Разбор таблицы секций 3) Проецирование 4) Обработка импорта 5) Рекурсивная загрузка длл 6) Переход на точку входа
А как он работает на самом деле? Знаю, что можно почитать сорцы вин 2000, но их надо снова выкачивать и копаться к них.
1. Extract from the header the entry point, heap and stack sizes.
2. Iterate through each section and copy it from the file into virtual memory (although not required, it is good to clear the difference between the section size in memory and in the file to 0).
3. Find the address of the entry point by finding the correct entry in the symbol table.
4. Create a new thread at that address and begin executing!
Я правильно понимаю, что в unix-like системах все процессы создаются методом вызовов fork(); exec();, и начинается всё с самого первого процесса init после старта системы?
>>1417451 >Исходный код ReactOS в помощь. Там полноценный загрузчик реализован, практически 1 в 1 как у винды. Ничего качать не надо, через браузер смотреть можно. На худой конец открой ntdll и ntoskrnl в иде, загрузи .pdb символы и изучай.
>>1417454 Куда замапить? Где запустить? В каком контексте? Какой PE-file? Ты недоговариваешь. Просто загрузить длл - LdrLoadDll. Ты эту функцию хочешь реализовать?
>>1417465 >Куда замапить? В адресное пространство пакера.
>Где запустить? В АП пакера.
>В каком контексте? В контексте пакера
>Какой PE-file? exe, dll
>Ты эту функцию хочешь реализовать? Хочу реализовать красивую загрузку exe для начала. Раньше по статьям какого-то системного программиста я написал свой вариант лоадера, который не только мапит exe, но еще и рекурсивно загружает дллки и прописывает их в PEB, но сейчас я хочу написать простой лоадер для узкой задачи на фасме. И мне не хватает идей, как сделать это правильно.
В предыдущем своем лоадере я делал контекст, который содержал указатели на структуры типа PIMAGE_DOS_HEADER и накладывал их на результат MapViewOfFile, а потом копировал заголовки и секции в другое место (по адресу ImageBase). А если по адресу ImageBase же что-то было (например, например, сам лоадер), то вызывал там UnmapViewOfFile. Но чтобы такого не было, ImageBase лоадера я сделал ниже, чем ImageBase загружаемого файла.
Почему вообщн загрузка может сводиться к вызовам ZwCreateSection? Как это работает?
>>1417568 Правильный переносимый способ это использование документированных апи, а не копание во внутренних структурах. Есть шанс, что они их изменят, тогда твой лоадер придется переписывать. >Почему вообщн загрузка может сводиться к вызовам ZwCreateSection? Как это работает? Чтобы отобразить секцию, сначала нужно создать объект/получить дескриптор этого объекта секции. MapViewOfFile читай как ZwMapViewOfSection.
>>1420434 Гуглишь на MS Docs функцию CoInitializeEx. Внизу страницы видишь, что, линковать надо с библиотекой Ole32.lib. Проверить, что символ __imp_CoInitializeEx экспортируется из этой либы можно утилитой dumpbin (наряду с другими и компоновщиком link прилагается к MSVS).
>>1420447 > C:\...\Microsoft_Visual_Studio\2019\Preview\VC\Tools\MSVC\14.22.27706\bin\Hostx64\x64\dumpbin Проиграл. Все для людей. Вот в 2005 студии такой хуйни не было. На самом деле пердолиться в библиотеки импорта совершенно незачем, есть http://www.dependencywalker.com/
>>1420434 > место, где находится Зависит от того, что ты понимаешь под словом "место". Жмешь Enter на символе, в статусной строке видишь позицию в файле и виртуальный адрес. Скроллишь вверх, видишь имя длл (или ищешь во View->Imports в более удобном для восприятия виде).
>>1420502 >http://www.dependencywalker.com/ Это чтобы (рекурсивно) просматривать импорт, если у тебя есть исполняемый файл. Я забыл, что все вы тут дофига реверсеры (свои программы не пишем - чужие ковыряем). А если нет файла? А если только исходник (да и тот не весь)?
>>1420447 >>1420502 Я поэтому и спросил потому что нифига там нет. В api-ms-... пусто, нет реализации. А саму реализацию в combase.dll нашел. Что за бред?
Сап, реверсач Хочу вкатиться в разработку драйверов на Линукс С чего начать? Сишкой и плюсами владею на достаточно высоком уровне, умею в структуры данных, знаю основы ОС Есть топовая книга/курс для начинающих в этом деле?
>>1421185 Для переносимости (читай: чтобы добить нативный софт) и версионирования (как будто нам SxS мало было), теперь API логично сгруппированы по функциональности, а не по подсистемам и абстрагированы от этих самых подсистем. В общем, максимально нинужная фича, как и все остальные фичи восьмерочки и десяточки, которая просочилась обратно в 7 и даже в XP.
>>1421306 >чтобы добить нативный софт Я так и подумал.
С одной стороны хорошая затея то, но реализуют ее как всегда майки, поэтому все через жопу и понятно только им самим.
Не понимаю, для кого они апдейты каждые несколько месяцев выкатывают. Дедлайнов никаких нет, конкуренты не жмут, закройтесь, сука, в подвалах на годик-два и запилите норм ОС... Но нет...
>>1421185 Теоретически производители встраиваемых систем могут собрать свои версии системных библиотек безо всякой хуиты. MinWin называется. Но всем как всегда похуй, и это лишь добавило ещё один нахуй не нужный слой абстракции. >>1421312 >Не понимаю, для кого они апдейты каждые несколько месяцев выкатывают. Чтобы не обосраться как с вислой.
IDA Pro v7.2.181105 with Hex-Rays x64Аноним24/06/19 Пнд 10:46:42#223№1421399
>>1421556 https://rutracker.org/forum/viewtopic.php?t=5748289 или сразу магнит, правда доска наверное покоцает: magnet:?xt=urn:btih:89C510068D46F2EC48D6589B6FAE6ECC0B4CC3CB&tr=http%3A%2F%2Fbt4.t-ru.org%2Fann%3Fmagnet&dn=IDA%20Pro%207.2.181105%20WIN%20x86%2Fx64%20%2B%20Hex-Rays%20Decompilers%20(x64)%20%5B2019%2C%20ENG%5D >Не могу найти Как же ты искал?
>>1422191 А ты в Debuggers посмотри, там для выполнения кусков кода специально есть адаптер для Bochs, ничего копипастить не нужно (Bochs, разумеется, нужно поставить).
>>1421817 Если там 32-битного x86 и ARM нет, то не нужен.
Аноны, не могу осилить архитектуру устройства памяти в шиндоувс. Почему так сложно? Есть какой-нибудь огромный чертеж/рисунок охватывающий сразу всю иерархию, чтобы можно было примерно посмотреть как это все между собой взаимодействует?
>>1424071 Не помог. Я конечно теперь понимаю, что такое VAD, MDL, но не более. В windbg потыкал, все равно остаются вопросы, как это все между собой связанно, а как на физическую память транслируется? Какой-то пиздец, физиком надо быть что-ли чтобы понять?
Думаю вкатиться в низкоуровневое программирование. Чет я заебался, когда пишешь как по мануалу, а оно не работает. Компилится, но не работает. А я не могу ничего сделать: не я же писал. Сложно ли?
>>1426191 Эти книги мне кажутся несравнимыми. С разных углов на ось смотрят. Это из-за того что винда более монолитна и там можна гораздо больше компонентов назвать стандартными и изучить. И в линуксе изучается только ядро и то не достаточно подробно. В 100 страниц едва можно вписать процедуру создания нового процесса в линуксе. Это заняло бы пол книги. И даже этого там нет. Книга про ядро, это не все внутренности линукса.
>>1426495 >(Mac|i)OS Internals Вот так неожиданность) Блин, даже стыдно стало за свое гугл-фу, спасибо большое. >>1426523 ИМХО, просто эти две книги первыми приходят в голову, если возникает вопрос, что там у соответствующей ОСи под капотом. Если ты подскажешь другие варианты, буду только благодарен за толковое чтиво по тематике.
>>1426704 >Если ты подскажешь другие варианты, буду только благодарен за толковое чтиво по тематике. Я бы сам почитал аналог windows internals про линукс, но кажется его нет.
>>1426495 Двачую. Алсо, вангую в макось перспективно вкатываться в плане ресерча и поиска уязвимостей. У них же под откос все идет, сейчас пойдут сокращения в компании, дорогих разработчиков набреют и как всегда сэкономят на безопасности. Надо вкатываться, аноны.
>>1427487 Да хер его знает. Мне не сложно, но я РЕ занимаюсь по большей части. Книжек не читал, функциональные патчи (читай: не только кряки) публиковал. Я хоббиист и практик — с меня мало толку в советах. Жди унылых компенсирующих профессиональных кукаретиков теоретиков.
Из подводных камней состоит чуть более чем полностью. Ну и много времени надо не только на обучение и проектирование, но и на написание, ибо ничтожная атомарность.
Стандартный совет: потыкай палочкой и задайся, в первую очередь, вопросом, в кайф ли тебе всё это.
>>1427487 Асм - самый простой язык, потому что процессор делает только то, что ты скажешь, только так, как ты скажешь, и ничего больше по крайней мере, все должно так выглядеть. Подводные в основном в том, что даже в пределах архитектуры есть зоопарк ассемблеров с частично несовместимым синтаксисом.
>>1427499 > Из подводных камней состоит чуть более чем полностью Примеры будут?
Просто ссу в рот всем формошлепам. Ебучая помойка. Все работает через 3 пизды, если вообще работает. Если не работает, то соси хуй, ибо сам мало что изменишь. То ли дело всякие приближенные к железу и математике штуки. Все точно, как часы. Мне нужно было выговориться
>>1427519 > Если не работает, то соси хуй, ибо сам мало что изменишь > То ли дело всякие приближенные к железу DRAM, например, с его роухаммером. Или те же процессоры, у который кроме распиаренных уязвимостей еще дохуя багов в errata. Тут ты хуй сосать не будешь, прикупишь себе фабрику и зделоешь правильно.
Гайд от очень известного и крутого дядьки, как стать топовым реверсачером. Без такого графика ты будешь лох-чмо с 30к зп в ООО НИИ ЛАХТА - Рога и Копыта. Что думаете?
Кто нибудь в треде пользуется kaitai struct? Как можно с помощью него описать поле флагов, чтобы в визуализаторе я все это видел в человекочитаемом виде?
Краем глаза заметил, как антивирус быстро сканирует объекты и стало интересно. Написал на Си небольшую программу, сканирующую память процесса на поиск сигнатуры и потерпел фиаско, скорость желает ожидать лучшего. Как они это делают так быстро?
>>1427982 Ну кмп очевидно он про линейную оптимизацию поиска с помощью автоматов, которая вряд ли была реализована в простенькой программе на си. А 2 других слова не знаю.
>>1427983 >>1427984 Да тут дело не в алгоритмах. Я один процесс сканировал секунду, а антивирус за эту же секунду всю память обошел. Черная магия. Я так понял не написать мне йоба-антивирус без магистратуры мат. фака? Но я все же уверен, что тут дело в каких-то скрытых фишках винды.
А вообще тут есть аноны, разбирающие бинарные форматы? Чем пользуютесь? Нашел synalize it(под винду то же самое называется hexinator) - hex редактор с возможностью полудекларативно писать грамматики и интерактивно с подсветочкой парсить файл и смотреть определенные блоки. Потом нашел то же самое только лучше - kaitai struct и их webide. Но в обоих случаях не могу(или не понял как) нормально отображать битовые области с флагами.
>>1428039 > А вообще тут есть аноны, разбирающие бинарные форматы? Есть. Использую HxD и глаза, параллельно пишу парсеры на питоне или сишке. Считаю эти ваши кайтаи и 010 неюзабельным говном, в лучшем случае пригодным, чтобы .bmp распарсить, но не сложные форматы.
>>1427994 > Я один процесс сканировал секунду, а антивирус за эту же секунду всю память обошел Ты можешь, например, пропускать регионы, которые не помечены, как исполняемые.
>>1428118 Это еще ладно. Например не просто лежать и ворониных смотреть, а гулять с корешами и шутить так, чтобы задыхаться. А вот как интенсивно СЕМЬИТСЯ??? или ДОМИТЬСЯ?
Где почитать про базовые адреса, буфера сиськи гыгы и тд, нужное для работы с памятью другого процесса. Интересуюсь для использования Memoryapi на c++. Я прям ноль в этом.
Randomized base Addres меняет базовый адрес единожды? То есть узнав его однажды, я могу каждый раз обращаться по этому адресу и это всегда будет искомый адрес?
>>1428420 Ну а дальше только шерстить MSDN и блоги всякие. Грубо говоря антивирус работает следующим образом: Регистрирует мини-фильтры/каллбэки на определенные события. Например при запуске процесса, их каллбэк срабатывает до точки входа приложения, следовательно они могут провести некоторые проверки и изолировать процесс. Тут больше винду надо исследовать, на то какие она возможности предоставляет для всего этого.
>>1428457 MS Link.exe. >Восстанови оригинальные байты, либо отобрази новую секцию в обход патчей. Чего? Какие байты? Мне надо, чтобы он секцию не загаживал при пересборке.
>>1428949 Опкод используется в качестве индекса в таблице, из таблицы читаются флаги для инструкции, указывающие, из чего она состоит (офсеты, модрм). Если опкод хочет модрм, читается модрм, если модрм предполагает SIB, читается SIB. С помощью всего этого вычисляется, сколько байт после опкода нужно пропустить. Всё, что приводит к раздуванию таблицы (префиксы, альтернативные таблицы) обрабатывается явно.
>>1429053 >memcpy(buffer, &function, 8) Судя по документации, ты копируешь 8 первых байт самой функции (тела) вместо её адреса. Делай проще. Как-нибудь так: *bufer = &function;
>>1429119 Почти. Просто хакиры. У многих инструкций форматы совпадают, поэтому можно не хранить флаги для всех 0x100 + 0x100 (однобайтовых и двубайтовых) опкодов отдельно, а вместо этого положить совпадающие флаги один раз, и на них ссылаться. В таблице фактически сначала индексы лежат, а потом флаги. Но индексы тоже занимают место, и ты вроде бы наоборот должен проиграть. Но как ты верно заметил, у многих инструкций есть d/w биты, и если флаги для группы инструкций положить последовательно, то ты можешь адресовать одним индексом всю такую группу. Так и сделано: code / 4 убирает младшие два бита (нормальный челове написал бы code >> 2), получает индекс группы и прибавляет к нему офсет в группе (code & 3), по получившемуся индексу читает флаги. Можешь это дело распаковать и посмотреть: http://ideone.com/WeETG5
>>1429133 Приду домой после настолочек - поковыряю. Как такую таблицу сгенерить скриптом? Сначала положить все опкоды (это первые 6 бит любой инструкции без префикса), а остальные клетки заполнить флагами?
А насколько актуально морфить код, изменяя бит d в инструкциях типа xor ax, ax с одинаковыми операндами? Таких инструкций в любом коде мало. Я думаю, такой морфинг немного бесполезен. В инструкциях вида op reg, mem и op reg, imm тоже можно поиграть с битами, но я с этим еще не разобрался.
>>1429133 >У многих инструкций форматы совпадают, поэтому можно не хранить флаги для всех 0x100 + 0x100 (однобайтовых и двубайтовых) опкодов отдельно, а вместо этого положить совпадающие флаги один раз, и на них ссылаться Да, форматы совпадают, но инструкции mov ax, ax и add ax, bx кодируются по-разному. Как отобразить обе эти инструкции на одну ячейку с флагами?
>>1429136 > Как такую таблицу сгенерить скриптом? Обновил код по ссылке. Берешь мануалы интела, том 2, appendix A с табличками. Записываешь для каждой из двух таблиц (однобайтовые и двухбайтовые опкоды) нужные флаги (можешь и трехбайтовые поддержать, если хочешь), получаешь список из 512 (768) элементов. Ну а дальше жмешь. Это простейший словарный метод фактически - если последовательность из 4 байтов с флагами есть в таблице - записываешь индекс, если нет - кладешь ее туда и записываешь индекс. Все эти разговоры про d/w-биты интересны лишь для того, чтобы понять, почему именно для 4 байт оно жмется лучше всего.
>>1429137 > Как отобразить обе эти инструкции на одну ячейку с флагами? Записать один и тот же индекс ячейки с флагами для обеих инструкций? ADD - это "группа" 00-04 ((Eb, Gb), (Ev, Gv), (Gb, Eb), (Gv, Ev)) MOV - это "группа" 88-8с ((Eb, Gb), (Ev, Gv), (Gb, Eb), (Gv, Ev)) Т.е., да, у нас разные опкоды, похуй на опкоды - операнды-то кодируются одинаково (для 01 и 89 это Ev, Gv, для остальных пар тоже совпадают). Где-то в таблице (по индексам 80-84) лежат 4 байта с флагами, которые подходят и для ADD, и для MOV. Поэтому ты пишешь в индекс (01 >> 2) значение 80, в индекс (89 >> 2) значение 80, все.
>>1429182 По большей части (на реально существующих и распространенных платформах) - да. Вот если платформа требует выравнивания для чтения/записи указателей, а буфер не выровнен - может случиться что-нибудь нехорошее. Ну можешь сделать: uintptr_t funcadddr = func; memcpy(buffer, &funcaddr, sizeof(funcaddr)), если тебя это волнует.
>>1425211 Кто уже прочитал? Обсудим? Вам не кажется, что слишком мало посвящено современным технологиям? Сейчас нет смысла что-нибудь писать, что не работает в дэфолтной win10 x64 с uefi. И про обход проверки целостности в таких условиях там полторы страницы без описания PoC или разбора какой-нибудь малвари. Упомянули эксплоит в драйвере виртуалбокса всего в одном предложении, хотя эта тема заслуживает отдельной главы. При этом более древние техники с mbr на xp разобраны на 100 страниц.
>>1429357 Дочитал. Вот сижу https://www.youtube.com/watch?v=7p2uAgO9lBQ смотрю. Ну да, я тоже большего ожидал, на самом деле, каких-то практических знаний, а вышло по итогу, что я знаю что какие-то технологии / дыры там есть, но как их исследовать не знаю и остается только фантазировать. Короче углубляться надо самому.
>>1429357 На сколько я понял, удаленно уже ничего провернуть нельзя. Не зря за удаленное постоянство на уровне железа награда в 1-2 миллиона долларов у эпл и 1 лям у мс. Но атаки с физическим доступом более чем реальны. Погугли блог Dmytro Oleksiuk'a (Cr4sh).
>>1429412 >Cr4sh Этого знаю. Речь не про удалёный jailbreak, а просто как установить драйвер в винду не имея подписи. Ну или не драйвер, а какой-нибудь другой буткит, но он должен работать на чём-то современном, а не пытаться лезть в мбр.
Что почитать об оперативной памяти? Меня волнует это, потому что захотел написать свой недо cheat engine с функционалом 1/10000 от оригинала. Как я понял ReadProcessMemory читает всю память процесса (с кодом). А мне код нахуй не нужен. Данные же полюбому как то помечаются на исполняемые и неисполняемые.
>>1429133 >В таблице фактически сначала индексы лежат, а потом флаги. Но индексы тоже занимают место, и ты вроде бы наоборот должен проиграть. Но как ты верно заметил, у многих инструкций есть d/w биты, и если флаги для группы инструкций положить последовательно, то ты можешь адресовать одним индексом всю такую группу. Примерно понял. Число code >> 2 это начало группы флагов, а число (code >> 2) + code & 3 непосредственно выбирает флаг. Но зачем так сделано? Разве mov ax, ax с d=1 отличается от mov ax, ax с d=0? Разве от флагов d, w, s зависит то, будет ли за первым байтом инструкции идти байт ModR/M или SIB? Может, лучше просто выбирать флаги по индексу code >> 2?
>>1429431 > а просто как установить драйвер в винду не имея подписи На своем компьютере если, то просто отключаешь проверку подписи драйвера, включаешь режим отладки и грузишь драйвер. Также в биосе есть функции по отключению проверки подписи прошивки. Удаленно установить прям именно драйвер никак нельзя. Можно разве что выполнить шеллкод в режиме ядра с помощью уязвимостей в компонентах ОС, либо через уязвимый легитимный драйвер но у тебя уже должны быть права админа. Буткит на тачке со всеми включенными функциями защиты то есть по дефолту ты никак не установишь. В теории конечно можно, но очень много где должны сойтись звезды.
>>1429619 И как ты себе это представляешь? При заражении файла сигнатура бьется, файл не считается легитимным. Также есть всякие ASLR, DEP, CFG и прочие механизмы, которые убили полиморфные вирусы уже очень давно.
>>1429735 Я попытался тебе объяснить, почему именно группы по 4, а в итоге только запутал. Давай еще раз.
Похуй, какая там структура у инструкций, какие у нее там где d или w. У тебя есть массив из каких-то 512 байт, ты хочешь его сжать (не знаю, зачем, но ты, наверное, хакир). Ты можешь использовать RLE, LZW или еще какую-нибудь хуйню, и оно отлично все пожмет, но тогда ты не сможешь запросто взять элемент i из массива, тебе придется его распаковывать от индекса 0 до i. Это тебе не подходит, это медленно. Тут ты замечаешь, что в массиве по офсетам, кратным 4 часто начинаются совпадающие последовательности байтов длиной 4. И ты решаешь хранить каждую такую последовательность один раз и делаешь новый массив. Но индексы элементов пошли по пизде, они отличаются от старых. Поэтому тебе нужна табличка, которая преобразует индекс i в несжатом 512-байтовом массиве в новый j в сжатом. Но эта табличка, очевидно, займет как минимум 512 байтов, плюс еще сжатый массив. Но офсеты последовательностей у тебя были кратны 4! Значит, для каждого i+0, i+1, i+2, i+3 где i кратен 4, можно хранить один и тот же индекс j, а вот эти +0, +1, +2, +3 прибавлять уже потом. И тогда у тебя таблица трансляции i -> j из 512 байтов становится всего 512 / 4 = 128, плюс сжатый массив. И это уже выигрыш.
А вот ответ, почему в массиве больше всего одинаковых последовательностей оказалось по 4 байта и по адресам, кратным 4 - как раз в том, что опкоды не всегда присваивались как попало, а существуют вот эти самые d и w. Ты мог бы хранить последовательности по 2, и флаги сжались бы лучше, но ты бы проиграл на индексах. Ты мог бы хранить последовательности > 4, так ты бы выиграл на индексах, но флаги бы сжались гораздо хуже (наверное, я не проверял).
Алсо, если ты сам дизасм длин собрался писать, нахуй тебе в 2019 сжимать таблицу и вот в это все пердолиться? Храни как есть.
> Может, лучше просто выбирать флаги по индексу code >> 2? Это сработало бы, если бы у всех инструкций были бы d и w. Но вот есть cbw (98), cwd (99), call far (9a). У 98 и 99 нет операндов, у 9a один и большой. Если ты сделаешь просто table[9a >> 2], ты получишь флаги для cbw и вычислишь неверную длину в результате.
>>1429837 Можно вопрос. Где эти знания могут пригодиться вообще? Зачем писать дизасемблер самому, если есть десятки аналогов? Пердолинг ради пердолинга?
>>1429856 Это кажется, что есть аналоги, а как до дела дойдет - то нельзя, это не работает, это только через ебаный костыль, вся либа ебаный костыль, пошло оно все в пизду, учу 1С. На самом деле дизассемблеров длин не так много, а если искать одновременно поддерживающий все современные инструкции и чтобы размером в одну-две страницы на Си, то их вообще ноль, наверное.
>>1429837 Принцип сжатия я понял. Мне интересно, на какие группы разбиваются все инструкции на x86. Вот у mov eax, [00401000] есть ModR/M и 4-байтный адрес. А у push eax (0x50) больше нет никаких байт, кроме этого опкода. add eax, [00401000] похож на mov выше. А еще есть инструкции с 8-битными, 16-битными и 32-битными операндами. Есть инструкции без операндов. Я предполагаю, что количество групп, на которые можно разделить все инструкции, совпадает с количеством 4--байтных последовательностей флагов. Хочу понять, что это за группы и сколько их.
>>1429935 > на какие группы разбиваются все инструкции на x86 Ну оно разве что когда-то давно разбивалось: https://gist.github.com/seanjensengrey/f971c20d05d4d0efc0781f2f3c0353da (да и то, например софтварный INT не просто так cd, а потому что в 8080 по cd CALL был). Потом, в процессе развития x86, инструкции уже просто тыкали везде, где оставалось свободное место (а с ним было очень напряжно, из-за чего, например, pop cs под двухбайтовые опкоды реюзнули). Поэтому не стоит искать структуру там, где ее уже давно нет. Даже в RISC форматы кодирования дробятся со временем.
> количество групп, на которые можно разделить все инструкции, совпадает с количеством 4--байтных последовательностей флагов Нет. Например, "группы" для PUSH reg и POP reg состоит из 8 инструкций, расположенных последовательно. А вот в PUSH sreg (для es,cs,ss,ds) сегментный регистр указывается в середине инструкции, т.е., "группа" как бы существует, но получившиеся опкоды разбросаны по всей таблице.
Если реально интересно, возьми мануалы интела постарше (типа 486, а лучше 8086), там инструкции хоть и сгруппированы по применению, их структура наглядно нарисована, можешь спарсить оттуда данные и погруппировать.
Кто нибудь находил какие либо технические детали по поводу Memory Integrity с использованием HVCI? Такими темпами винда убьет всю малварь сама и антивирусы станут не нужны, как в случае с макосью. Что думаете?
>>1430397 > Такими темпами винда убьет всю малварь сама Как это защитит от на коленке сделанного скрипта из десяти строк, который зашифрует Documents и попросит бетховенов?
>>1430554 > Одно слово - SRP. Ну ты у себя настроишь. А кто будет пользователям объяснять, почему у них инсталлятор скачанной программы не запускается? А если запускается? А если в инсталляторе тот самый скрипт?
>>1431394 – Вот как мне, интересно, файлы получше заражать, – размышлял Винни. – Если я положу в начале программы RET, а стек заставлю смотреть на адрес возврата…
– Кого заставишь смотреть? – испугался Пятачок, которому померещилось чего-то страшное.
– Стек, – сказал Винни Пух.
– Ага, – сказал Пятачок понимающе и отодвинулся от монитора подальше.
– Вот… Заставлю его смотреть на адрес возврата, то Пчелы, наверное, подумают, что это просто какая-то ошибочка и ничего не заметят. А если я поставлю вначале переход на вирус, как вызов процедуры, то Пчелы, наверное, подумают, что это маленькая подпрограммка и тоже ничего не заметят. По-моему так.
– Ага! – поддакнул Пятачок.
– Ну, чего будем ставить? – спросил Винни.
– Я? А… Его… Знаешь, Винни, – сказал Пятачок решительно. – Если там кто-то на кого-то будет смотреть, то это очень страшно. Давай лучше ма-а-аленькую парт… порт… прод-программочку, все равно Пчелы ни чего не заметят.
– Устами поросенка глаголет Истина, – сказал Пух важно, решительно опуская лапы на клавиатуру, и Пятачок заметно покраснел и стал выводить левым задним копытцем неопределенные круги.
Обсудим теперь эту книгу? Помню алиса в твитере так пафосно прокомментировала книгу. "не буду утверждать, что всё написанное про меня правда". А оказалось, что про неё там 2 абзаца скопипащенных с форбса. И странно, что не упоминали диму краша из-за которого как раз и попала под санкции алиса. Хотя сама виновата, что понабрала школьников с античата в компанию. В gib например всех на полиграфе проверяют и каким бы талантливым он не был его бы туда не взяли.
В нулевых был какой-то годный русскоязычный журнал, который каждый уважающий себя асемблятор выписывал, название было из двух слов, журнал точно был one of a kind, может тут кто-то вспомнит?
>>1431583 Да, хочу, например, пропатчить адрес возврата и записать что-то типа mov dword ptr[esp+1], 401000h. Что надо делать, чтобы все ссылки не поехали? Есть инструменты, которые автоматизируют такой патчинг?
>>1432368 Как виннипух тебе написал. Вместо call MessageBoxA делаешь call куда-то в пустое место программы, а там делаешь что нужно. Пчелы подумают, что это маленькая подпрограммка и ничего не заметят.
>>1432376 Понял. У меня как-то не так встали адреса. В hiew я выбираю edit->Asm и ввожу push 0401000. Это адрес подпрограммки, которая выводит окно. Но в OllyDbg видно, что обращение происходит вообще не туда. Видимо, я не умею правильно записывать адреса в hiew. Как это делать? Потом я хотел переместить вывод окна в пустую область нулей, но команда call MessageBoxA не ассемблировалась. Как ассемблировать вызовы импортов?
>>1432638 Вроде, это https://fuckav.ru/showthread.php?t=32169 Суть такова. Там внезапно появилась тян, которая стала активно тусить на форуме и влезать в каждый тред, чтобы показать свою компетентность. Предлагала безвозмездную помощь. Тем не менее, все обращались к "ней" в мужском роде. Потом она там начала барыжить и ее поймали на барыжничестве чьим-то криптором.
>>1432640 Какая-то ересь полная. Заказчик там сам мягко говоря с программированием мало знаком, исполнитель - тоже. Я что-то передумал даже книгу читать, если там о таких товарищах пишется. Или годная все таки?
>>1432685 >Я что-то передумал даже книгу читать, если там о таких товарищах пишется. Это и есть настоящие хакеры. Люди, которые хуево знают программирование, но любят залезать в анусы операционных систем, чтобы поиметь с этого деньги. Такие товарищи носят в своих вирусах bat-файлы. А в книге еще рассказывается про барыгу оружием.
>>1432688 Да уж. Из всей этой тусовки только персонаж Indy вызывает доверие. Олдфаг со стажем, помогает бесплатно, ресерчит даже что-то успешно. На забугорных форумах видел упоминания о нем и похвалы. Жалко конечно что у него своего блога нет, приходится в интернетах сообщения выискивать.
Короче нафик этот хакинг, тот еще пердолинг, либо чернухой заниматься и вот такие кадры будут тебе написывать, либо в какую-нибудь Лахту-2 устраиваться, где тебя на полиграфах будут насиловать.
Тут по-моему единственный адекватный выбор - это идти малварь реверсить к какую-нибудь тир2-3 ав кантору.
>>1432792 Давай решим сначала, что такое хакинг. По ссылкам выше ребячество. Пару сотен строк кода с использованием документированного апи. Это хакинг разве? Такое даже в джава треде осилят.
Ты чего так загорелся-то? Я тебя задел что-ли? Ну если хочешь, давай проверим чье кунг-фу сильнее. Придумывай задание.
>>1432816 >Придумывай задание. Реализуй аналог WinApi функции LoadLibrary, получающей указатель на буфер в памяти с содержимым DLL-ки вместо имени файла.
Хочу написать низкоуровневую программку, которая прочитает от юзера два сколь угодно длинных числа, сложит их и выведет результат на экран. Без аллокаторов памяти и прочего. Как это можно сделать? Я хочу заюзать прерывания биос, но тогда, наверное, придется работать в реальном режиме. Прерывания ведь недоступны из ПМ? Как еще можно решить задачу?
>>1433210 > Как еще можно решить задачу? Никак. Защищенный режим на то и защищенный, чтобы не давать тебе доступ к железу в обход дров (мы же про ОС говорим, а не про код, который сам в защищенный режим переключается?). Алсо, вот как раз в реальном режиме ты можешь обойтись и без прерываний, выводя напрямую в видеопамять.
какие поля у структуры линуксового модуля могут быть интересны при разработке IDS? можете посоветовать какой нибудь современный цикл статей по фундаментальным структурам линукса типа процессы, сетевые соединения, модули и тд, чтобы читалось легко?
>>1433196 Издеваешься? Исходники на васме еще с 2000 года висят, куча современных аналогов на гитхабе. Реализаций отображения буфера в целевой процесс может быть несколько, также как и вызова мейн функции. Давай корректное задание с описанными деталями реализации и не то которое придется весь день писать.
Вот например. Самая обычная реализация с использованием высокоуровневого документированного апи. Выделяешь виртуальную память в целевом процессе, записываешь туда буфер, правишь его согласно правилам pe-формата, вызываешь мейн функцию по средствам создания нового потока. Никаких хаков.
>>1433437 Сойдет, хотя код жопошный, конечно. Хоть бы RAII-врапперы понаписал для базовых вещей, и макрос для доступа в структуру с проверкой валидности смещения.
>>1433437 > с использованием высокоуровневого документированного апи Давай заценим: 1) Формат не проверяется совсем, вообще, никак. Скормив этой фукции сломанную длл или неподдерживаемую длл (см., например, типы поправок, которые не проверяются тоже), можно уронить все нахуй. Да этой хуйней можно mp3 грузить! 2) Модуля нет в PEB_LDR_DATA, многие функции Windows API с этой "длл" работать не будут. Например, та же работа с ресурсами. 3) TLS не поддерживается. 4) Activation context-ы не поддерживаются, load configuration не поддерживается, 64 бита не поддерживаются, runtime function table, куча других сколько-нибудь современных вещей - нет. И это я еще молчу о тонкостях PE-формата.
>>1433447 По хорошему надо PE-парсер туда имплантировать и разные врапперы/хелперы, а так да, нечитабельно.
>>1433462 Правильно, это POC скорее всего, а не полноценная реализация. Но хацкеры обычно инжектят голые длл или шеллкод, где нет никаких TLS, эксепшенов и прочей лабуды. Грамотный парсер PE-формата фиксит все вышеперечисленные тобою проблемы. Кроме того, я уверяю тебя, что все это вообще не нужно, ибо весь функционал можно реализовать в рантайме.
>>1433471 > А что там за тонкости PE-формата? Ну я имел в виду всякие банальности типа VirtualSize = 0 у секций. Код не читал, только скроллил.
> инжектят голые длл или шеллкод Там выше просили "аналог WinApi функции LoadLibrary", а не шелкоды-инжекты-хаки-спамы-куки. Шелкоду PE-лоадер без надобности.
> я уверяю тебя, что все это вообще не нужно Это у тебя просто никогда MessageBox() не фэйлился из-за того, что лоадер SxS не умеет.
>>1433520 Тогда и смысла реализовывать это все руками нет, если не для хакинга. Некорректная задача. Реализовать все и не получится, потому что есть куча мест, куда нужно что-то впихнуть, где-то счетчик ссылок поправить забыл и у тебя все упадет.
>Это у тебя просто никогда MessageBox() не фэйлился из-за того, что лоадер SxS не умеет. Приведи пример.
>>1433546 > Приведи пример. Деталей уже не помню, много лет прошло. Примерно так: XP, comctl32 в импортах, отсутствие InitCommonControls. MessageBox возвращал 0 с валидными параметрами. Допилили SxS и заработало.
> если не для хакинга Для моддинга. Грузилась игра, правились/подменялись импорты и код на лету. На WriteProcessMemory возбуждался антивирус, пользователи пугались, поэтому был запилен лоадер. Потом по-другому сделали, правда.
>>1432090 А неплохая все таки книженция. Интересные истории получились, кому-то повезло, кому-то совсем нет. Ну а про наше внутреннее устройство и так все знали, разве что навальнята вон пусть просвещаются.
Пытаюсь расковырять в IDA Pro обычную программу (хэллоуворлд), скомпиленную в Visual Studio. Я долго искал main через _start, в итоге обнаружил, что он вызывает метод с двумя вложенными методами с двумя вложенными методами и так далее... Разок наткнулся на строку, которую программа выводит, а сам метод printf вызывается не в той подпрограмме, где значение кладется в стек, а через два слоя таких вот sub'ов! Анончик, почему все так дико?
немного оффтоп, но может кто нибудь знает. есть произвольная линуксовая система, на которой запущен скрипт командой python3 scriptname.py от имени рута, но запускал не я, хоть и есть доступ к руту. ни в / ни в ~ рута скрипта scriptname.py нет, да и через find/locate по всей системе он тоже не находится. мне нужно узнать, что именно делает скрипт, в иделае вообще получить его сорсы. как это можно сделать?
>>1435340 Это значит, что ты пидор не умеешь учиться, и ждешь, что кто-то решит за тебя задачу. С таким подходом в ИБ делать нечего. В качестве общего подхода, могу посоветовать тебе смоделировать ситуацию, и смотреть там, что и как.
>>1435353 ух ты блять какой. ну и ладно, придется тратить время и гуглить, я пришёл сюда за помощью с нетривиальной проблемой, потому что вроде как для этого форумы и нужны, но если тут только нахуй посылают с вопросами, то чё делать, пойду искать решение сам.
>>1435340 Это значит, что питон не держит файл со скриптом открытым, а скрипт, скорее всего, себя уже удолил, раз find не находит. Хотя ты в /proc/<pid>/cwd смотрел? сдампи память процесса
>>1432090 >Обсудим теперь эту книгу? Хунта из под коня. Серьезно, кроме пары интервью вообще ничего нового/интересного. О каких-нибудь технических деталях я уже вообще молчу.
Такой вопрос. Я тут статью на хабре прочитал, там парень рассказывал, как занимался реверс инжинирингом контроллера лифта в подъезде. Насколько нужно быть профессионалом, чтобы провернуть такое? Вот допустим я чисто поприколу хочу влезть в лифт в падике и кнопки перемешать (теоретическая ситуация). Сколько мне нужно будет обучаться, чтобы смочь такое?
>>1406213 (OP) дело было вечером, делать было нечего, забэкапил на гит/гитбук с wasm.in перевод "Введение в реверсинг с нуля, используя IDA PRO" от Яши. Из плюсов гитбука - полнтекстовый поиск. Есть еще чем там заняться, но это уже по времени/возможности. Или если кто то сам поправит и пулреквест пришлет
>>1436491 это как вырезать гланды через жопу. Залезаешь в падк, снимаешь панель, тасуешь кнопки. профит. а в статье описано то что делалось овердохуя жопачасов
>>1436495 >анус разработать Да я же незаметно. Ночью залезу и сделаю всё. А если серьезно, интересен просто сам вопрос, сколько времени нужно изучать материал, чтобы смочь сделать такую вещь. Или, вот адекватный пример. Есть у меня например кофемашина. И я пару кнопок не использую (ну там где пенка и тд). Я хочу сам залезть и перепрограммировать так, чтобы на эти две кнопки делалось другое (кофе с выбранными параметрами). Чтобы не крутить вертушки и не настраивать, а просто кнопку нажать.
Так вот, насколько это сложно для человека, который никогда платами не занимался и реверс инжинирингом тоже? Сколько потребуется времени, чтобы научиться?
>>1436638 Так не интересно. Да и это решения уровня, стереть вообще цифры у кнопок. Тут же вопрос скорее общий и теоретический.
>>1436721 А обязательно свою прошивку писать? Нельзя ли просто немного изменить ту, что уже есть? Может и тупой вопрос, я просто никогда этим не занимался.
>>1436755 зависит от целей и размаха. начни для начала прогать, и смотри на результат. Заодно разбирай все что пишешь. У Юрича все хорошо написано.
В шапке : beginners.re - "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна!
аноны, помогите, как работать с режимами процессора в асме? я знаю его не очень, но просто интересно для себя покапаться в защищёных и прочих режимах проца, чтобы понять разобраться и получить базовые скилы.
Извиняюсь за небольшой оффтоп Кто может сказать где сейчас 29A,z0mbie и прочие крутые вирмейкеры из начала нулевых?Когда они все это творили я только родился,так что не застал.Интересна их судьба
>>1438001 >год появления 1970 Потому что ему (ей) больше, чем большинству посетителей этой (и любой другой) борды. Хотя уже яваскрипту с пыхой больше 18, теперь даже с ними не зазорно трахаться.
>>1438003 >Хотя уже яваскрипту с пыхой больше 18, теперь даже с ними не зазорно трахаться Я бы не стал. Велики шансы подцепить рак глаз или даже мозга.
Аналогичный бэкап курса Нарвахи по азам но уже на примере Ольки КМК, тут основы лучше рассказаны чем в курсе с идой, там их по верхам. И вообще базу все же лучше отдельно, а материал по инструментам отдельно. Но как есть
>>1406213 (OP) ТЫ, КТО СМЕЕТ ЭТО ВАШЕ ДЕРЬМО ПОГАНОЕ ЗДЕСЬ ХЕРАЧИТЬ, ЭТО ТЫ, ТАК НАЗЫВАЕМЫЙ БАЙТОСЛЕСАРЬ, ТЫ ГЕЙСКАЯ МРАЗЬ ПОГАНАЯ, ТЫ МУДАК СРАНЫЙ, ВОНЮЧИЙ ТЫ УРОД, ПОДОНОК, ЧТОБ ТЫ В НИИ ЗА 30К В МЕСЯЦ ГНИЛ, ТВАРЬ, ГНИДА ПОГАНАЯ! Я ТОЛЬКО НАТУРАЛ АБСОЛЮТНЫЙ, ЧИСТЕЙШИЙ ГЕТЕРО ПОЛНОСТЬЮ, НАВСЕГДА ТОЛЬКО НАТУРАЛ Я - ТОЛЬКО ДЕВУШЕК ОДНИХ ЛЮБЛЮ, ТОЛЬКО ДЕВУШЕК КРАСАВИЦ И ВСЁ!! ТОЛЬКО С ДЕВУШКАМИ ВСТРЕЧАЮСЬ, ТРАХАЮСЬ С ДЕВУШКАМИ СПЛЮ ТОЛЬКО! И ПРОГРАММИСТ Я ТОЛЬКО И ВСЁ!
>>1438081 Нет, макросы fasmg гораздо мощнее и позволяют делать вещи, невозможные или требующие костылей в fasm1 (хотя кое-что Томаш бэкпортировал уже).
>>1438120 >В НИИ ЗА 30К В МЕСЯЦ А где там зарплаты? Последнее предложение, что я видел, было 12. А я и в частной программистом на битриксе 30 умудряюсь получать.
>>1406213 (OP) Аноны, вопрос не совсем по теме, но спрошу - какие книги есть по машинному обучению в RE? Машоб-тред - помойка, там спрашивать бессмысленно.
прошу проверить дано одно прерывание приходит каждые 13.57см необходима скорость в кмч это инт могу на индекаторе отображать только 4 знака тое 1234 точку естествеенно буду ставить в ручную тое 45.5кмч это 455
а именно 37980 последний нуль смущает нелюблю нули оказываеца тхл и тхх карочи это таймера и прерывания к примеру есть таймер у него 2 регистра по байту тх и тл как только тл 256 тое =0 0хфф он клацает камнем тое нельзя сделать так нижний регитр +2 кагда он 254 верхний не щелница нихуя
че забред? задаст вопрос зумер ога этот бред начинаеца кагда ты начинаеш развадить второе прерывание по первому таймеру притом это второе прерывание очень долгое и можето и 1 раз за перва тайиер и один раз за 200 таймеров
>>1437865 не тупи маняме .... после кросплатформы у твай няфы вместо ушей хуи вместо глаз залупа... один хуй все перещитывать в ручную я эту константу шитал 10 часов в течении полугода и та мине не нравица потомучто физики дахуя тое внешних условий сверх быстрых просто ниебическое количество
>>1438491 Ну вот с fasmg ты можешь генерировать дебагинфу в любом формате, для которого только сможешь написать макросы (азаза. А в обычном фасме у тебя есть .fas и конвертеры какие-то вроде были для него, но сразу CodeView (PDB) он тебе не сделает.
>>1438597 не трахай мозг мальчик поверь мне достаточно всеголиш знать канкретные точки и количество времени да оно будет плавать +- 0.0001 но ты ахренееш от физики больше вот сматри к примеру я тут недавно пытался решить мазгом анона канкретную задачку проще оказалось взять ручку и написать все на бумаге я серьезно. а задачка достаточно проста есть прерывание оно происходит каждые 13.57 см тое стоит датчик и каждый оборот диска равен этой величине есть таймер один тик которого пол микросекунды этот таймер задающий и трогать его тое перезапускать нельзя он как начал со сваих 0хе100 так и ебашит до переполнения вся его работа занимает 3.98милисекунды
ну а теперь задача надо вычислить километры в час
я об том что никакой фасм тасм хуясм не сделает твою работу по приведению физ виличин к требуемому порядку один хуй все считать надо в ручную и выводить константы
невериш? тагда тебе очередной пример печка шизика неповериш я 3 месяца трахался с этой хуйней смысл вот в чем на печке в качестве ключа стоит семистр его вольт амперная... карочи я могу дергать им только на включение на полу волне тое подал импульс и он включился все просто? да когда у тебя либо включить либо выключить либо 50 процентов
а что если необходимо 37 процентов? и тут я начал знатно обсераца - осозновая что оказываеца полуволна это синусоида тое ..... карочи я пришел сюда с этой проблемой и гдето неделю формулировал анону задачу он мне дал решение ты не повериш я его прогнал и оно оказалось верным не без косяковканешн но анон и не говарил что идеально жопа началась чуть позже кагда я решил загнать эту формулу в исполняемый код не повериш эта вся залупа выполнялась чтото около секунды и занимала в коде ниебучее количество места ........ и лиш включив мазги просчитав туда сюда подумав и прочее я написал пик анону спасибо печка уже 4 год греет маю запойную задницу и пряма сейчас сушит 30кг яблок
вообще 8 бит это не столько программирование это больше понимание физ процессов епта нам в шараге препода искали помоему пол года на предмет математические величины физических процессов врать не буду но там именно была та хуйня чем я сейчас занимаюсь канкретно есть датчиг? приведи его и поверь датчиги разные бывают и настолько порой узкие пределы и ограничения.... это просто пиздец... к примеру мой топливный на матарошке ну вроде все заебись ога? он емкостный он кажет маи три с половиной литра с точностью в милилитр все заебись недогадался в чем жопа? угу бак сцука кривой а по мулилитру наливать три с половиной литра бензак то еще мероприятие калибровки ведуца разработки совмещеннаи с др проектами... но как обычно на бумаге то оно заебись а вот на практике таже стенка цилиндра хоть и из стекла ... проект не завершон много говарить не буду.
карочи один совет везде где есть возможность считайте все в ручную да да на маленьких машинах это не такуж и сложно угу не сложно я эти 37к считал помоему все лето.. а других вариантов ну просто нет канечно можно пользоваться функциями библиотеками и прочей так любимой стмщиками залупами но говарю сразу все это платно и глючит да ГЛЮЧИТ- не верите? гуглим как тормазнули штрихи все маниты в рфии под новый год какраз там переходили... че говарить не одни они понадеялись на функции и библиотеки многие если не все заводы обосрались ... это шаз они в курсе а тогда камуто на граблях прыгать приходилось и кстати досих пор не все научились канечно с приходом атмеги и почих стм контроллеры шагнули и притом порядочно так одна андурина чего стоит - если раньше мне чтобы мигать ногой контроллера необходимо было иметь погромматор стоящий под 20-30кр, высшее образование чистого программера, понимание всей этой ебучей структуры, читание даташитов и прочих особеностей ядра то сейчас любой школьниг может дергать ногой контроллера а у меня в свое время при наличии оборудования и знаний ушло если недаст бог спиздеть чтото около полу года чтобы начать мигать... канечно никто не отменяет загадку шизика про обычную шариковую мышку но блядж байтоебство это уже сравни шаманству и я даже за12(ДВЕНАДЦАТЬ) лет все в сраном 8 битном камне все не знаю, не говоря уже о переходных 16 битных и современных 32битных стмах да умоом то я понимаю что все то оно в принципе тоже самое но нет предела совершенству и каждый раз агда смотриш на прерывание есть желание прогнать его в 100500раз и сократить ну хоть сцука на пол операции на четвертиночку хотябы на осьмушку... https://youtu.be/98LyQvwV1y4
>>1438548 >>1438572 не в ДСах тоже может если образование соответсвующие - кандидатская есть, идешь на пол ставки туда на пол ставки сюда, и полявляешься по 2-3 часа в неделю. А получаешь как за полные ставки)
>>1438604 >и тут я начал знатно обсераца - осозновая что оказываеца полуволна это синусоида тое ..... >карочи я пришел сюда с этой проблемой и гдето неделю >формулировал анону задачу >он мне дал решение
блэт. еще один сказочни пропустил школьную математику.
>>1438604 >а у меня в свое время при наличии оборудования и знаний ушло если недаст бог спиздеть чтото около полу года чтобы начать мигать... еба, ты чо тут чешешь, птушник что ле? >так одна андурина чего стоит - если раньше мне чтобы мигать ногой контроллера необходимо было иметь погромматор стоящий под 20-30кр, высшее образование чистого программера, понимание всей этой ебучей структуры, читание даташитов и прочих особеностей ядра
еще и ардуины восхваляет %) хоспади. более кривущего и монструозного SDK я пожалуй не видел. атмеги хорошо, ардуина детсадовское поделие из говна и палок.
>и я даже за12(ДВЕНАДЦАТЬ) лет все в сраном 8 битном камне все не знаю, не говоря уже о переходных 16 битных и современных 32битных стмах это всего лишь твои 12 лет которые ты нахуй проебал вместо того чтоб что то изучать. методом тыка и изобретением велосипедов занимался
Вы чё уебки? Да благодаря ардуино даже самый отсталый птушный электрик без опыта проги может закодить игровой автомат и каждого пиздюка в округе на десятку наебать. У меня все. рты ваши ебал, дети, выросшие на журнале хакер
Подкиньте, где есть подробное описание флагов секций pe-файла и какие они могут принимать значения (или в теории там можно выставить любые комбинации, и файл останется валидным?)
>>1438620 хорошо мой сладенький сформулирую для тебя более точно ту задачу есть семисторкак он работает пояснять стоит? ок поясню без учета тонкостей смысл в следующем это ключ своего рода релюха кстати буржуины и некоторые другие источники его так и позиционируют как твердотельное реле тое его примущество в том что он в отличии от транзистора или тиристора может пропускать ток в обоих направлениях - технически это 2 тиристора включенных встречно парралельно.ю тое если приложить напряжение к истоку и затвору то на истоке можно снять ток тое он откроеца, но кака вся в том что пока не поменяется полярность приложенного напряжения он хуй закроеца( есть канечно запираемые семисторы точнее тиристоры но это разработки еще 70-80 а потом настал пиздец совку и о них забыли... карочи опустим здесь еблю с разводкой и прочей чистолипиздроникой сделаем шаг ближе к програмингу тое управление происходит примерно так по прерыванию детектица момент перехода фазы из +0... в -0... СМ. ПИК там этот момент зиленой стрелкой тое мы берем стартовую точку для таймера его запускаем и считаем надо 100 процентов мошности? подаем управление с самого начала , надо 50 процентов мощей? хорошо период синусоиды нам известен тое время за которое волна от нуля до нуля сделает это ебучее перемещение его можно тупо поделить на 2 хорошо но жопа начинается кагда необходимо ну к примеру 27 процентов мощности тое мощность линейна - человеку проще линейно осознавать понимаеш? но потомучто это синусоида там нихуя нету линейности почему? вольт амперная тое сматри на пике волна имеет 220вольт ток строго один нагрузка печка шизика - спираль 2х киловатная от промышленной плиты - пиздюкам на таких в школах и садиках хавчик готовят поварихи которых я ебу в обоих смыслах кого на мешке с картошкой кого за мешок с картошкой - кушать прикались тоже хочеца... карочи неудивительно что выделяемое количество мощности в виде теплоты нихуя ни разу не зависит линейно от времени включения семистора тое на начале волны напряжение меньше следственно и ток меньше карочи ебаная синусоида я об этом пару тредов создавал на радиаче моча их терла потомучто я там устраивал филлиал /б а подругому я не могу карочи там мне школьнеги рассказывали что надо тупо клацать семистором и считать полу волны типа шим вот тут и началось обсерание мачи радиачевской - канечно эта пидораска не хотела считать всю эту залупу а с семисторами знакома была лиш из книжек, а я на тот момент уже чинил цеха начиная от кондитерки молочки и заканчивая... карочи в очередной раз как меня там побанили я засел за умные книжки=интернеты онял что необходимо эту залупу считать через площадь синусоиды ты правильно сказал в школе я алгебру курил( посему пришлось после пары безуспешных тредов в /б задать вопрос тут и не повериш спустя 2 дня задача была решена так изящно что наверно досихпор является этолоном по применению семисторов.
>>1438622 >еще и ардуины восхваляет %) ты реально тупой? или просто не шибко умнай? или выдернул из контекста фразу и ею наслаждаешся = тролиш? насколько я помню я реально в 25 лет серьезно потрахался именно на этапе зашить точнее написал дернуть порт - увидел осцилографом что порт дернулся плюс андурины в том что пиздюк СМОЖЕТ а дальше... себя вспомни епта
>>1438622 >и изобретением велосипедов занимался иногда манЯ проще тупо этот велосипед взять и изобрести нука давайка мне сходу за пол часа ок сутки связь по и2с с 24с256 и (или) 24с512 для 89с52 камня отсчет времени пошел небудет ты пиздабол пидор гной и гусик тебя отвечаю выебет во сне или ты думаеш я 12 лет занимался лиш написанием кода??? а на море баб ебать? а деньги зарабатывать? а тупо бухать рыб ловить и сабирать туже точить на токарке матарошку??? отдыхать на клопятне... та ибать тебе как тупой голодной псине кинули кость ты в нее вцепился как последний школьниг аутист максималист и теперь думаеш меня тральнуть? иди нахуй чемто ты мне мачу с радиача напоминаеш тоже всех обсерает уебок а сам нихуя ниче толком не сделал лиш анона обсерает пользуясь безнаказанностью мочераторских прав
кстати для всех остальных ушлепков из радиача я нашол вашу лежку дада тот самый шизик ... загадка про шариковую мышку не отменяется >>1438622 >это всего лишь твои 12 лет которые ты нахуй проебал а ты элементарное решить не можеш уже 5 год дада та самая загадка про инкремент и декремент на обычной шариковой мышке или зумерку рассказать что такое мышка с шариком?
>>1438913 У исполняемого файла есть секции, у секций есть набор характеристик - по-моему, dword. Где можно прочитать подробно про значения, которые туда могут устанавливаться?
>>1438935 про екзешниг чтоли? это зависит от ОСи под которую компилиш здесь ломать бесмысленно любой кастрат путем подсчета контрольки тебя ебанет на первом же ветвлении даже я тебе на этот ответ ничего не скажу пойми одно основная программа обязана работать иначе тибя сдиванонят карочи используй ихнее барахло против них же самих теже сдвиги никто не отменял а саседу интернеты повесить проще со шприца электралита многократно впрыснуть в витую пару и пиздец движения должны быть ну карочи ты понял несколько 5-7 хватает можеш дома потринероваца
>>1438935 пойми одну простую штуку кагда ты зашиваеш ты даеш фактически ось контроллеру тое ось пишеш ты а кагда кампилиш екзешниг ты работаеш не на железо ты пишеш под ось прикались и в железе хуева гора дыр и тупо повесить - перегреть локально ... в конце нулевых было модно упарывать винты путем циклической записи чтения в один и тоже сектор позже это изменили но один хуй народ находит дыры
пойми одно мы не деструкторы пойми мы железячниги мы созидатели мы можем но не видим в этом смысла самочки поверь не стоят мы канечно можем кагда на самочек там нехватает дернуть систему но какправило это оканчиваеца не ... карочи все это хуйня
>>1438958 Очень смешно, какой-то уебок нажрался и врубил вот эту в стиле "пойми, мальчик". А ты ведь очень тупой и тебя не накрыли хуями только потому что через твою орфографию лень продираться.
или ты досихпор вериш мальчиг что мне человеку 82 года рождения позволяли врать? много вас таких начинющих ложить шпалы а потом паравозы сходят с рельс почему? а вот на этот вопрос ты мне и ответиш
>>1439081 за столько лет, никаких подвижек, ничего не изменилось, значит никому не нужно это) и ты предлагаешь ему запилить?))) опенсорс такой опенсорс.
себя и вспоминаю. сел почитал повторил. как конструктор же. у ардуины плюс что прям по USB Шьешь и всё, но такое сейчас и в нормальных stm-ках есть которые на развес, да и атмеги такие имеются. Ардуина изначально неверное понятие у ребенка складывает о теме программирования железок в принципе.
>>1439068 хм утром позванили менты и уй он канечно раньше позванил но его проблему я отмел на телефоне и стал дожидаца званка от ментов ближек к обеду мент раздуплился и мне позванили за 15 менут менты сказали сабирайся замно1й ехала машина там мент маер таксист на своей машине я приехал ме дали новый станок паяльниг и я 3 часа просто в кайф с бутылочкой крепкого ледокола запилиил ментам проход через кирпич попял уголки там это такой кайф чпок бах и все на месте и ровняй..... канечно я минут 15 сидел и тупил как этот проход через кирпич селать красиво чтобы мент ссался кипятком и др ментам рассказал что ... жизнь обязанна быть разнообразной
к примеру вот над решить какую задачу тотжи ебучий датчиг но зато я онял что оптика в этом случае не лучший вариант да допустима но не стоит хотя коегде дает карочи пик скорость мне успешно решили маи мазги кусок бумажки и ручка.. теперь нуда решать более заебную задачу из тогоже прерывания
хорошо скорость мы посчитали пускай и некоторыми потерями но то хуйня не думаю вполне возможно потом учитывать да и похуй ктото там не знает что такое пределы ? ну хорошо поясню на палцах. первое я незнаю когда отработает прерывание вполне вероятног ссработает в это время другое но я знаю что в моем камне очень ахуительно реализованна именно скорость ... атмелы пошли по пути масштабирования и ввелидлинную очередь прерываний это механика ели что и кстьати ани обосрались на 16 архитектуре но смысл был нев этом кагда есть задача от них то поверь ты ее решаеш вот и у них была задача запилить стм 32 да перспектива да выебоны да я могу продать мидведю и надо всетаки както дергать уметь в одном камне этим ебучим управляемым вектором тяги да и чмошниг автоблядок не откажица от красивенькой музычки в 10 динамиках ога? да они пытались да это возможно и 32 архитектура при нынешних
а драйвера... чет дахуя длинным получилось лирическае отстумпление да адача анону теперь блядь се как кретину разжовывай все тоже ебаное прерывание мы прошли 13.57 см теперь нам надо сохранить это огаа ну для этого зимой была к камню припаяна флешка и запиленна функция тупо срущая по адресам так срать байт(первый байт адреса, второй байт адреса, значение, срать или читать?) воот типерь мине надооооооо чтобы тама сохранялось а что я хочу видеть? ну технически я могу каждое прерывание но флешка то не бесканечная по операциям ридврит да напаяю я там еще пару кмикрафорад танталу тое надо ну нехочеца жке тоже терять ога? и здесь совки придумали перваи на планете такую хуйню как свертка информации решение спорное канечно но необходимое да и флеша медленная память нада кстати по верклочить он и 33мхз схавает а под танталом ух бля карочи надо както теперь срать пробег на флешку я в принципе предварительно думал у меня индекатор может только 4на4 и вхдные на еего функцию инты но резанные тое только 4 знака тое 9999или0001 тое карочи опять байтоебство как ономеня заебало ячейку необходимо заполнять и использовать более эфективно ну допустим у меня матарошка каждую сотню осмотр каждую тышу то ... 5к км значит нормально а потом я пойму ... а мжет я туплю?
>>1439085 Ему нужно, видимо. Я вот не пилю, потому что не понимаю, что может добавить отладочная инфа в изначально ассемблерный код, который тобой же и написан. А вообще, решения разной степени костыльности уже запилили, просто прямой генерации .pdb нет.
>>1439136 не соглашусь пожалуй вот сматри есть прерывание а три пять таймеров тиктачат и встает вопрос величин может не дергать этот таймер три раза пускай посчитает? а может его стоит сократить и сделать чаще? и дергать вообще раз в 10 его прерываний? а одинадцатый отсчет в котором ты смотрел списать на погрешность?
всегда придеца бороца с погрешностями ктото считает на бумажке код ктото расчитывает его в мазгах не суть важно отладочная информачия для того и отладочная чтобы ты мог оценить ту или иную степень правильности принятого решения
>>1439136 поверь это как на токарке ты 3 часа настраиваеш станок серьезно от 20минут до порой недели если нужна ниебучая точность и серийность... а потом крутиш станок 2-3 минуты
просто мы старые пердуны в своем абсолютизьме настолько планку уже задрали... это как туже маск ифекты на 6 левле сложности ... а планка поверь мне настолько высока ччто... но ты еще мал и глуп прально нах тебе отладочная информация...
>>1439222 >моче похуй Причём здесь моча, даун? Тред я перекатываю, я тут не живу. Вы тут срёте со скоростью 1024 поста в секунду, и ещё чему-то удивляетесь.
Если бы моча убрала сраную рекапчу, запостил бы быстрее. Иногда думаю, что перерубание нахуй всего зарубежного интернета пойдёт рунету на пользу - хоть рекапчи не будет!!!
Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда.
Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.
Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.
Книги по 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-Engineering
https://www.reddit.com/r/ReverseEngineering/comments/hg0fx/a_modest_proposal_absolutely_no_babies_involved/
http://www.program-transformation.org/Transform/ReengineeringWiki
http://blog.livedoor.jp/blackwingcat/
https://yurichev.com/blog/
http://wiki.xentax.com/index.php/DGTEFF
https://exelab.ru/
Инструменты для RE:
Дизассемблеры:
0) IDA Pro 7.2 когда подберут пароль к архиву
1) IDA Pro 7.0.torrent (x64 only, для XP нужно патчить PE + вылеты)
2) IDA Pro 6.8.torrent
3) IDA Pro 5.0 - бесплатная версия для некоммерческого использования
4) Radare 2 - наконец прикрутили гуй, но по прежнему нужна только клиническим, не умеющим в скачивания торрентов, или пользователям альтернативных ОС
5) Ghidra для любителей анальных зондов от АНБ
6) Остальное
Все книги и статьи Криса Касперски (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://rutracker.org/forum/viewtopic.php?t=407571
https://www.unknowncheats.me/wiki/Assembly
http://asmworld.ru/
https://software.intel.com/en-us/articles/intel-sdm
http://www.nasm.us/doc/
https://sourceware.org/binutils/docs/as/index.html#Top
https://msdn.microsoft.com/en-us/library/afzk3475.aspx
disassembler.io Дизассемблер онлайн
Для ковыряющих винду и софт под неё, сайты с описанием структур со смещениями и разными версиями оных:
http://msdn.mirt.net/
http://terminus.rewolf.pl/terminus/
http://geoffchappell.com/
Предыдущие
№6 https://arhivach.ng/thread/415252/
№7 https://arhivach.ng/thread/437556/