switch/case: автоматическая декомпиляция

Тема в разделе "WASM.RESEARCH", создана пользователем nobodyzzz, 5 окт 2007.

  1. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Hi all,
    В принципе проблема декомпиляции субжевых конструкций неплохо описано мыщьх(http://wasm.ru/article.php?article=1009002), и тот же desquirr достаточно сносно справляется с задачей автоматичекского декомпилирования, если исползуются jump-table, но когда имеет место быть код вида:
    Код (Text):
    1. .text:004259DF                 mov     eax, PR_NORMAL_MSG_W_ATTACH_COUNT
    2. .text:004259E4                 cmp     ecx, eax
    3. .text:004259E6                 ja      loc_425D06
    4. .text:004259EC                 jz      loc_560382
    5. .text:004259F2                 mov     eax, PR_FOLDER_CHILD_COUNT
    6. .text:004259F7                 cmp     ecx, eax
    7. .text:004259F9                 ja      short loc_425A3E
    8. .text:004259FB                 jz      loc_4257A0
    9. .text:00425A01                 sub     ecx, PR_MESSAGE_SIZE
    10. .text:00425A07                 jz      loc_425D48
    11. .text:00425A0D                 sub     ecx, 11h
    12. .text:00425A10                 jz      loc_425D48
    13. .text:00425A16                 sub     ecx, 27F9FFEFh
    14. .text:00425A1C                 jz      loc_42579C
    15. .text:00425A22                 sub     ecx, 10000h
    16. .text:00425A28                 jz      loc_425798
    17. .text:00425A2E                 sub     ecx, 70008h
    18. .text:00425A34                 jnz     loc_425788
    Приходиться все делать руками, что если функция достаточно большая и код ее досточно тривиален, весьме не приятно. Может знает кто какую-тулзу или IDC-скрипт =)) для хоть какой нибудь автоматизации сего дела? Помнится кто-то на форму хвалился своими наработками... Поиск в гугле ничего особенного не дал(ну кроме ссылок на Desquirr, HexRay и еще какую-то поделку на питоне - IDC(http://idc.sourceforge.net/wiki/)), IDC поставил на закачку, но что-то подсказывает что не поможет оно мне.