izotope ozone

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by altblitz, 2 Mar 2014.

  1. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,691
    Likes Received:
    3,145
    Reputations:
    236
    есть софт iZotope Ozone.

    в общем случае - софтвер инструмент для мастеринга и пост-процессинга аудио,
    и в конкретном случае - 32-битный плагин для обработки аудио для аудио-плейеров на Win.

    можете не искать в сети официальный релиз Ozone for MediaPlayers - его больше нет на сайте официальном.

    так вот, в чём интересная задача.
    i. код перевести из x86-32 на 64-bit.
    ii. плагин оцифровывает дискретно - int под Winamp
    ii.a нужно float-point, для foobar2000

    на сегодня, прогоняю в TurboDebugger этот плагин весом в 4МБ.

    вопрос - есть ли возможность из асм32 перевести в асм64?
    сорри, если для кого-то вопрос очевиден и ответ - нет.
     
  2. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    637
    Likes Received:
    246
    Reputations:
    42
    А вы уже получили компилируемый х86 код?
     
  3. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,691
    Likes Received:
    3,145
    Reputations:
    236
    Пока получил опыт реверса x86 miniFmod audio, что используется для озвучивания креков прог Win.

    Непосредственно код ozone - пока прогоняется в дебаггере.
    Защиты нет кода прямого, наворочено всяко ненужного в теле .data .code. // пасхальные яйца и игра недоделанная ))

    Code:
    # 1 "src/sound.S"
    # 1 "<built-in>"
    # 1 "<command line>"
    # 1 "src/sound.S"
    # 11 "src/sound.S"
     .this_GCC_requires_the_GNU_assembler
     .linkonce one_only
     .title PalNuke!
     .intel_syntax
     .arch i386
     .optim
    
     .p2align 4,,15
    _mfmPlay:
     push ebp
     mov ebp, esp
     cmp dword ptr [ebp+8], 0x0
     je LmfmPlayPause
     push 0x0
     push 0xac44
     call _FSndInit
     add esp, 0x8
     test eax, eax
     je LmfmPlayRet
     push 0x0
     push dword ptr [ebp+8]
     call _FMusicLoadSong
     add esp, 0x8
     test eax, eax
     je LmfmPlayRet
     mov ds_0x4063d4, eax
     push eax
     call _LFMusicPlaySong
     add esp, 0x4
     mov eax, ds_0x4063d4
     jmp LmfmPlayRet
    LmfmPlayPause:
     cmp dword ptr dwPauseThread, 0x0
     je LmfmPlayStop
     call _mfmPause
    LmfmPlayStop:
     push ds_0x4063d4
     call _FMusicFreeSong
     add esp, 0x4
     push hWaveOut
     call [__imp__waveOutReset]
     push hWaveOut
     call [__imp__waveOutClose]
     push ds_0x40d390
     call [__imp__GlobalFree]
    LmfmPlayRet:
     leave
     ret