Транслятор ASM->маш. код

Тема в разделе "WASM.BEGINNERS", создана пользователем Relogin1, 15 май 2006.

  1. Relogin1

    Relogin1 New Member

    Публикаций:
    0
    Регистрация:
    15 май 2006
    Сообщения:
    3
    Адрес:
    Russia
    Нужен справочник соответствия ASM команд их машинным кодам. Что-то вроде того , что в приложении книги Питера Абеля "Язык ассембелера для IBM PС программирования"

    Но лучшек всего утилитку - я слышал такие есть
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    А ты знаешь, что один опкод может соответствовать нескольким мнемоникам? Что одна мнемоника может кодироваться по-разному в зависимости от операндов?
     
  3. Relogin1

    Relogin1 New Member

    Публикаций:
    0
    Регистрация:
    15 май 2006
    Сообщения:
    3
    Адрес:
    Russia
    Знаю, но елки-палки дизассемблер ведь разбирается как-то...

    Смысл в том, что я хочу модифицировать одну програмку

    Как делаю - Открываю в IDA exe-шник нахожу нужное место, смотрю HEX-вид, нахожу по hex сигнатуре это место в файле открытом в WinHex и правлю.

    Так вот правлю-то в мнемокодах и мне нужно соответствие

    или есть другая технология?
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine


    Дизассемблер декодирует код, т.к. структура опкода полиморфична. Только для получения длины инструкции (сколько байт она занимает) пишется не такой уж маленький код, не говоря уже о полном дизассемблировании.





    Не проще ли использовать HIEW для правки? Или править в IDA, получая diff-файл, на который потом натравить одну из многочисленных патч-утилит.
     
  5. Relogin1

    Relogin1 New Member

    Публикаций:
    0
    Регистрация:
    15 май 2006
    Сообщения:
    3
    Адрес:
    Russia


    Дыук я ж начинающий. Hiew не люблю в силу интерфейса

    Кстати Winhex неломаный, потому нельзя более 200Кб afqks редактировать :dntknw:((

    Все-таки хотелось бы утилитку, которой на ASM дал код , а она на лету даст опкод



    <font color="red]для цитирования тег
     
  6. dinoweb

    dinoweb Дмитрий

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    129
    Адрес:
    Россия. Красноярск
    Попробуй использовать W32DASM. Там, во время отладки можно патчить в памяти. Нажимаешь патч, пишешь нужную инструкцию, нажимаешь enter и в этом же окне смотришь её опкод. Ещё можно для этих целей FASM использовать. Пишешь use32 если надо,пишешь инструкцию, компилируешь, и смотришь бинарник.
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    dinoweb



    Ему интерактивно надо.





    В Олли тогда проще.
     
  8. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Придется полюбить Hiew. Нажал 2 раза F7, ввел инструкцию, нажал на ввод, получил опкод (прям в рифму :)
     
  9. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Насколько я понял, основной вопрос не утилитка -"справочник по опкодам", а "модификация одной программки"



    В таком случае я могу в который раз посоветовать неискущенным массам пользоваться услугами мисс Оли (OllyDbg). И в который раз пояснить, что с ее помощью можно поиметь прогу не только в режиме отладки, но и в чистом пассиве - делаем View\File и работаем правой кнопкой. Хочешь чистый пассив - пожалуйста, но актив (режим отладки) ес-но поприятнее будет. Если брякаться на системном int3, то и отладкой это можно назвать весьма условно - просто дизасм и правка образа, а не файла (Оля сама знает как сохранить изменения файл).

    При желании можно и как справочником пользоваться - открываешь любую простенькую прогу в пассиве или активе - жмешь Assemble и набираешь чего душе угодно - сохранить измения при выходе ес-но отказываешься - вот и все :)