🦥Alex Fails
Или https://telegram.me/joinchat/BYlFbD3eN3JMaG34hyh96w
\\\-_\\]\\0---
грубо говоря, это просто чатик любителей ассемблера, где можно задать вопрос, но без какой либо понятной навигации по обучающим материалам?
🦥Alex Fails
где в тг вообще есть навигация
Anonymous
забавно тут у вас, я пойду
🦥Alex Fails
где в тг вообще есть навигация
Приходится извращаться с хештегами и материалами чата
\\\-_\\]\\0---
ну например запинить используемые хэштэги
Justin
Можно с ботами поизвращаться
\\\-_\\]\\0---
#asmtutorial
\\\-_\\]\\0---
#asm_tips
\\\-_\\]\\0---
к примеру
Ned
всем просто лень. чат живёт сезонами. то народу навалит, то кто-то писать начнёт и вопросами всех заёбывать
˙·٠•● ℕ𝕚𝕜𝕠𝕝𝕒𝕪 ●•٠·˙
эт пока вас навалилась толпа. щас такое во всех чатах. пиздуйте в @fludpac
Слушай я сегодня зашёл сегодня, и кроме флуда не чего не увидел, я думал здесь что то интересное рассказывают , чем можно опыт прокачать , а пока что я вижу толко флуд
Dmitry
я сейчас доем и всех вопросами заебу, точнее одним, может мне кто-то что-то посоветует, а то я себе мозг сломал
🦥Alex Fails
И еще заходят
🦥Alex Fails
И все флудят
\\\-_\\]\\0---
можно разбить все по группам типо для самых маленьких где будут видео уроки и книги о том что такое ассемблер и с чем его едят далее для более продвинутых ну и т/д/
Ned
я сейчас доем и всех вопросами заебу, точнее одним, может мне кто-то что-то посоветует, а то я себе мозг сломал
давай уже, а то нескоро этот пиздец поутихнет. надо замутить хороший холиварец и все призаткнутся, не находя в нём место своим #охуеннымзнаниям
\\\-_\\]\\0---
и уже всю эту структуру запинить
🦥Alex Fails
И времени вообще очень мало на всё
🦥Alex Fails
Я могу тебе дать возможность что-то улучшить)
fait
А можно ссыль на чат Си ?
Ned
можно разбить все по группам типо для самых маленьких где будут видео уроки и книги о том что такое ассемблер и с чем его едят далее для более продвинутых ну и т/д/
да нет уроков, их в природе толком не очень есть. я сам искал. асм - такая специфическая хуйня, на которой преподы не зарабатывают, книжки не продаются, а код не пишется. это как вилка для лимона, которую ты достаёшь только тогда, когда приходят гости. смекаешь?
\\\-_\\]\\0---
я к сожалению профан
🦥Alex Fails
А можно ссыль на чат Си ?
https://telegram.me/joinchat/BYlFbD3eN3JMaG34hyh96w
🦥Alex Fails
два чата по ним
Dmitry
короче, чуваки, сейчас опишу свою проблему
🦥Alex Fails
Я кинул ссыль для новичков
🦥Alex Fails
короче, чуваки, сейчас опишу свою проблему
Желательно в одном сообщении
Dmitry
да
fait
Ок, спасибо.
fait
С моей точки зрения ассемблер удобно изучать по микроконтроллерам, заодно и двоичная арифметика прокачается.
Ned
но наверняка же есть какие то крупицы информации которые как раз здесь и можно было бы объединить
тут есть Nasm_unix тут есть ассемблер Зубкова тут есть интел-библия не хватает только толковых читателей, которые будут читать, а не орать "приготовьте, разжуйте, а я проглочу"
Ned
я пока тут fasm-щиков не видел, хотя один где-то мелькал
Ned
а по фасму больше сайтов чем книг, я думаю
Anonymous
а тут ктонить пишет на ассемблере фуллтайм на работе?
Justin
Я знаю только fasm
Ned
Я знаю только fasm
а я знаю только двоих фасмщиков и ты второй
Ned
приятно познакомиться)
Justin
Взаимно
Ned
Юзаю в си
++, юзаю в D
Anonymous
Юзаю в си
а что разрабатываете?
Ned
там охуенный инлайнер, писать прям приятно
🦥Alex Fails
а что разрабатываете?
Да много чего: ща вот девайсину хреначим для корректировки освещенности сенсоров
fait
Я после микроконтроллеров очень аккуратно для ПК стал программы писать. После какой-нибуть attiny 13 с 1 кб flash памяти под код и 64 байта ОЗУ мозг по другому начинает думать и использовать int для счётчика цикла, который считает до 100, кажется сверх расточительством.
Ned
мама мне 0x14 лет
Justin
Мне кажется, если использовать байты, вместо целых в Си, то в стеке будет мусор, не?
🦥Alex Fails
Не
fait
а ещё в 16-ричной считал, да?
Настолько мозг у меня не изменился, хотя если бы чуть дольше над этим поработал, то возможно так оно и было.
Ned
гыгыгыгыгы
Ned
AUDNAKO!
Ned
ща принесу
🦥Alex Fails
ща принесу
Тегами помечай)
Justin
Эм
Dmitry
система: Windows (от XP до 10, решение должно быть универсальным), битность - в данном случае x86 (для x64 тоже нужно будет, но впоследствии). суть задачи: есть процесс, у него есть alertable поток. есть метод, позволяющий, избегая VirtualAllocEx и WriteProcessMemory, записать в другой процесс в RW память некоторые данные. почему RW? да потому что RWX вы не найдете в только что загруженном экзешнике по дефолту, а RW дофига (в данном случае используется кусочек выравнивания в конце секции .data в kernelbase.dll). само собой, мы не можем исполнять тот код, который копируем туда. поэтому идея заключается в генерации цепочки ROP и записи этой цепочки в другой процесс. если кто не знает что такое ROP, поясняю - в коде (например в коде той же ntdll или kernelbase.dll) ищутся небольшие кусочки кода типа (1) "mov eax, 1 / ret", (2) "add ebx, 2 / ret" - ну, наподобие этого. затем формируется стек, в котором лежит адрес инструкции (1), потом адрес инструкции (2). при исполнении ret произойдет прыжок на инструкцию 1, выполнится mov eax, 1, потом произойдет прыжок на инструкцию 2, выполнится add ebx, 2 - снова ret, снова прыжок, ну, суть понятна, можно исполнить какой-то код кусочками. идея заключается в том, чтобы, после того, как цепочка ROP записана в ту RW память, передать в процессе управление на какой-нибудь ret, при этом в esp подставить адрес этой ROP цепочки. тогда всё получится. в данном случае речь идет о новой технике Atom Bombing, кто интересуется - может погуглить и почитать. суть в том, что там, для того, чтобы заставить исполняться ROP цепочку, esp устанавливается SetThreadContext'ом (туда тупо пишется адрес этой цепочки), а eip - на какой-нибудь ret в коде. моя задача: мне кажется решение с SetThreadContext'ом некрасивым (само использование этой функции уже жёсткое палево), я хочу сделать по-другому. идеально было бы так: я делаю QueueUserAPC, первым аргументом передаю адрес ROP-цепочки, а сама APC-функция - это код, найденный в чужом процессе, примерно такой: mov esp, [esp+4] / ret. или xchg esp, [esp + 4] / ret. то есть понимаете? он берет значение для esp из первого аргумента, и вызывает ret (первый адрес с ROP цепочки выталкивается, исполнение началось). НО! я нихуя не нашёл в коде (искал в kernelbase.dll, ntdll.dll, kernel32.dll) ни mov esp, [esp+4] / ret ни xchg esp, [esp + 4] / ret. также я не нашел что-нибудь тоже подходящее типа pop eax ; pop esp ; ret. да что там - даже два байтика инструкций pop esp ; ret - встречаются только в ЕДИНСТВЕННОМ ЭКЗЕМПЛЯРЕ. и то в Windows 10. а в Windows 7 не встречаются. задача остаётся прежней: я делаю QueueUserAPC на чужой процесс, могу установить любой адрес. в качестве параметра для APC - адрес ROP-цепочки. мне нужно этот адрес запихнуть в esp и исполнить инструкцию ret. или же может как-то можно обойти иначе, но в голову пока ничего не пришло.
Dmitry
уф. пойду покурю
\\\-_\\]\\0---
AUDNAKO!
так вот это уже и можно запинить три книги и сайтики для вновь прибывших неофитов
Ned
#book #asm
🦥Alex Fails
уф. пойду покурю
Интересно, ща подумаю
Ned
#book #asm
🦥Alex Fails
так вот это уже и можно запинить три книги и сайтики для вновь прибывших неофитов
Как-нибудь сделаем. У меня в планах еще канал литературы по асму и программированию
\\\-_\\]\\0---
вот и здорово)
fait
Сейчас редко приходится всю прошивку на ассемблере писать. Пришли дешёвые stm8, там 8 килобайт минимум и stm32 32-х битные подтянулись.
Ned
он по СТМ спец
fait
В общем, как в той песне, которую сюда выложил.
fait
Dmitry
собственно вот описание техники: https://breakingmalware.com/injection-techniques/atombombing-brand-new-code-injection-for-windows/. вот код: https://github.com/BreakingMalwareResearch/atom-bombing/blob/master/AtomBombing/main.cpp. собственно, в коде можно увидеть в конце установку регистров SetThreadContext'ом. это просто, это будет работать, но это убивает всю красоту решения на корню и делает его бессмысленным (потому что SetThreadContext - это даже похуже VirtualAllocEx'ов и WriteProcessMemory, которые удаётся избежать с помощью этой методики).