eXeL@B —› Вопросы новичков —› Ничего не делающие команды ассемблера |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 14 декабря 2018 07:46 · Личное сообщение · #1 |
|
Создано: 14 декабря 2018 08:37 · Поправил: f13nd · Личное сообщение · #2 |
|
Создано: 14 декабря 2018 09:36 · Личное сообщение · #3 XN210 пишет: Подскажите пустые (ничего не делающие) инструкции ассемблера Для чего? Нужен мусор, смотри сырки любого джанкгенератора. Тебе правильно написали f13nd пишет: Любые операции над регистрами, значения которых в дальнейшем коде не используются 0F1F00 - трехбайтовый ноп pause По большому счету можно для этого почти любые инструкции приспособить, они конечно не будут "ничего не делать" в абсолютном понимании, но результат действий будет как таковой отсутствовать. Например jmp на следующую инструкцию в общем-то nop. Code:
Часто юзаются парные "зеркальные" инструкции Code:
Вариантов бесконечно* много. |
|
Создано: 14 декабря 2018 09:57 · Личное сообщение · #4 Вот только убирается мусорный код так-же просто как и добавляется. ----- PGP key |
|
Создано: 14 декабря 2018 11:57 · Личное сообщение · #5 |
|
Создано: 14 декабря 2018 12:48 · Личное сообщение · #6 |
|
Создано: 14 декабря 2018 18:37 · Личное сообщение · #7 |
|
Создано: 14 декабря 2018 19:33 · Поправил: cppasm · Личное сообщение · #8 |
|
Создано: 14 декабря 2018 21:10 · Личное сообщение · #9 |
|
Создано: 15 декабря 2018 20:34 · Поправил: difexacaw · Личное сообщение · #10 XN210 > Чтобы удобнее было "редактировать" код ассемблера в Hiew. Удобно однобайтовой инструкцией переписывать, иначе по простому не получится - придётся перемещать инструкции в буфер. Так что это не ответ. Из такого полиморфа этот мусор вычищается элементарно. У таких инструкций нет никаких зависимостей. Добавлено спустя 8 минут VOLKOFF > 0F1F00 - трехбайтовый ноп Он может быть произвольной длины. 0F 1F(опкод) + MODR/M. Modrm кодирует эффективный адрес, но выборка не происходит как и в LEA. нп nop D[eax][ebx*8][12345]. > add eax,0 Изменяет ведь контекст(флажки). ----- vx |
|
Создано: 16 декабря 2018 00:53 · Личное сообщение · #11 |
|
Создано: 16 декабря 2018 04:50 · Поправил: Модератор · Личное сообщение · #12 |
|
Создано: 16 декабря 2018 05:49 · Поправил: VOLKOFF · Личное сообщение · #13 |
|
Создано: 16 декабря 2018 10:40 · Личное сообщение · #14 VOLKOFF > Тут может быть произвольный регистр, а не только eax > Совсем заскучал? Да, заскучал. Я просто вас поправил. Контекст это не только регистры, но и флажки. Если такую инструкцию вставить до использования флагов, то логика апп собьётся, тк есть зависимость контекста. Обычно такое делается на уровне графа, при этом проверяются изменяемые и используемые флажки - проход по ветвям от текущего места и поиск использования флажков. ----- vx |
|
Создано: 16 декабря 2018 11:02 · Личное сообщение · #15 |
|
Создано: 16 декабря 2018 12:53 · Личное сообщение · #16 VOLKOFF > контексте вопроса вполне полезно (при условном переходе на середину инструкции например). Не понимаю что это значит. Допустим есть конструкция: test r,n ... jcc L Если между этими инструкциями вставить add, это изменит часть контекста(флажки), тогда произойдёт утеря данных(результата test) и управление определит результат исполнения add. Ветвление не на начало инструкций всегда была проблемой, например отладчиков. Потому что они строят одноуровневый граф, в котором трансляция адреса в описатель происходит не по адресу, а по диапазону адресов, занимаемых инструкцией. В той же иде например последней это пофиксили ? ----- vx |
|
Создано: 20 марта 2019 11:37 · Поправил: e_sergey · Личное сообщение · #17 Всем привет , уважаемые форумчане . Снова вопросы . Надеюсь можно продолжить ... Про ничего не делающие команды и прерывания int 3 . Насколько я понял, за инструкцию прерывания, которая может сбить с толку отладчик ( ida или x64dbg ) , если открыть отлаживаемый файл в хекс редакторе, отвечает значение байта CC . Отсюда ( из прочитанного в нете или на форуме ) могу сделать заключение , если не прав - поправьте , перед тем как что то читать или смотреть или пробовать изменить в ida или x64dbg нужно открыть фаил в hex редакторе и заменить все CC на 90 ? Вот пример того , что я вижу, открыв нужный мне файл в PSpad По идее я могу заменить все CC на 90 ? Возможно мне нужно искать и другие значения и менять их на 90 , что превратит прерывания в nopы ? Ничего другого из кода я не испорчу , сделав подобные замены ? Насколько я понимаю подобным образом нужно изменить все длл , которые загружаются в память при изучении нужного мне exe ? |
|
Создано: 20 марта 2019 11:49 · Личное сообщение · #18 |
|
Создано: 20 марта 2019 11:55 · Поправил: e_sergey · Личное сообщение · #19 вероятно вопрос поставлен не корректно попробую спросить по другому как , открыв файл в hex редакторе, найти все значения , которые отвечают за прерывания типа int 3 или что то подобное , что может сбить с толку отладчик , и заменить их на 90 (nop) или так - может нужно искать определённую последовательность байт в hex редакторе ( сигнатуру или как это правильно называется ) , которая говорит о том , что в коде используется прерывание типа int 3 ? |
|
Создано: 20 марта 2019 12:10 · Личное сообщение · #20 |
|
Создано: 20 марта 2019 12:17 · Личное сообщение · #21 |
|
Создано: 20 марта 2019 12:18 · Поправил: e_sergey · Личное сообщение · #22 Medsft пишет: Да кто тебе в мозг вбил друга - я читаю пока ещё , опыта мало , по честному практически нет но все из литературы ... вот например калашников стр 165 - литература рекомендуемая на форуме cppasm пишет: Короче ничего делать не надо Хорошо , исходя из этого след вопрос Что за ошибка , которую я получаю в x64dbg ExceptionCode: 80000004 (EXCEPTION_SINGLE_STEP) |
|
Создано: 20 марта 2019 12:51 · Личное сообщение · #23 |
|
Создано: 20 марта 2019 12:58 · Поправил: e_sergey · Личное сообщение · #24 |
|
Создано: 20 марта 2019 13:44 · Личное сообщение · #25 |
|
Создано: 20 марта 2019 13:56 · Поправил: e_sergey · Личное сообщение · #26 cppasm пишет: надо не свои фантазии на тему описывать, а выложить файл и написать в чём проблема. друга это вопросы , которые возникают в процессе изучения . я вижу эти прерывания в x64bdg когда делаю трассировку с заходом при изучении работы екзешника или длл , с которым непосредственно этот екзешник связан , и дает нужный результат cppasm пишет: задаёшь мягко говоря очень странные вопросы, ответы на которые тебе всё равно не помогут в чем странность вопросов от ученика - в том что для гуру они очевидны ? вполне себе сложные вопросы для меня , знаете ответ - подскажите ... 1. Как , открыв файл в hex редакторе, найти все значения , которые отвечают за прерывания типа int 3 или что то подобное ? 2. На что влияют эти прерывания при исследовании фаила например в x64dbg или ida pro 7 ? 3. Можно заменить все CC на 90 ? 4. Может нужно искать определённую последовательность байт в hex редакторе помимо CC ? 5. Если я заменю все CC в hex на 90 - я не испорчу код ? если есть ссылка, по которой можно что то конкретное понять про эти int 3, торните носом плиз , я с удовольствием почитаю .. |
|
Создано: 20 марта 2019 14:07 · Поправил: TryAga1n · Личное сообщение · #27 e_sergey пишет: 1. Как , открыв файл в hex редакторе, найти все значения , которые отвечают за прерывания типа int 3 или что то подобное ? Никак. Нужно дизасмить приложение, но дизасм при анализе порой допускает ошибки, особенно если софтина не стандартно написана. e_sergey пишет: 2. На что влияют эти прерывания при исследовании фаила например в x64dbg или ida pro 7 ? Нужно расматривать каждый частный случай индивидуально, потому как ответом может быть "на все" или же "ни на что" e_sergey пишет: 3. Можно заменить все CC на 90 ? нет e_sergey пишет: 4. Может нужно искать определённую последовательность байт в hex редакторе помимо CC ? здесь нужен дизассемблер, а не hex редактор e_sergey пишет: 5. Если я заменю все CC в hex на 90 - я не испорчу код ? однозначно испортишь | Сообщение посчитали полезным: e_sergey |
|
Создано: 20 марта 2019 14:13 · Личное сообщение · #28 e_sergey пишет: Отсюда ( из прочитанного в нете или на форуме ) могу сделать заключение , если не прав - поправьте , перед тем как что то читать или смотреть или пробовать изменить в ida или x64dbg Поправляют все уже на пол страницы: Заключение НЕверное! |
|
Создано: 20 марта 2019 14:21 · Поправил: e_sergey · Личное сообщение · #29 |
|
Создано: 20 марта 2019 14:35 · Личное сообщение · #30 e_sergey пишет: друга это вопросы , которые возникают в процессе изучения уморил! )))) мам... это не я! это пацаны код отлаживали, я просто рядом гуглил!.. вот тебе ответы: 1) а) гугли Intel® 64 and IA-32 Architectures Software Developer’s Manual, и ищи интересующие тебя опкоды б) открой хелп хекс-редактора и почитай какой кнопкой осуществлять поиск (в идеале = regex) в) ищи! 2) гугли Intel® 64 and IA-32 Architectures Software Developer’s Manual - там вся инфа есть 3) судять по твоим постам выше, "ничегонеделающие" int 3 - это заполнение гапов между кодом для выравнивая функций. Паддинг. Можешь чем угодно заполнять. Хоть nop-ами, хоть... _h_t_t_p_s_://reverseengineering.stackexchange.com/questions/4084/why-ther-are-some-many-padding-leading-nop-instructions-in-my-binary-code _h_t_t_p_s_://stackoverflow.com/questions/7912464/why-does-gcc-pad-functions-with-nops/7912617#7912617 4) может. все же от задачи зависит... 5) если речь о паддинге, то нет, не испортишь... но зачем? мой тебе совет - читай, гугли, смотри видео тьюторы, но в режиме рид-онли! а вот как наберешь багаж знаний, столкнешься с ситуацией, которую сам хрен решишь, башку разобьешь... вот тогда можно и спросить. и вопрос правильный будет и, соответственно, ответ! у меня всё! | Сообщение посчитали полезным: e_sergey |
. 1 . 2 . >> |
eXeL@B —› Вопросы новичков —› Ничего не делающие команды ассемблера |