В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (RE).
Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда. Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.
Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.
Инструменты для RE: Дизассемблеры: 1) IDA Pro Torrent Edition 7.2 | 7.0 | 6.8 на выбор. Иногда ограничения версий x86/x64, патчинг, вылеты прилагаются 2) IDA Freeware 7.0 - бесплатная для некоммерческого использования Важные функции/процы/форматы не завезли, саппорт все обращения ксорит побайтово. 3) IDA Home - тем, кто реверсит для хобби 365$ в год, ага. Умеет на выбор PC|ARM|MIPS, обычные и х64. Завезли IDAPython, но забыли Decompiler. 4) Ghidra - главный конкурент IDA Pro, разработка NSA под свободной лицензией. Тормозной Java UI, гипотетические звездно-полосатые анальные зонды в комплекте. 5) Radare 2 | Cutter - консольный + гуй на Qt дизассемблер. Умеет в Ghidra decompiler. Предположительно нужен только клиническим, не умеющим в скачивания торрентов, пользователям альтернативных ОС. 6) Hiew - Hex-редактор и легкий x86|64|arm дизассемблер за копейки. AV-ресечеры текут, вирьмейкеры боятся, поклонники st. Криса грят малаца. 7) Остальное
Отладчики: 1) x64dbg - х86/64 юзерспейс виндовый отладчик с открытым кодом не Olly же в 2020, верно?; 2) WinDbg - родной виндовый дебаггер от MS 32/64 битные приложения, драйвера, анализа аварийных дампов - это все к нему;
Пиздец, это больно. Лох это судьба. Следите за руками) Основная идея - после распаковки глифов изменить джамп на свой код который меняет глифы на русские. Нужный джамп найден, код написан. Где разместить этот код? Оказалось что игра начинается со 150 сектора, видимо так сделано для того чтобы не изнашивался cd-rom приставки(догадки). Значит я могу разместить этот код в 149 секторе, считать его в конец user_memory и пусть он там лежит и ждёт джампа. Но надо где-то разместить код на считывание этого сектора. Нашёл кусок кода который можно спокойно занопить, около 20 команд получилось, оказалось мало. Решил в начале этого 149-го сектора разместить код который бы сразу исправлял все джампы и возвращал код в исходное состояние. Сделал. Теперь игра запускается только на эмуле ePSXe, видимо другие эмули не понимают изменения кода после того как запущена игра. Решил найти побольше места чтобы разместить "полноценный" код на считывание сектора, без всяких изменений кода после запуска. Сделал, пикрилейтед. Теперь внимание вопрос: зачем вообще вся ебала с этим сектором, если в том месте где я разместил код свободно 1000 байт, 250 команд. Я же могу просто там сразу разместить код на изменение глифов без всяких секторов.
В этом треде есть финалисты хоть одного flare on? Это вроде как самый дрочёный подобный кункурс на планете для опытных сеньёров реверсеров, но пройдя все его челендши не обязательно сможешь попасть на собес в fire eye. Ведь финалистов каждый год где-то человек 200, а визы fire eye раздёт всего несколько десятков ежегодно. Похоже, что даже не всем финалистам пижет рекрутёр. Какой тогда нужен уровень чтобы получить офер хоть куда-нибудь из штатов? Учитывая, что большинство контор хотят гражданство, чистую биографию, полиграф и доступ к гостайне. Даже майкрософт теперь только таких нанимает. Пиздец короче. Я расстроен.
ну и да, зачем ты какие-то там сектора пердолишь, я не понимаю, на всех дисках плойки один и тот же формат - исполняемый elf файл с именем в виде сосоневского кода релиза и system.cnf, где биосу указывается какой файл читать.
XXXX_NNN.NN (Boot-Executable) (filename specified in SYSTEM.CNF) FILENAME.EXE (General-Purpose Executable) PSX executables are having an 800h-byte header, followed by the code/data.
000h-007h ASCII ID "PS-X EXE" 008h-00Fh Zerofilled 010h Initial PC (usually 80010000h, or higher) 014h Initial GP/R28 (usually 0) 018h Destination Address in RAM (usually 80010000h, or higher) 01Ch Filesize (must be N*800h) (excluding 800h-byte header) 020h Unknown/Unused (usually 0) 024h Unknown/Unused (usually 0) 028h Memfill Start Address (usually 0) (when below Size=None) 02Ch Memfill Size in bytes (usually 0) (0=None) 030h Initial SP/R29 & FP/R30 Base (usually 801FFFF0h) (or 0=None) 034h Initial SP/R29 & FP/R30 Offs (usually 0, added to above Base) 038h-04Bh Reserved for A(43h) Function (should be zerofilled in exefile) 04Ch-xxxh ASCII marker "Sony Computer Entertainment Inc. for Japan area" "Sony Computer Entertainment Inc. for Europe area" "Sony Computer Entertainment Inc. for North America area" (or often zerofilled in some homebrew files) (the BIOS doesn't verify this string, and boots fine without it) xxxh-7FFh Zerofilled 800h... Code/Data (loaded to entry[018h] and up)
The code/data is simply loaded to the specified destination address, ie. unlike as in MSDOS .EXE files, there is no relocation info in the header. Note: In bootfiles, SP is usually 801FFFF0h (ie. not 801FFF00h as in system.cnf). When SP is 0, the unmodified caller's stack is used. In most cases (except when manually calling DoExecute), the stack values in the exeheader seem to be ignored though (eg. replaced by the SYSTEM.CNF value). The memfill region is zerofilled by a "relative" fast word-by-word fill (so address and size must be multiples of 4) (despite of the word-by-word filling, still it's SLOW because the memfill executes in uncached slow ROM). The reserved region at [038h-04Bh] is internally used by the BIOS to memorize the caller's RA,SP,R30,R28,R16 registers (for some bizarre reason, this information is saved in the exe header, rather than on the caller's stack). Additionally to the initial PC,R28,SP,R30 values that are contained in the header, two parameter values are passed to the executable (in R4 and R5 registers) (however, usually that values are simply R4=1 and R5=0). Like normal functions, the executable can return control to the caller by jumping to the incoming RA address (provided that it hasn't destroyed the stack or other important memory locations, and that it has pushed/popped all registers) (returning works only for non-boot executables; if the boot executable returns to the BIOS, then the BIOS will simply lockup itself by calling the "SystemErrorBootOrDiskFailure" function.
The PSX uses the standard CDROM ISO9660 filesystem without any encryption (ie. you can put an original PSX CDROM into a DOS/Windows computer, and view the content of the files in text or hex editors without problems).
>>1839931 Надо отдохнуть. Там ещё ссылки на глифы же. Я, допустим, изменю глифы, так надо же чтобы глифы писались в нужном порядке. А я пока не знаю структуру этих ссылок, может и не зря сектор этот. Чем дальше, тем больше проблем. Как искать весь текст в игре? Все диалоговые окна, ладно, это потом.
>>1839891 Ты же понимаешь что лучше иметь портфолио, чем не иметь. Редко когда желаемое совпадает с действительностью, выстрелит в другом месте, может даже не в программировании. Но по любому ты ничего не теряешь, а только приобретаешь.
>>1840685 Меня больше напрягает не сложность это освоить, а то, что этого уровня недостаточно для больших достижений. Предел мечтаний большинства айтишников это попасть в кремневую долину и это многим удаётся. Даже индусам. А вот реверсеру с навыками даже чтобы пройти весь flare on всё равно сложно туда попасть. Было бы гораздо легче если бы существовал какой-нибудь достежимый порог пройдя который можно было бы получить офер на зарплату мечты.
>>1842631 Потому что работа реверсера в корне отличается от работы дева. Более того, около 90% вак на реверсера - это в ЛУЧШЕМ случае серая работа, а порой и черная.
>>1842631 обращаюсь к треду вообщем,не только к тебе не понимаю вашего желания РАБотать Вот ты весь такой супер гений,ищешь зиродеи,реверсишь все что запускается и не запускается,дебажишь ядро винды с закрытыми глазами и сука хочешь работать в обоссаной антивирусной конторе с анальными зондами в жопе чтобы потом сидеть ковырять сраную обфусцированную,виртуализированную и 100500 раз поморфленную малварь за не самые большие бабки Еще за это место жопу надо рвать,какие-то конкурсы решать,ехать куда-то в жопу мира на собес Вы ебанутые?
Почитал тред. Асм и реверс - онли хобби для себя, или там черех хекс сделать так чтобы у перса не было лука как в фар крае лол. Практической пользы от вашего асма то бишь обертки для си - нету. Лучше учить питон тогда или си шарп на крайняк. Да и порог вхождения - легче блять королеву британии выебать чем выучить асм рили. Я уже не говорю про диалекты. Кароче, скачал радар, написал хелло ворд на си, посмотрел оп коды в асме. И все. ДАльше не могу понять куда это применить.
>>1844060 Все так, но это уже завод, производство, те - это уже не рашка - порашка, и опять же - порог вхождения, либо с детства надо дрочить, либо акью должно быть выше 150 как минимум. В рашке - тем более что процы - это не ее конек, и при то что вся тех документация на ангельсом, и еще для каждого проца - куча разных регистров и прочая хуйня, с асмом рашке и реверсом - делать нечего вообще. КРоме хобби, или чернухи, но там трабла с трафиком уже.
>>1844070 Не все так печально. В срашке-парашке, конечно, с этим куда печальнее, чем в нормальных странах, но даже в парашке можно устроиться малварщиком в ту же лабораторию касперского. Да, нужно быть пиздатым, но это возможно.
>>1844694 Там же платят копейки ебанные,не? слышал о 50-70к не на юниора,а на нормального вираналитика В дс на эти деньги жить тяжело,только если у тебя своя хата мб
>>1845356 в парашке, равно как и во всей СНГ-помойке, только вебмакакой и работать, другие отрасли в айти просто мертвые. Хочешь получать много денег за байтоебство - тебе за бугор.
Вопрос от долбоеба... Есть онлайн игра есть для нее читы и есть один тип который релизит очень быстро - после обновления или патча самой игры... Быстро где то 3-4 часа край 5 часов...
>>1846025 Интересует как он быстро релизит с технической стороны... Читы его постоянно не в детекте + встроенный hwid spoofer Может есть какие то автоматизированные штуки на основе (SDK IDA PRO)по поиску оффсетов и рефлекшен классов объектов и прочего ...? А тоя в этом неособо сильно шарю как этот тип
Он может просто хорошо знать устройство взламываемой системы, думать на несколько шагов вперед, предсказывать какие дырки будут залатаны и иметь в запасе запасные эксплойты.
На прошлой неделе было два микро обновления в четверг и в пятницу... И кадый день и в четверг и в пятницу он накатил релиз нахой.... А я тут простенький радар не могу быстро зарелизить пиздос я долбоеб
Товарищ майор, спросите лучше ваших каллек из управления К - где они вам находят рабов что бы предлагать пойманым мамакиным какерам вместо срока под знаменем летучей мыши ГРУ взламывать американские сервера.
>>1846098 Для крутых ребят даже не чернуха приносит ебейшие бабосы. В зиродиуме фулл чейн на андроид стоит 2.5 ляма вечнозеленых. Да даже за RCE в ссаном роутере могут до 10к баксов заплатить. И это белая (на бумаге, по крайней мере) тема. Чернуха - умножай все суммы на 10-15, но там и шанс присесть очелом на бутылку, ибо система не любит махинаций с большими деньгами.
>>1847643 Интересный вопрос. Вот есть рце, я ее нашел, мне заплатили. Ок. Но на всех рце не хватит. Как быть? При условии еще что я еще ищу один, что я один самый умный, что кроме меня больше никто не ищет. Да и могут патч выпустить. Да можно еще присесть на бутыль и во время поиска. Так что это тоже такое - как хобби.
>>1847677 Ну, во-первых, секьюрити - это гонка со всем миром. Кто первый успел, того и тапки. Во-вторых, есть огромное количество софта, часть которого очень сложно поддается анализу. Пример - baseband прошивка смартфонов, которая крутится на отдельном процессоре проприетарной архитектуры. Чтобы подебажить/пофаззить такую прошивку, нужно, помимо реверсинга кода прошивки, реверсить ISA и писать кастомный эмулятор. Чем геморнее цель, тем меньше вероятность что кто-либо ее качественно анализировал на предмет уязвимостей. Ну а самый веский аргумент, повторюсь, количество софта в мире. Даже если взять отдельные крупные проекты, например, гугл хром, где общая кодовая база ~90 млн. строк кода почти полностью на С++, в таких кодовых базах ВСЕГДА будут уязвимости. Либо давно существующие и незамеченные, либо новые. Это игра в кошки-мышки, вечная гонка.
>>1847851 Есть страны, где свод законов позволяет подогнать деятельность зиродиума под незаконную, но деятельность зиродиума не незаконная в глобальном смысле этого слова. Так что тут зависит от того где ты живешь.
>>1847687 Уже можно. У него также есть гуй - Cutter. Можно писать скрипты на пайтоне как в айде, есть отладчик, анализ кода при дизассемблировании, работает с огромным количеством архитектур (больше, чем топ версия айды), есть декомпиллятор от Гидры, переписанный на С++, которые выплевывает очень достойный декомпилированный код. Лично плюс для меня - с радаром удобно реверсить драйвера в Линуксе, чего не скажешь об айде, которая с этим не дружит от слова никак.
Вердикт - в чем-то айда лучше, в чем-то радак лучше, но сказать можно точно - айда не стоит своих денег. Лет 8-10 назад айда была безоговорочным топом, никакой другой дизассемблер не имел и 1/100 ее функционала, но сейчас картина несколько изменилась. Помимо бесплатного радара есть платные, но не такие дорогие, аналоги айды - binary ninja, hopper, которые уже дошли до определенного уровня пиздатости, чтобы быть либо вровень, либо лучше айды в определенных задачах.
>>1847857 В прошлых тредах приносили ссылку на возбужденное по 273 УК РФ дело против читодела - тут главное наличие желания у органов исполнительной власти. Имхо, поиск/написание/продажа дыр/эксплоитов для кого угодно вполне укладывается в описание данной статьи.
поосиньте чем занимался этот чмооки бекрар,почему закрылся вупен Лучше продать блекушнкам,ей богу Они хотя бы не будут просить твои документы и счета,только кошелек монеро
Они типа пыневиков-вагнерков поварских чтоле? А то тут уже в штатах заочно банду сычей майоров ГРУ (которым вместо тюрячки предложили на ГРУ работать) осудили.
>>1848318 Реверс это почти всегда в лучшем случае серая работа,как сказали выше Если не брезгуешь,то блек форумы всегда рады квалифицированным лоу левел кодерам
>>1848325 А какие направления перспективны? Что востребовано на черном рынке? Например, я все таки захотел этим занятся, найтие черные форумы тоже не проблема. Вопрос что им нужно? Просто продавать зиродеи?
Читнул про реверс, это пиздец, надо знать не только все, но вобще все и даже больше https://qna.habr.com/q/431346 а выхлоп? в рашке - никакого, только хобби. Если знаешь все, то нахуй вообще нужен этот реверс. Если знаешь пыху, яву и пистон - то ты уже бог. Может как-то оправдаетесь?
>>1849260 вывод - не занимайся реверсом в рашке. Либо пиздуй в нормальные развитые страны, либо будь веб-макакой и мни себя богом, говнокодя на макака-скрипте.
Если решать crackme то можно выучить си и асм? Или надо начинать с другого конца? Вообще посоветуйте плис алгоритм с чего начать чтобы как-то вкатиться желательно без длительных прелюдий. Так как есть гугл и там быстрее в случае вопросов.
>>1849852 >без длительных прелюдий Не получится. Напиши что-то более или менее серьезное на С/С++, окунись с головой в кишки того, как работают ОС, выучи асм хотя бы одной архитектуры. Реверс не для новичков.
Раньше интересовался реверсом, работать пошел на джаве, т.к. надоело быть задротом. Работа унылая и сложная, но деньги дают. В качестве хобби развлекаюсь с микроконтроллерами. Кодинг занимается много свободного времени. На удовольствия, интересы, книги, фильмы, игры времени не хватает. Стоит ли дальше становиться задротом, или работа не смысл жизни и лучше быть крутым и умным лайфхакером, который всему самому лучшему в жизни обязан не трудолюбию и интеллекту, а лени, поиску легких путей, похуизму и гедонизму? Все равно сдохнем, но задрот сдохнет за пекой в луже мочи, а нормальный человек поживет себе в кайф, пропутешествует по миру и умрет среди своей семьи.
>>1850759 Если будешь ограничивать себя, деградируешь. Если будешь пробовать все что хочешь, всегда будет вариант вернуться к старому. Это беспроигрышный вариант.
>>1850759 А у меня новое хобби появилось - удалённо преподаю студентам раз в неделю. Каких-то заметных денег эта работа не приносит, но приятно делиться опытом. Забавно что студенты не знаю как я выгляжу, но хорошо знакомы со святым - видеотрасляцией полноэкранного режима.
>>1852906 А тебе ли не похуй, что в библиотеке лишнее? Своя сошка/дллка + небольшой лоадер, впатченный в целевое приложение - это самый удобный способ.
Здравствуйте, асмгоспода. Я хочу написать программу, которая инжектит программу (не асм стаб, а целую программу со всеми импортами SOшек) в адресное пространство другой программы, насколько это заебисто? Речь идет про Линукс и ELF бинари, соответственно.
>Я хочу написать программу, которая инжектит программу (не асм стаб, а целую программу со всеми импортами SOшек) в адресное пространство другой программы, насколько это заебисто?
Примерно так (только на ассемблере) (где pid - идентификатор процесса): Ну и потребуется рут, в обязательном порядке.
Для каждой архитектуры свои заморочки + есть вероятность соснуть тунца с ASLR
#include <sys/ptrace.h> #include <stdio.h>
char file[64];
sprintf(file, "/proc/%ld/mem", (long)pid);
int fd = open(file, O_RDWR);
ptrace(PTRACE_ATTACH, pid, 0, 0);
waitpid(pid, NULL, 0);
off_t addr = ...; // target process address pread(fd, &value, sizeof(value), addr); // or pwrite(fd, &value, sizeof(value), addr);
>>1853429 бля, ну я же написал - не асм стаб) Это и я знаю, я говорю про инжект полноценной программы в формате ELF, которая импортит СОшки и которую можно просто на С написать, не дроча асм стабы. Асм стабы хороши для инжекта простого кода, если же код сложный и требует работу аллокатора памяти, например, то правила несколько меняются.
>>1853540 Да вы заебали со своей модой. Пишите на понятном, человеческом языке задачу, будут вам ответы.(может и сами поймёте в процессе формулирования). Написал высокоуровневый запрос, получил высокоуровневый ответ. Всё так. другой кун
>>1853372 >>1853540 > я говорю про инжект полноценной программы в формате ELF Ты так и не объяснил, нахуй тебе эти извращения, когда можно инжектить стаб, который сделает dlopen твоего говна. И система сама загрузит твое говно правильно, совместимо и без единой строки кода с твоей стороны.
Поясните плис за гидру. Сижу на линухе, вродь изучил радар и нраица есть даже морда для радара. Но вот узнал про гидру. Стоит ли юзать ее. На иду конечно же нету денег.
Не стоит, поймают менты когда в падике закладку будешь пытаться найти и придется несколько лет дизассемблировать только свой пердак после того как его твои сокамерники попользуют.
>>1855334 Да там сроки небольшие по первоходу и маленькому весу так что норм! скорее всего условно будет! он реально про наркотики я чё то не понимаю???
Продавец продаёт шапку. Стоит 10 р. Подходит покупатель, меряет и согласен взять, но у него есть только банкнота 25 р. Продавец отсылает мальчика с этими 25 р. к соседке разменять. Мальчик прибегает и отдаёт 10+10+5. Продавец отдаёт шапку и сдачу 15 руб. Через какое-то время приходит соседка и говорит, что 25 р. фальшивые, требует отдать ей деньги. Ну что делать. Продавец лезет в кассу и возвращает ей деньги. На сколько обманули продавца (включая стоимость шапки)?
Вкатыш на месте. Вопрос вот в чём - я может туплю, но почему так мало регистров в в процессоре, если транзистров в нём миллиарды? Если это (транзисторы и регистры) разные вещи, то почему в кэше L1 указано 100+КБ, а всех вместе взятых регистров на байт эдак 10-20. Или регистрами завутся множество однотипных регистров вроде: Поместить (MOV) в один из н-ых тысяч существующих регистров класса EAX системный вызов 1.
>>1860146 На мипсе много. Своими словами - разная философия к подходу написания программ, мипс более низкоуровневый чем x86 как мне показалось, сам проц более вовлечен в выполнение программы. К примеру есть регистр zero, который всегда содержит 0, программисту уже не нужно думать где взять 0 и т. д. И лучше подходит для одних задач. x86 как бы для всех задач, и 4 общих регистра должно хватать для вычислений, которые должен делать прогер. Не знаю как правильно объянить, тупой. Как то так, а может нет.
>>1860407 Или вот так: если бы x86 использовался только для написания офисных программ, к примеру, то к нему бы прикрутили доп,регистры для облегчения работы программиста в написании офисных программ. Никто же не знает как будет использоваться x86. Вот и сделали 4 общих регистра. Правильно я понимаю?
>>1860416 Нет, вопрос скорее в том, являются ли регистры в терминологии ассемблера физическими регистрами процессора. Если нет, то какое реальное, физическое кол-во регистров на чипе.
>>1860426 Архитектурных регистров (которые видит программист) мало, потому что команда имеет ограниченную длину. А физических регистров сейчас делают 160 и больше, но не очень много, потому что иначе доступ к ним замедлится.
>>1860467 Получается если программист использует самые распространнённые регистры, то обработа данных выходит 5-10 (64 бита одного регистра * 8) байт за такт процессора?
Мипсовскому программисту не надо думать, где взять константу. Ассемблер за него синтезирует то, что напрямую не поддерживается железом. Поэтому под мипс писать в чем-то проще, чем под другие архитектуры: bgt v0,12345678,label # если регистр 2 больше 12345678, иди на метку
Господа, по каким причинам нельзя делать абсолютный прыжок по 8-ми байтному адресу? Например, jmpq 0xdeadbeefcafebabe. Получается, в x86-64 нет такого понятия, как direct jump?
Что для вкатывания в ASM читать то, из шапки честно говоря смутно понял, так-как первыми пунктами идёт информация по Реверсу. Пойму ли я эту книгу без знаний в области ASM? Подскажите книги по самому ASM тогда в пару к этой: Денис Юричев: "Reverse Engineering для начинающих"
>>1862540 Не знаю, стоит начать с этого? Архитектуру пока не знаю какую, но наверное можно пока без этого что-то начать учить? Или это тема только для хороших мальчиков которые в школе были золотками и умничками?..остальным дорога в питон и хтмл сиэсэс?)
>>1862599 Привлёк тем, что я работаю с терминалами сбора данных, с достаточно древними системами такими как windows c.e 5.0, 6.0 И многие вещи ещё древнее, иногда бывают жесткие проблемы с драйверами и прочей поддержкой этого оборудования с современными системами А самое главное, это то, что есть теоретическая и практическая возможность миграции с например windows mobile 6.5 на windows c.e 6.0 и просят на рынке за готовую прошивку от 30к зелени. Куча моментов которые требуют допиливания с точки зрения тех же драйверов
И меня это так заебало, что я решил костьми лечь но лучше понимать то с чем имею дело В идеале нужно С знать, но и ассемблер и реверс нужен тоже, это со слов китайских коллег. Поэтому буду выкатываться сюда потихоньку, сейчас мне 27, цель к 30 хотя бы понимать на уровне начинающего, то с чем работаю. В идеале самому устранять вещи которые даже официалы отказываются делать потому что политику EOL EOS никто не отменял
>>1862880 ТСД это тема. Как искать таких клиентов? Там у юзверей свои законы - у нас есть 1с погромист который всё сделает. Как доносить таким людям что можно забесплатно и лучше? По твоему вопросу, просто тупая банальная логика. Научись понимать логику в первозданном виде так сказать. И ковыряй потихоньку, интерес должен сам появиться, там одно цепанёт тут другое. Тут все мучаются 100%, нет тех кто сразу всё знает как решить. Ну будешь ты знать как это работает, и что? С другой стороны то тоже не дураки сидят, закодили так чтобы хуй кто догадался, опять задача которую надо разгадывать. Так начинай разгадывать прямо сейчас, легче не станет.
>>1862972 Анон, я не жду когда станет легче, и ковырять это собираюсь не из-за какой-то выгоды особой, есть гораздо более лёгкие и денежные пути Это дело принципа, я всегда с техникой имел дело по работе, но никогда не разбирался в этом на глубинном уровне а ползал лишь по верхам, поэтому хочу понять как это устроено, пусть это будет что-то вроде хобби. Но для меня важно понимать одну вещь - то что я учу, это то что мне нужно, ибо времени не так у меня много что бы ходить по кругу и заниматься далекими от этой тематики делами.
Всем спасибо кто советовал и кидал какие-то ссылки. Анон который кидал про компоненты электронные я надеюсь ты пошутил, потому что мне пока тяжело понять какое это отношение имеет к делу.,,это я и так знаю, потому что паять умею и чинить элементарные электрические цепи тоже
>>1863026 >Анон который кидал про компоненты электронные я надеюсь ты пошутил, потому что мне пока тяжело понять какое это отношение имеет к делу Прямое. Асм это системное программирование.
Спецификация чипа в тсд, это просто так, семечки? Как тогда писать драйвер если не знать как чип работает? Читай нет спецификации. Что ты можешь сделать с этим куском камня? Ну вот он лежит перед тобой, ты ничего не понимаешь. Принёс этот камень мне, и я тоже ничего понимаю что с ним делать, как и ты. Для меня это просто какая-то херня с ножками. Чудес тут никаких нет.
Сразу расскажу что такое plug-and-play, воткни и играй. Вот стёрлись все идентификаторы на плате и что делать? Как определить что это за камни на плате? Вот и придумали, втыкаешь плату - она тебе в ответ свой идентификатор. Это логично. Надо просто понимать что логично. Есть у тебя какой0то вопрос, надо думать как бы это сделали другие логически. Вот тебе и все секреты ассемблера.
Кста к вопросу об asm Смотреть интервью какое-то с каким-то кодером, говорят asm всегда будет пользоваться спросом и мол вообще мало специалистов в этой теме Правда или поклёп и нужны только джава бояре
>>1863080 >говорят asm всегда будет пользоваться спросом Правда, всегда нужен тот кто будет ремонтировать твоего домашнего робота. Ну и если у робота будет ИИ то он скорее убъёт хозяина чем того кто будет его "лечить".
>>1863026 >Анон который кидал про компоненты электронные я надеюсь надеюсь ты пошутил
Схуяли?
Книга была скинута в ответ на вполне конкретный вопрос:
> Вопрос вот в чём - я может туплю, но почему так мало регистров в в процессоре, если транзистров в нём миллиарды? > Если это (транзисторы и регистры) разные вещи, то почему в кэше L1 указано 100+КБ, а всех вместе взятых регистров на байт эдак 10-20. [/b]Или регистрами завутся множество однотипных регистров вроде:
>Смотреть интервью какое-то с каким-то кодером, говорят asm всегда будет пользоваться спросом и мол вообще мало специалистов в этой теме
Да, всегда, когда баблом и кекогерцами за бабло проблему производительности не залить, все алгоритмические оптимизации использованы, то в джело вступает АСМ.
Или когда железку оптимизируют по стоимости - скажем делают бюджетную стиралку и прошивка на языке высокого уровня при той же функциональности потребует более мощного МК и, как следствие, увеличения себестоимости производства.
А так как стиралка у нас для бюджет, а не премиум, то это недопустимо - быдло должно иметь возможность после всех накруток её купить, а дорогой мк сделает ее неконкурентоспособной в нише бюджетных стиралок - конкуренты за такую же цену продают стиралку уже умеющую в глубокий минет помимо 100500 программ стирки.
Страшно на самом деле то что управлять всем этим будет не бездушная машина, а вполне конкретные охуевщие кожаные мешки-успешнобляди вроде брина, цукера и прочих мамутов, пынь и сечиных поменьше.
>>1863111 Да нет. Предположим коронавирус искусственно выпустили в открытый мир. Сильно сомневаюсь что это было по указке винни или его подчинённых. Кто-то хотел ёбнуть всех этих охуевших старпёров без зачатков разума, чтобы не мешали своими указаниями и управлениями.
>>1863130 >Предположим коронавирус искусственно выпустили в открытый мир.
Есть маза, начнем с того, что корона - это не единственный вирус, который выпустили. И весь этот маскосрач затеян сугубо с целью скрыть этот факт - что вирусов выпустили так то дохуя.
Куча людей конкретно переболевших делала анализ на антитела по короне и нихуя.
Я бы хотел поднять тему с ТСДшниками. Там русская прошивка - плоти, новый драйвер - плоти, пукнул - плоти. И платят, потому что выгоднее заплатить чем остаться без ТСДшника. Одна русская прошивка стоит ~5к. А если их 100 иди 1000, за каждый заплати.
>>1863471 совершенно верно, подтверждаю. И русская прошивка мало кого беспокоит а вот некоторые другие вещи очень востребованы...и стоит это космических бабок. Поэтому и решил вкатываться в эту тему.
Достаточно хорошо знаю этот рынок, и совершенно точно могу сказать что существовать он будет еще минимум лет 10, конкретно у нас в СНГ
Как бы книжки читать то легко, читай и читай. А вот когда написал прогу и запускаешь её в отладчике, и молишься чтобы она заработала с первого раза, потому что у тебя уже нет сил, полное истощение.
>>1863080 этот >>1863091 пиздит оптимизацией займется какой-нибудь intel c++ compiler,написанный настоящими профи,а ты будешь писать курсовые за студентов за 500 рублей на своем асмемблире
Например. Проблема пограничного значения(как то так называется). Элементарный поиск. Нужно найти слово ассемблер в файле. Подгружаешь мегабайт ищешь, нету, второй мегабайт, тоже нету. Потом понимаешь, а что если буквы ассем в конце первого мегабайта, а блер в начале второго. И всё, жо-па. Код превращается, превращается код в какой-то полный пиздец.
>>1863557 Можно подключить виндовскую функцию MapViewOfFile, проблема решена. А что если её просто нет на устройстве. Как делать поиск? Вот тут и нужны низкоуровневая логика, чтобы понять тонкости поиска и написать самый оптимальный код.
Надо что-то делать, парни. Надо чтобы была практика. Чтобы самому столкнуться с той же Проблемой пограничного значения, а потом увидеть белиберду в чужом коде и понять что автор таким образом обошёл эту проблему. Вот я сегодня пью, завтра буду делать.
Пытаюсь хакнуть игру и возникли следующие вопросы: Может ли быть такое, что число, которое отрисовывается как часть интерфейса, не хранится в памяти, а вычисляется при каждой отрисовке? Чтобы вызвать какую-то функцию нужно подгадать место и инжектнуть код? Особенно в тех случаях, когда функция меняет что-то извне.
>>1863656 Может. Число это может быть просто спрайтом, который нарисован заранее с тенями, фоном, цветом и т.д. А игра просто отрисовывает этот спрайт.
>>1863656 >Чтобы вызвать какую-то функцию нужно подгадать место и инжектнуть код? Особенно в тех случаях, когда функция меняет что-то извне. Нихуя не понял. Тебе нужно поставить хук/брейкпоинт перед тем как отрисуется твоя цифра. Потом раскручивать почему она отрисовалась именно так.
>>1863717 Тут два случая: 1. Предположим, что игра высчитывает число построенных лесопилок каждый кадр - как узнать вне игры это число? На первый взгляд тут только чтение и можно воссоздать функцию, без необходимости инжектить код. 2. Нужно как-то дать понять игре, что игрок хочет купить или продать ресурс. В идеале это была бы внедренная в игровой цикл проверка и вызов функции "продать/купить" при необходимости. Но можно ли обойтись без инжекта?
>>1863528 > А вот когда написал прогу и запускаешь её в отладчике, и молишься чтобы она заработала с первого раза, потому что у тебя уже нет сил, полное истощение. До чего знакомое состояние...
Как работает DEP в винде? Вот я отключил DEP установив в bcdedit nx AlwaysOff, перезагрузил систему, попробовал исполнить код на стеке и получил исключение. Решил проверить, что там в ядре и EFER.NXE оказывается установлен. В итоге что вообще тогда делает эта опция?
если при переходе ссылки, на книгу Дениса Юричева выдаёт ошибку, или на официально сайте сталкиваетесь с сообщениями про некий личный клуб. То вот ссылка на книгу, если сомневаетесь и опасаетесь фишинга, то можете проверить ссылку на сайте VirusTotal, мне кого то в обманывать ради какой то собственно выгоды не с чего, просто хочу скинуть РАБОЧУЮ ссылку на актуальную на данный момент версию книги https://yurichev.com/writings/UAL-RU.pdf
>>1870361 Компилятор просто размечает секции как не исполняемые. Я же DEP отключаю на уровне системы, но это нихуя ни на что не влияет. По идее в системе вообще не должно быть не исполняемых страниц памяти.
>>1870664 Возможно это зависит от операционной системы (в чем я сомневаюсь), но в Линуксе DEP (он же NX) - это митигация НЕ на уровне системы, а на уровне компилятора. Пример митигации, которая действует на уровне всей системы - это ASLR. Почти на 100% уверен, что на винде та же песня. Каким компилятором пользуешься? Просто поищи флаги/опции по отключению разномастных фич, среди которых должен быть DEP (в gcc это флаг -z execstack)
>>1870897 А вот так. Яхз как работает аппаратная поддержка, но в том же Линуксе можно отрубить NX через компиль, либо же в рантайме сделать стэк/кучу исполняемыми через системный вызов mprotect. >>1870801 >попробовать исполнить код на странице с RW, но с выключенным DEP.
Нет. Policy данной митигации таков - любая страница виртуальной памяти не может быть одновременно исполняемой и разрешенной к записи (либо то, либо другое, но не вместе). Именно поэтому эта технология еще называется W^X, если знаешь таблицу истинности операции XOR, то поймешь в чем прикол. Имея страницу RW, ты не сможешь исполнить код в ней, банально потому, что у нее нет прав на исполнение. Попытка сделать это просто сгенерирует сегфолт и программа крашнется. Погугли насчет изменения прав страниц виртуальной памяти в рантайме, хз че там по винде, в Линуксе это сисколл mprotect.
>Денис Юричев: "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна! >Прямая ссылка - >https://yurichev.org/b564f46f1c207b2dbc84a2bd4a41ed4c/
Мало того что из треда в тред кочует дохлая ссылка. Так теперь она и не бесплатная. Есть у нас тут патроны Юричева?
>>1872765 в либген такое точно не стоит лить, так как постоянно обновляется. >>1873108 в вебархиве чекал, но какие то не те ссылки. Не нашло. Благодарю.
>личное дело да всякое на самом деле бывает. Патреон так то вполне себе неплохой вариант, но вот полностью закрывать и убирать старые версии. грусть :( может хочет проверить интересно ли вообще кому то или он зря сидит дописывает, столько лет как никак. (патрон как раз будет показатель заинтересованности, но пока там раз два и всё подписчиков)
>>1874685 По двухмерным массивам самое то бегать. И не только. Константа часто используется как смещение поля внутри структуры. x86 кончено говно, но адресация у неё красивая и удобная.
Сап, асм Работаю с emu8086. Нашел код, который складывает два числа, и проверяет результат. Если сумма равна 0 — выводится одно сообщение, если нет — другое.
Однако реализовать в emu его почемут не получается. Пробовал и в com, и в exe, и в bin - везде одно и то же. Сначала ругается на eax, ebx. Если их заменить, выдает другую ошибку - о том, что invoke MessageBox, 0, chr$("В eax не 0!"), chr$("Info"), 0 invoke MessageBox, 0, chr$("В eax 0!"), chr$("Info"), 0 не верны.
>>1875805 Вместо кода вывода на экран. Только mov bp, msg подними до вызова прерывания. В регистр BP помешается адрес выводимой строки. Координаты и цвет задай константами. msg_lenght посчитай заранее. Приведи обсе строки к одной длине.
Кулити, асмгоспода. Я пишу API для инлайн хукинга для никсов. Программа, в целом, приаттачивается к процессу, мапит немного RWX памяти и пишет туда код, который должен исполняться при триггере хука. Казалось бы, это можно решить куда более легким способом - просто заинжектить СОшку с кодом агента. Проблема в том, что это не работает на статически слинкованных бинарях. У меня два стула - писать код агента на ассемблере, что больно, но возможно, или же изъебнуться, заинжектив в процесс целый бинарь, прыгая каждый раз в адрес ммапа + оффсет до функции агента, но это попахивает хуями. Что посоветуете?
НоооОО! Код зашифрован. Я насколько понял - пароль 3 символа UTF-8!!!!!! Те 100к в 3 степени вариантов? Это легально? Помню, 3 года назад был такой крякми, там в пароле был смайлик из юникода, но сейчас уже не могу найти тот врайтап. Помогите с паролем(((((
Есть идея проверить utf-8 рендж у соли и прочих base64 строк чтоб на основе этой гадости генерить варинаты под брут пароля. Но это низкобальное задание, вряд ли там настолько все сложно.
Надеюсь на силу легиона!!!!!!!!1 Или мб кто врайтам трехлетней давтности вспомнит и найдет.....
Вопрос по nasm. Буду рад помощи, нагуглить ничего не удалось. Ситуация такова: нужно вычислить размер бинарника который получится (ну, это просто - x equ $ в конце файла) и разделить на 16, так как это вычисляется адрес сегмента.
Код схематично выглядит так: y equ (x + 1)/ 16 ... x equ $
Выдает ошибку division operator may only be applied to scalar values.
ку, асмач Зачем нужен регистр cs, когда память уже давно не сегментирована в виду использования модели виртуальной памяти? Это типа просто легаси и все?
Боги ассемблера, склоняю перед вами голову и молю помощи. Как написать цикл для данного выражения (n - переменная которою вводит юзер). Вроде все обдумал по логике, но считает неправильно.
>>1842631 Профессора математики получают меньше, чем прогеры. Тут вопрос не в уме или таланте, а в рыночке. Это первое. Второе. Молодежь не понимает, что мир не работает на основе меритократии.
>>1842631 Реверс в 95% случаев нелегален, поэтому такие вакансии попросту не афишируются. Но корпоративный шпионаж и хакерство не являются редкостью в ходе рыночной конкуренции, поэтому реверсеры нужны еще как.
Основная команда разработчиков radare2 форкнула его в новый продукт Rizin
Аноним23/12/20 Срд 11:38:43№1887886242
Rizin — свободный и с открытым исходным кодом фреймворк для реверс-инжиниринга, включает в себя дизассемблер, эмулятор, hex-редактор, отладчик и многое другое.
Причиной форка разработчики называют стресс и неуважение, которое они испытывали при работе в сообществе сложившемся вокруг radare2, и для дальнейшего развития в сторону ценностей, которых они придерживаются, 8 декабря был создан форк и написан CoC.
Основная команда Cutter (это GUI для radare2), которая также была частью основной команды radare2, покинула radare2 и стала соучредителем Rizin. После этого Cutter переключается с radare2 на Rizin в качестве бэкэнда.
>>1887886 говно без задач, зачем это, если есть r2 с точно таким же функционалом, который тоже продолжает развиваться? А для гуя есть каттер (и похуй какой там бэкэнд, будь то r2, будь то rizin). Имхо, все эти форки от обиженок - бич опенсорс проектов в целом.
>>1888087 Ну если эти форкнувшие граждане действительно core developer team, то радар и потонуть может. А так в принципе тоже все равно, как оно будет называться, лишь бы пилили понемногу. Листал их анонс вдоль и поперек, так и не понял, кто и как их там угнетал в r2.
>>1888197 Да и хуй с ним. Им кто то пользуется вообще? Я думаю тройка (ида, гидра, бинджа) удовлетворят потребности любого пользователя, прежде чем он узнает о радаре.
>>1892989 Согласен. По моему мнению это лучший из тредов на программаче: по крайней мере, тут люди занимаются тем, что им на самом деле интересно, не думая о деньгах.
>>1895732 Ешё бы результаты труда увидеть. А то одни вопросы и книжки почитать. А мне стимул нужен, где его взять, все на хайпе читают чёто. Вот к примеру чел с mbr - сделай и всё, покажи как надо делать. Это же информация и микропроцессор - это полная свобода действий, делай всё что душе угодно, в этом заложена вся суть асма. Давайте в 2021-ом году переломим этот тренд и будут результаты. С НОВЫМ ГОДОМ!!
Понимайте что такое асм. Вы не сможете знать как всё устроено, просто по определению, потом что это делалось разными группами людей, в течении большого временного отрезка. Будите изучать, изучать, изучать а потом ещё раз изучать, а потом всё, дурка ебать. Есть задача - делай, потом нам расскажешь как сделал, когда понадобится. Асм вот про это, про конкретику.
Ну и мой коронный выстрел в голову высокоуровневым винтикам. Прога ищет в файле любое hex-значение, где XX-любой байт. Тест на файле в 700 мб. Просто захотел сделать и сделал, теперь выёбываюсь.
>>1837856 (OP) Бля, пацаны, а есть какой веб фреймворк или еще что типа того? Чет ваще нихуя не понятно, какие-то edx, щас туториал открыл а тут текст какой-то пиздец ваще нихуя не понятно регистры там чета. Есть какие либы, чтобы можно сразу было программы писать, а не ебаться со всей этой хуйней, слышал асемблеры ваши быстрые, думаю для своего пхп проекта применить, но чет жесть. Я даже мейк вон написал, автоматизация производства, так сказать. А коассы ваще можно создать или это ФП язык типа джаваскрипта?
>>1895938 > Задача найти последовательность 12XX56XX9, где XX может быть любым значением
12 + rand(0,99) + 56 + rand(0,99) + 9 ))))00
По каким принципам найти то? Их тут всего тыща будет, лол. Чтение файлов в raw режиме есть почти в любом высокоуровневом языке, даже в пхп ты можешь побайтно читать, не говоря уже о всяких плюсах, голэнгах и т.д.
>>1895942 Покажи Ну вот тебе задана строка, к примеру 1000 байт. Ты знаешь что в этой строке 528 байт - 1D. 545 байт - АА. Начинается строка с FF. Надо найти все строки.
>>1895968 Это значит что нужно найти все строки в 1000 байт, которые начинаются с FF, в которой 528 байт 1D, и 545 байт АА. Всё что между ними игнорируем. Ну я тышу загнул конечно, но хотябы строку в 10 байт.
>>1895977 > Это значит что нужно найти все строки в 1000 байт, которые начинаются с FF Еще раз - что за строки. Ну начинается она с FF, а длина какая должна быть? Я могу тебе от FF прям до конца файла отхуярить, вот тебе и одна строка.
> в которой 528 байт 1D, и 545 байт АА Ты просто повторил, что написал до этого. Я просил пояснить, что это значит. 100 байт, 528+545 из которых - тупо мусор? Верно? А найти нужно конкретно "FF"?
Строка в 10 байт. Начинается с FF, пятый байт 1D, седьмой байт AA. Между этими байтами может быть всё что угодно. Надо найти все такие строки. Я показал как это делается.
>>1896585 У меня проблема. Вот тут>>1840188 я писал что надо сделать перерыв. Сделал. Теперь я не помню на чём остановился, начал смотреть свои черновики, а там чёрт ногу сломит. Уже несколько раз пытался начать(хотел до НГ сделать что-нибудь). Думал что это из-за бухла не идёт ничего, две недели не бухал, интерес так и не появился. После НГ попробую опять. На пике черновик, я ебу, мне кажется что это кто-то другой делал и писал.
>>1896678 Да особой разницы то нет. Я какбы хотел описать проблему, потому что считаю её объективной. Высокоуровневые напишут комментов к своим 100 строкам кода и норм, а тут.. вот я весь механизм отрисовки текста уже вскрыл, но я не помню что и где именно находится, все нужные джампы там и т.д. Комментить каждое своё действие.. ну такое, ещё больше работы получается. Надо как-то решить эту проблему, может перед паузой писать типа письма себе, но это уже шизой попахивает.
>>1837856 (OP) Можете кратко пояснить ассемблеры в вакууме? Начал изучать вяленько для саморазвития и понял, что нужно очень глубоко шарить за регистры и вообще за железо, немного прихуел (хотя не пхп макака, лол).
Объясните кратко как из этих команд всех получается какое-то ПО, типа суть в том, чтобы тупо гонять инфу по регистрам и памяти и джампать туда сюда?
>>1896990 Вызвал системный вызов (если прога в юзерспейсе работает) - вылезло окно, или вывелась строка на экран. А если это операционная система - обратилась к железу, например, видеокарте или монитору, и вывела на экран пиксели. Естественно, все это вызывается в зависимости от выполнения тех или иных условий, с определенным количеством аргументов и так далее.
>>1896909 Да, те же ощущения. До того, как прочитал Таненбаума, даже не представлял, какое важное знание мог бы упустить...
>>1895839 > Ну и мой коронный выстрел в голову высокоуровневым винтикам Мне почему-то кажется, что там тупое сравнение, даже не КМП, и уж тем более не Рабин-Карп. Потому что именно в этом вся суть любителей асма - кричать о быстродействии, а реализовывать наиболее простой (и тормозной) алгоритм из существующих.
Объясните долбаебу. Только вкатываюсь в ваши ассемблеры и пытаюсь без особого опыта написать в стдаутистус хеллоу ворлд в цикле. Стандартная спизженная из интернета программа по выводу хеллоу ворлда использует все регистры NASM'a, где мне хранить каунтер то блять? Если ecx занят самими данными на вывод, а остальное подвязано под систем колл могу проебываться с терминологией, не бейте, ток вчера про регистры узнал
>>1898411 > Чего? Регистры процессора, которые доступны к взаимодействию через среду NASM'a. Что не понятно?
> Ты прочитай про General-Purpose Registers в ISA-мануале. > У тебя по крайней мере не задействованы EDX, ESI, EDI. Я когда гуглил где-то в табличке с этими регистрами прочитал, что они Pointer registers, я нихуя не понял, но подумал, что их трогать не стоит. Потом в каком-то краш курсе увидел, что их как раз и заюзали для вывода текста в цикле. А почему нельзя в .bss хранить все это?
Аноны, мне пришла в голову крайне гениальная идея. Компилятор в процессе своей работы шифрует исполняемые файлы и файлы библиотек открытым ключом по лучшему из алгоритмов шифрования, и при выгрузке в оперативную память операционная система расшифровывает их закрытым ключом, чтобы, таким образом, чтобы он ее смог выполнить. Само ядро шифруется по такому же принципу - при компиляции, и расшифровать ее может закрытым ключом только загрузчик. Почему до этого не додумались капиталисты и не убили на корню весь реверс-инжиниринг?
>>1900169 Что мешает сдампить расшифрованую программу из памяти, или извлечь ключ из ядра ОС?
шифрованые бинарники делают уже лет как 30 минимум. В основном конечно вирусы, но и шаровары этим промышляют. Вроде как старые версии скайпа (до покупки майкрософтом) были шифрованые
>>1900180 А, ну да, точно, я тупанул. На пекарнях теряется смысл по той причине, что загрузчик, бивис, ОС и софт спокойно меняется и не бывает вшитым. Зато во всяких электронных устройствах такое практикуется: загрузчик вшит намертво, прошивка сжимается, и расжатие загрузчиком происходит в самом устройстве после закачки в него.
>>1837856 (OP) Нахуй у ваших ассемблеров такой разный синтаксис? В одном ебаные проценты свистоперделки, в другом dest и src местами поменяны, еб твою мать. Не могли сделать единый стандарт, красноглазые?
Уважаемая Илита, задаю крайне глупый вопрос, но всё-таки. Как в ИДА перенаправлять стдин? Пробовал в параметрах prog < input, но когда происходит sysread, код тупа останавливается и в этот момент даже дамп глянуть нельзя.
-Copied Games -Unlicensed Games -Cheating -Linux -Homebrew
Xbox Checks:
System Startup<-check-> Windows (in ROM)<-check-> Game (DVD)
Savegame Check:
System Startup<-hacked-> Windows (in ROM)<-check->Game<-no check->Data (Gamesaves)
DVD Drive fail: the drive firmware is not protected
Hypervisor: -Manages page tables and TLB -W^X Enforced everywhere -Games cant make data executable -Games cant chainload code
Memory Hashing infoinfo: -for every cache line on RAM -on write: store hash in CPU-internal RAM -verify on read
-DMA into hashed memory will make CPU panic on next read -must be turned off for pages that require DMA -very effective -needs lot of CPU- internal RAM cache line: 128 bytes secure hash: 16 bytes
-only feasible for -1 MB of external RAM -can only protect HV
Memory Encryption: -Encrypt/decrypt memory on cache fill/writeback -must be turned off for pages that require DMA -DMA will jsut destroy the contents *can be used to destroy e.q. blacklists -Not as effective as hashing -protects HV and game code -also protection against dumping HV, game code, HD-DVD keys, thought DMA
Random number generator: -encryption should not be predictable -random number generator inside CPU -ecryption key different on every boot -prevent DMA replay
Hashing/Encyption: -PPC64 supports 64 but addressing -everything fits in 32 bit on the xbox360 -upper 32 bit are used as flags by L2 cache
00000100 (CPU internal security flags) 0000201c (Physical address which will go to the bus)
Hashing: -implemented by L2 cache -16 bytes SHA-I per 128 bytes cache line -stored in 64kb CPU-internal SRAM
Encryption: -implemented by L2 cache -key taken from random number generator
eFUSES: -768 bit -JTAG disable -unique key for Flash decryption -devkit/retail indentifier -update sequence counter
Paging: -page tables map 32 bit virtual address to 64 bit physical address -upper 32 bits of physical address are crypto/hash
Hypervisor; -encrypted and hashed -running without paging -HRMOR
Manufacturing: -all efuses are 0 -xbox boots a generic flash image -xbox generates unique key, stores it in efuses -xbox personalizes flash image -xbox stores encrypted DVD key in flash
Load Executable: -Xbox kernel loads executable into memory -kernel hands code section to hypervisor -if signed properly, makes code executable -double mapping memory as code and data, copy from data to code
Return to HV: -thread states are saved in unencrypted data segment -register can be overwritten --load registers with syscall parameters --set PC to syscall intructions
Как мне вообще скомпилить программу на ассемблере? Вот у меня есть установленный dos box, есть файл с кодом программы с расширением asm, есть файлы tasm, td и tlink. Что со всем этим делать, чтобы оно заработало?
Сяп. Как быстро распознать негативное значение? Если функция(в т.ч. и системная) возвращает меньше нуля, то SF поднимается сразу? Или надо что вроде > addl 0, %eax дописать?
>>1837856 (OP) Вопрос по ассемблеру для 8088. Точнее наверное про регистры проца. В самоучителе написано, что в идеале DS CS SS регистры содержат начало 64к сегмента и сами, соответственно, занимают области памяти по 64к. Но правильно ли я понимаю, что всё это рандомные адреса, и размер сегментов тоже ничем не ограничивается в меньшую сторону? То есть, например, если я запишу в DS адрес 1000, а в CS 1010, проц не будет считать, что сегмент кода нагло залез в 64-килобайтную область сегмента данных? Просто под данные будет выделено 10 байт, а под код всё что дальше. Так?
>>1912482 Олсо, вопрос вдогонку. Только что прочитал про debug, дескать в нём можно вводить машинные коды. Интересует, какую он память использует во время работы? Прямо обращается к оперативке или что-то делает в своем загончике, с виртуальными адресами? А то как-то боязно, что наэкспериментирую с записью-чтением в оперативку, и винда слетит.
>>1912715 У меня советская пекарня на 8088. Лет 20 назад играл на ней в игори, кодил на бейсике. А ассемблер так и не смог освоить (потому что в документациях про него ничего сказано не было, кроме пары скудных примеров) Решил всё таки исполнить мечту юности - стать полным богом и властителем этой пекарни. Заодно попробовать декомпилировать игори (кассеты с записями сохранились). Разобраться что там за что отвечало, может быть даже замоддить. Благо 64кб текста это ни о чем. Я на дваче в несколько раз больше пощу за неделю.
>>1837856 (OP) что за хуйня запускаю idу на exe, она мне выдает 7FFC43413B29: unknown exception code 4242420 (exc.code 4242420, tid 4748) и все, сам по себе exeшник работает
>>1837856 (OP) Посоны, а есть смысл вкатываться, если не хочешь ничего взламывать, а просто лампово программировать embedded, IoT, без попутного изучения архитектуры всего чего только можно вплоть до 8086? Или это один и тот же багаж знаний, который будет требоваться везде?
Освоил этот ваш сосамблер до кровавых мозолей для х64. Могу ебануть эхо и хелловорлд за минуту, и любой алгоритм шыврования за полдня. Спрашивайте ответы.
>>1912482 > Но правильно ли я понимаю, что всё это рандомные адреса, и размер сегментов тоже ничем не ограничивается в меньшую сторону? Сегмент - это сорт оф виртуальное понятие. В реалмоде почти x86 все, что делает сегмент - это предоставляет базовый адрес почти, потому что если ты сделаешь mov word[ds:ffff],ax - получишь фолт.
> Прямо обращается к оперативке или что-то делает в своем загончике, с виртуальными адресами? В каком-нибудь досе - к реальной оперативке, к реальным портам, к реальному жесткому диску. В винде, естественно, он работает внутри NTVDM, который обычный процесс со своей собственной виртуальной памятью, и поверх этого эмулируется реалмод.
>>1837856 (OP) бля помогите плз. IDA не дебажит программу выдаёт exception на старте. 7FFE867F3B29: unknown exception code 4242420 (exc.code 4242420, tid 8208) я читал что то про tls callback, но что конкретно нужно делать чтобы исправить? x64dbg может дебажить с enable debug privilege
Насколько я понял, ЦПУ берет за раз из памяти паттерн определенного размера. Если нужно взять объект иного размера (к тому же не кратного предыдущему), то процессор производит дополнительные исчисления. Следовательно, объекты желательно выравнивать по n-байтной границе. Сам читал по диагонали. Поправьте, если где-то не прав.
>>1895536 чем идентичный лол? По ссылке параша уровня справочника по ассемблеру. Сначала немного про архитектуру, а потом разбор каждый команды и как она работает. У Нарвахи курс по Ольке и то содержательнее чем эта херня.
Никак не могу заставить это работать, адрес офк подогнал. В лучшем случае получаю сегфолты. В чём может быть проблема? Мб надо с gcc 5.4 пробовать? (RE4B Выбор другой строки из исполняемого файла)
>>1928841 >Address space layout randomization Ага, почитал про эту тему. >Это скрин из книги Юричева? Оттуда. Пытаюсь вкатиться в ассемблер, почитываю разные книги.
>>1844030 Лол на асме писать одно удовольствие, как на пианинке хуячить. >диолекты И смена синтаксисов, и переходы на разные архитектуры дело плевое. правда жаль это действительно никому не нужно мимонарик-с-мд5
>>1844030 > Кароче, скачал радар, написал хелло ворд на си, посмотрел оп коды в асме может вычислить строку в хексдампе и заменить хеллоуворлд на хуевёрт или подобное.
>>1930862 Шестнадцатеричный доп. код числа 35000 есть ...00 88 B8. Ассемблер формирует непосредственный операнд в инструкции для MOV по размеру равному первому операнду (BX), и отбрасывает старшие разряды его доп. кода. Получаем 88B8H - отрицательное число -30536 (с установленным старшим битом - битом знака).
братаны, скажите я вот человек, недавно закночивший вуз, поработавший 2 года бойтоебом ( а последние два игроделом) во времена байтоебли меня привлекал RE. Скажите, насколько это востребованный навык? Где он может пригодиться или даже сыграть решающую роль? Наверняка же рядом с ним нужно еще что-то знать Алсо, с чего бы начать учить эту область? Насколько опыт на поделках релевантер тому, чем нужно заниматься на работе? спасибо
>>1931324 В целом невостребованный, из работы только чернуха по сути. Как хобби норм, особенно для байтоеба, но если ты это рассматриваешься с точки зрения вката ради финансовой выгоды - худший вариант. Лучше сиди на С/С++ и пили прошивки с драйверами, серьезно.
>>1931804 мануалы к цп. основы - из любого учебника. >>1931956 я головой немного ударился. наверное хотел лучше понять генерацию кода, да и развлечься немного
В универе помню видел прогу, а что за прогу видел - не помню... Есть что подобное, в идеале под линь, в идеале консольное? Спросить в универе не вариант, последний раз там лет 15 назад был.
Нужен то ли эмулятор ассемблера, то ли интерактивный дизассемблер, где на одном экране можно было бы вводить свой код на ASM, и тут же запускать его пошагово, и тут же видеть регистры/память.
>>1936709 Нахуя тебе вайн? Под прыщами тоже есть проприетарный софт так-то, там не все попенсорц от и до, только ядро и часть драйверов. Если же ты сидишь на лине и хочешь реверсить под винду - лучше не занимайся анальной акробатикой и поставь винду на дуалбут.
>>1936709 >Возможно ли заниматься реверсингом под прыщами? В статике ковырять бинари вообще пофиг где, большинство утилит есть и под окна, и под никсы (IDA, ghidra, cutter). Дебажить логичнее под соответствующей платформой, но виртуальные машины и т.п. никто не отменял. >>1937044 >в идеале под линь, в идеале консольное radare? gdb?
>>1941155 Эти времена уже прошли, чаще всего просто сажают молча на бутылку. Короче говоря, анон, чернуху не советую никому вне зависимости от обстоятельств.
>>1941202 >>1941132 Какие-то маняфантазии. Реверсом сейчас занимается почти любая компания, которая что-то разрабатывает, просто такое не афишируется. Будто бы пропитый товарищ майор вообще поймет, что ты там делаешь в IDA Pro и что за циферки с буковками бегают по экрану.
>>1941820 Пруфы есть? Просто интересно о чем речь, а то видать я в параллельной вселенной живу. >>1941824 Смотря каких. Если один хитрожопый хацкер спиздит достаточно много денег через зиродей и/или свой ботнет, его из-под земли достанут.
>>1938479 Можно вполне Если про чисто асм - криптовка малвари Руки до тебя не достанут Используй новые ники,впн на своих серверах зареганных не на свои данные и тп и тд Условные свои 2-3 тысячи долларов в месяц можно с этого получать
>>1945460 Если обычный механический замок еще возможно взломать в 2021, несмотря на то, что он был изобретен много веков назад и усовершенствован тысячу раз, то почему должна устареть бинарная эксплуатация всего лишь через 30 лет после своего появления?
>>1945907 Один из этих мимокроков 10 лет в индустрии в стране, где бинарной эксплуатацией активно занимаются даже наемные челики (чего не скажешь о рашке) и участник ситифэов уровня DEFCON. Найс такой мимокрок, держи в курсе. >>1945908 Манясравнения подъехали. Бинарной эксплуатации даже чуть больше, просто в 1988 году произошло то, что заставило начинать задумываться о митигациях. А вообще, почитай о новых митигациях, а также об MTE, охуеешь. Нет, конечно может быть ТЕОРЕТИЧЕСКИ и будет возможность взлома именно через ошибки работы с памятью, но цена и время взлома станет нечеловеческой (а-ля нужна цепочка из 20+ эксплоитов, которые эксплуатируют разные баги, чтобы джейлбрейкнуть айпонт). Уже сейчас 1-4 исследователя могут работать целый год только над написанием(!!!) рабочего эксплоита под известный браузер/ОС, учитывая, что они нашли тонну РАЗНЫХ эксплуатабельных багов, поиск которых тоже занимает огромное количество времени. Итог: смерть бинарной эксплуатации не означает, что взлом будет фактически невозможен на все 100% (хотя если через 30 лет все написанное на С/С++ перепишут на Раст, то реально сдохнет во всех смыслах), а то, что взлом будет настолько дорогим и времязатратным, что заниматься этим не на уровне целого государства будет невыгодно абсолютно всем, особенно исследователям-одиночкам.
>>1946382 Верно. Проблема в другом - еще не нашли эффективного поиска уязвимостей такого плана (фаззеры эффективны только против проблем с памятью, а среди динамических методов ничего кроме фаззинга не доказало свою работоспособность). Вручную искать - удачи, особенно с огромными кодовыми базами, особенно если они проприетарные, это как найти иголку не просто в стоге сена, а в целой галактике. Ну и логические баги редко ведут к исполнению произвольного кода, в отличие от багов доступа к памяти.
>>1946418 Сейчас нет, а через 30 лет - почему бы и нет? Я не утверждаю, что так и будет, но предполагаю, ибо теоретически это возможно. Уж больно много проблем у этих языков.
>>1946467 Я говорил точечно про бинарную эксплуатацию. Именно лоу-лвл хакинг. Он уже в умирающей стадии, да. Но реверс нужен не только для этого, поэтому с ним всё ок. Байтоёбство же в целом еще как нужно, особенно учитывая наступающую эру IOT. Всегда нужны системщики, способные писать дрова, прошивки и античиты для очередных быдлоигр, но все это разРАБотка, как ты понимаешь.
Эра взломов не заканчивается тоже, только именно лоу лвл взломов (хотя хардварный хакинг еще может взлететь, но лоу лвл программному - все, пизда). Взломы на уровне веб-дрисни цветут и пахнут, поэтому если ты хочешь быть именно кулхацкером, то вкатывайся в веб, там это в стадии развития, а не затухания, как в бинарном хакинге.
>>1946515 Аналогично. А какова цель вката? Если тупо хобби, то какая разница что там умирает, а что нет? Если ради того, чтобы подзаработать, то смотря что. Если именно бинарная эксплуатация, то не советую по вышеописанным причинам.
>>1946525 > А какова цель вката? Если тупо хобби, то какая разница что там умирает, а что нет? Да, ради хобби, конечно. Да просто интересно было раньше читать про всякие лоу-левел взломы. Как с памятью играются и прочая фигня. Просто обидно смотреть на то как убивают твои прошлые фантазии.
>>1947024 Хуёл, я на этом деле собаку съел. Есть офк symbolic execution, помогающий в поиске логических багов, который можно прикрутить к фаззингу, но этот метод не скейлится и применим только к хеллоуворлдам.
>>1946542 То, чтт он пишет, справедливо лишь для популярных платформ с кучей бабла, влитого именно в секьюрити. Т.е. МС, Эппл, Андроид. С эпохой IOT у тебя есть овер9к девайсов, взламывай не перевзламывай. Взломай свой роутер, например. А потом соседский.
>>1947604 Две книги Митника (Искусство обмана, другую не помню название). Компьютерное подполье (это которая с редакцией Ассанжа). Но это все про 80-е и 90-е. Но интересно.
>>1948871 Это деанон, сорян, брат, мне нельзя открыто светиться по определенным причинам (не занимаюсь чернухой, другая причина). Можешь мне не верить. Молодец, что интересуешься, не забрасывай.
А IoT в РФ вообще существует? У нас же не производится электроники как таковой для гражданского применения. Все эти ваши умные утюги, холодильники, гироскутеры, чайники - все сделано в Китае. Какое у нас IoT? Все о нем уже не менее 6 лет говорят, но никакого IoT я так и не вижу. По сути, ничего толком за эти 6 лет и не изменилось в этой сфере, имхо.
Отреверсили gta 3 и vc, можно собрать из исходников! Я просто охуел от такой новости.
Реверсили инжектя куски и переписывая их на C++. Это стало возможным благодаря тому, что в первых версиях gta3 были debug строки с названиями функций и благодаря всему опыту, который накопился за годы реверса и разработки мультиплееров, клео и прочих модов.
>>1949775 Гта 3 вообще лайтовая по ресурсам игра, вот бы ее кто ради лулзов портировал на симбиан N95 и похожие с gpu. От третьего айфона не сильно отличается, а на него запилили.
>>1949775 Глянул исходники и вот теперь не понимаю. Как они додумались столько переменных назвать и выстроить иерархию инклудов и исходников? За два года сделали.
>>1837856 (OP) Памагити! В универе заставляют писать на Borland C под DOS. Суть проблемы: 1)пик1: после редактирования файла L1ASM.ASM почему-то при компиляции не перезаписывается файл L1ASM.OBJ , хотя файл L1.OBJ , который компилируется из файла L1.CPP перезаписывается нормально. Т.е. если L1ASM.OBJ удалять каждый раз вручную, то все работает нормально. 2)Но если скомпилировать L1ASM.ASM с помощью Turbo Assembler без привлечения среды Borland C, то соответствующий файл L1ASM.OBJ перезаписывается нормально, сколько бы раз я его не компилировал. Значит, проблема где-то между Borland C и Turbo Assembler. 3)Ещё перед пик 1 появляется пик 3. Что с этим делать? inb менять IDE
>>1950010 >g:\BC\BIN\L1ASM.OBJ\L1ASM.OBJ Так и должно быть? А вообще, ты знаешь как тут (на доске в целом) относятся к студентам с лабораторными заданиями
Сап реверсеры. Нужна помощь с vtable, а именно: если есть несколько экземпляров одного класса, то их виртуальные таблицы методов содержат одинаковые ссылки или vtable каждого экземпляра класса содержит разные ссылки, которые ссылаются на продублированные в память коды методов? Сильно не бейте, я пытаюсь понять UAF.
>>1950085 Удалось, кажется, решить: когда Borland C обращается к Turbo Assembler, он выполняет макрос $TASM. Если его поменять на $NOSWAP $SAVE CUR $CAP MSG(TASM2MSG) $EDNAME то вроде бы работает как надо
>>1948891 >Молодец, что интересуешься, не забрасывай. Спасибо конечно,мне приятно Но из твоих слов выходит что я занимаюсь тем что умрет через лет 5-7 полностью.Так может нахер это? Вплане мне это нравится,но я не могу позволить себе заниматься 3-4 года фуллтайм тем чем я себе даже на квартиру и еду не смогу заработать Не всю же жизнь жить мамкины котлеты жрать пс 17 мне сейчас
>>1950316 Занимайся этим для саморазвития. Если любишь лоу левел, вкатись в разработку драйверов, прошивок - это умрёт ГОРАЗДО позже, чем бинарная эксплуатация. Продолжай решать ctfы, это даст тебе много окололоулвльных знаний, которые помогут в байтослесарстве и ты в среднем будешь писать лучший и более безопасный код, нежели дефолтный васян-байтоёб. Как видишь, выгода энивей есть.
Если же ты помешан именно на инфобезе и ни на чем более, то здесь нужно ОБЯЗАТЕЛЬНО сделать 2 вещи: 1) Завести трактор на съеб из рашки в сторону Америки/Европы. 2) Таки полюбить мир веб безопасности и вкатыватья туда, это единственная отрасль инфобеза именно с точки зрения эксплуатации, которая реально жива и которая умрёт очень нескоро (если вообще умрёт). Плюс это легче учить, чем бинарщину, легче искать уязвимости, attack surface в миллион раз больше, чем в бинарщине. Будущее двигается в сторону веба в целом.
Олсо, не исключено, что через 10 лет у тебя компьютер будет OS-less и будет просто подключаться к облаку провайдера, в этом случае даже банальное использование браузера будет удаленное. А с технологией 5G это вполне реально, ибо скорости позволяют.
>>1947859 И да, и нет. В эмбедщине действительно плачевная ситуация по сравнению со всем остальным, но через год-два выходит митигация-убийца, которая хоронит бинарную эксплуатацию и на рынке эмбеддеда, убивая всю суб-отрасль окончательно. Митигация - memory tagging extension. Вкратце - это address sanitizer на уровне железа. Если ты знаешь что такое ASAN и представляешь себе работу оного на уровне ЖЕЛЕЗА(!!!), то всё сразу поймёшь. Это последний гвоздь в крышку гроба. К сожалению, времена ламповых бинарных хакеров подошли к концу.
Так мужики, я конечно дико извиняюсь, но не могли бы вы мне пояснить за годную литературу/статьи/видеоуроки на худой конец по FASM, желательно с подходом с практической стороны, а то я Hello World и калькулятор уже написал, а дальше куда хуй знает
>>1950809 Про логические уязвимости я уже говорил выше. Проблема для атакующей стороны в том, что они редко приводят к исполнению произвольного кода, в отличие от багов с памятью.
К тому же, я говорил про близкую кончину именно бинарной эксплуатации, а не реверсинга. Реверсинг != бинарная эксплуатация. Реверсинг используется в бинарной эксплуатации, это инструмент. Но у него есть применение и вне бинарной эксплуатации, поэтому с самим реверсингом всё ок. Но стоит помнить, что реверсинг - не отдельная профессия, а инструмент исследователя.
>>1950973 > Проблема для атакующей стороны в том, что они редко приводят к исполнению произвольного кода, в отличие от багов с памятью. Это да. Но я уже хочу найти любую уязвимость, которая позволит получить несанкционированный доступ к информации.
>>1952956 Понимание самых ходовых мнемоник не помешает. Там же основной контент вида "давайте напишем хелловорлд и расковыряем, что на выходе отрыгнул компилятор". Вообще странный вопрос, начни читать - при необходимости полистаешь справочники.
Анончики, есть софтинка, которая посылает на китайский йоба принтер последовательность байтов на порт. Как формируется эта последовательность, мне не совсем понятно. Драйвер на него написать поленились, а с софтиной этой плясать уже все заебались. В декомпиляции я не разбираюсь, все-таки опыт требуется. Если кто хочет взяться за это, оставьте фейкомыло. О цене тоже договоримся. На выходе хотелось бы получить какой-нибудь простенький скрипт.