Удаление мусора

Тема в разделе "WASM.RESEARCH", создана пользователем GoldFinch, 28 авг 2008.

  1. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Подскажите тулзу\скриптец, который удалял бы такое
    Код (Text):
    1. ...
    2. UPX_____:30068AA8                     pusha                   ; Push all General Registers
    3. UPX_____:30068AA9                     mov     cl, 28h
    4. UPX_____:30068AAB                     jo      _j424           ; Jump if Overflow (OF=1)
    5. UPX_____:30068AB1                     add     di, 6562h       ; Add
    6. UPX_____:30068AB6
    7. UPX_____:30068AB6     _j424:                                  ; CODE XREF: UPX_____:30068AABj
    8. UPX_____:30068AB6                     popa                    ; Pop all General Registers
    9. UPX_____:30068AB7                     mov     ebx, ebx
    10. UPX_____:30068AB9
    11. UPX_____:30068AB9     loc_30068AB9:                           ; DATA XREF: UPX_____:3006B879r
    12. UPX_____:30068AB9                     jmp     j425            ; Jump
    13. ...
    14. UPX_____:30069491     j425:                                   ; CODE XREF: UPX_____:loc_30068AB9j
    15. UPX_____:30069491                     jmp     j426            ; Jump
    16. ...
    17. UPX_____:3006C0DF     j426:                                   ; CODE XREF: UPX_____:j425j
    18. UPX_____:3006C0DF                     mov     eax, ecx
    19. UPX_____:3006C0E1                     jmp     j427            ; Jump
    20. ...
    21. UPX_____:3006C293     j427:                                   ; CODE XREF: UPX_____:3006C0E1j
    22. UPX_____:3006C293                     mov     edx, 929h
    23. UPX_____:3006C298                     jmp     TrueCode1       ; Jump
    24. ...
    25. UPX_____:3018B464     TrueCode1:
    26. UPX_____:3018B464                     mov     eax, eax
    27. UPX_____:3018B466     ;---------------------
    28. UPX_____:3018B466                     push    PAGE_EXECUTE_READWRITE
    29. UPX_____:3018B468                     push    MEM_COMMIT
    30. UPX_____:3018B46D                     push    0FCh
    31. UPX_____:3018B472                     push    0
    32. UPX_____:3018B474                     call    ss:(pVirtualAlloc_2 - 29FC4014h)[ebp]
    и неплохо бы и такое:
    Код (Text):
    1. UPX_____:301B126E                     push    0
    2. UPX_____:301B1270                     push    edi
    3. UPX_____:301B1271                     call    sub_301B1279    ; Call Procedure
    4. UPX_____:301B1271     ; ---------------------------------------------------------------------------
    5. UPX_____:301B1276                     db  20h
    6. UPX_____:301B1277     ; ---------------------------------------------------------------------------
    7. UPX_____:301B1277                     pop     edi
    8. UPX_____:301B1278                     retn                    ; Return Near from Procedure
    9. UPX_____:301B1279
    10. UPX_____:301B1279     ; =============== S U B R O U T I N E =======================================
    11. UPX_____:301B1279
    12. UPX_____:301B1279
    13. UPX_____:301B1279     sub_301B1279    proc near               ; CODE XREF: UPX_____:301B1271p
    14. UPX_____:301B1279
    15. UPX_____:301B1279     arg_4           = dword ptr  8
    16. UPX_____:301B1279
    17. UPX_____:301B1279 000                 pop     edi
    18. UPX_____:301B127A -04                 mov     [esp-4+arg_4], edi
    19. UPX_____:301B127E -04                 add     [esp-4+arg_4], 1Ah ; Add
    20. UPX_____:301B1286 -04                 inc     edi             ; Increment by 1
    21. UPX_____:301B1287 -04                 push    edi
    22. UPX_____:301B1288 000                 retn                    ; Return Near from Procedure
    23. UPX_____:301B1288     sub_301B1279    endp
    24. UPX_____:301B1288
    25. UPX_____:301B1288     ; ---------------------------------------------------------------------------
    26. UPX_____:301B1289                     db 6Dh,92h,0D5h,0Eh,0D8h,25h,38h,60h
    27. UPX_____:301B1291     ; ---------------------------------------------------------------------------
    28. UPX_____:301B1291     ...
     
  2. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    А что конкретно нужно удалять: комменты, ненужные безусловные переходы, строки вида "UPX_____:ХХХХХХХХ" или всё вместе?
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Инструкции. Например делать новый кусок кода, без лишних инструкций. Если в иде - то например во временном сегменте. Или в писать их в бинарник. В идеале - по-максимуму переписать код, удалив лишнее.
     
  4. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    прикрепи файл, и с какого места надо тебе вычистить! ;)
     
  5. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Не вижу в этом особого смысла, мне больше надо прогу\алгоритм который чистит, чем вычищенный файл, но если хочется увидеть файл, вот оригинальный:
    http://dump.ru/file_catalog/1026263
    а вот с тремя расшифрованными областями (судя по коду их больше):
    http://dump.ru/file_catalog/1026270
    Вычистить с entrypoint'a =)

    ЗЫ: на всякий случай загрузчик:
    Код (Text):
    1. format PE GUI 4.0
    2. section '.code' code readable executable
    3. entry start
    4. data import
    5.      dd 0,0,0,rva aKernel32_dll,rva LoadLibraryA, 5 dup(0)
    6.      LoadLibraryA dd rva aLoadLibraryA,0
    7. end data
    8. start:push aBinkw32_dll
    9.       call [LoadLibraryA]
    10.       ret
    11. aBinkw32_dll db "binkw32.dll",0
    12. aKernel32_dll db "KERNEL32.DLL",0
    13. aLoadLibraryA db 0,0,"LoadLibraryA",0
     
  6. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    GoldFinch
    Не вижу ничего мусорного, ткни маленькому дитятко какой файлик именно с мусором!!! А то я жму Ctrl+E в IDA, а там никого мусора ((( абыдна, абманули
     
  7. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Помоему в 1м посте я достаточно ясно описал проблему %)
     
  8. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    EvilsInterrupt
    Мусор не в виде неинтерпретируемых безсмысленных инструкций, а в виде избыточности кода, при удалении которого основной алгоритм кода всё равно останется неизменным.