сравнение

Тема в разделе "WASM.BEGINNERS", создана пользователем loginrl_103, 30 апр 2008.

  1. loginrl_103

    loginrl_103 New Member

    Публикаций:
    0
    надо выявить различия в двух программах (версия 1 и версия 1.1). использую winhex - но она сравнивает только в хексах, мне же нужно более удобное средство сравнения + встроенный дизассемблер.
    что можете посоветовать?
     
  2. eight

    eight New Member

    Публикаций:
    0
    дизассемблер - IDA Pro
     
  3. censored

    censored New Member

    Публикаций:
    0
  4. censored

    censored New Member

    Публикаций:
    0
    опередил...
     
  5. loginrl_103

    loginrl_103 New Member

    Публикаций:
    0
    он умеет искать различия между двумя файлами?
     
  6. eight

    eight New Member

    Публикаций:
    0
    это интерактивный дизассемблер. Думаю, что отличия ты и найти сможешь

    censored ;)
     
  7. loginrl_103

    loginrl_103 New Member

    Публикаций:
    0
    если несколько сот изменений...вручную чтоли сравнивать???
    поиск различий именно в процедурах...
     
  8. eight

    eight New Member

    Публикаций:
    0
    А как еще? просто прогнать в иде, в отладчике и посмотреть что и как. Только и всего. Тем более, что все равно одно цепляется за другое и не все так страшно окажется в итоге. Хотя если у кого-то есть варианты получше, то это замечательно
     
  9. loginrl_103

    loginrl_103 New Member

    Публикаций:
    0
    вручную выискивать сотни изменений?...есть решения, есть, только какие?)
     
  10. censored

    censored New Member

    Публикаций:
    0
    от ситуации зависит. Можно, например, тупо выдергнуть секции кода и их проверять обычным fc, уравнив их размер ;) думайте, фантазируйте
     
  11. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    подними статьи ксакепа за 2оо6й год. помню что там была содержательная(что парадокс само по себе) статья
    о написании патчей. там тебе и прога готовая, и howto, и исходник.
     
  12. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    А что есть метод из сотни изменений сделать 10 ???

    Бери fc и сравнивай ....
     
  13. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    А как еще можно сравнить бинарник ? Только в хексах !

    Что значит более удобное ? Чем fc неудобный ?

    То что ты хочеш это не тупое сравнение а реверс инженеринг дело непросто долгое и кропотливое.
     
  14. SWR

    SWR New Member

    Публикаций:
    0
    Я обычно дизасамблил в иде и сохранял как текст.
    А потом любым удобным дифф для текста
     
  15. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    кстате можно:
    берём idapro+hexrays
    дампим сишник(или асм без ХР)
    повторяем со вторым ехе.
    выбираем оба файла в тотал коммандере, и жмём alt+c
    [​IMG]

    можно и без дампа и иды. но так нагляднее.
    [​IMG]
     
  16. loginrl_103

    loginrl_103 New Member

    Публикаций:
    0
    asmlamo - добавление 2-3 инструкций приведут к тому что ВСЕ последующие байты будут определяться как РАЗНЫЕ. нелогично если эти инструкции добавятся в самом начале секции кода в 1-2 мбайтном файле...
    логичнее и помойму правильнее сравнивать имено процедурно.
    SWR, Comer_ - вчера я примерно так и начал делать - сначала в ида потом скриптом обрабатывать...

    жаль что нету специализированных средств...)

    ps. Comer_ - если можно о ксакапе поподробнее (на wasm.ru статья?)
     
  17. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    ..чем тотал коммандер не средство?

    ксакеп это журнал ][akep )
    мы его сами не любим, но всёравно читаем .))
     
  18. loginrl_103

    loginrl_103 New Member

    Публикаций:
    0
    по ключевикам и по автору не находится) хреновый поисковик у них )))
     
  19. valterg

    valterg Active Member

    Публикаций:
    0
    loginrl_103
    Все зависит от ситуации. Если логику не меняли и компилили тем же компилятором, то метод
    дизасм и сравнение в ТоталКоммандере самое наглядное. Но если поменяли логику или сменили компилятор - процедуры могут поменятся местами и кроме головы ничто не поможет.
    Помню, как пришлось мучится и искать место патча. Раньше оно было почти по фиксированному адресу, а потом оказалось в середине 40 Мбайтного экзешника. Тут никакое сравнение не поможет, только интуитивный поиск по 400 Мбайтному дизасму. Ну а смена компилятора или версии защиты- самое гиблое. Вроде и проги не сильно поменялись, но если раньше патчились простым jmp на нормальный выход, то теперь ... темный лес. Так и не получил я вознаграждение.
     
  20. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    loginrl_103
    Sabre BinDiff - видимо то, что тебе нужно.