teremochek, вообще существуют более-менее нормальные "переводчики" машинного кода в C, но только для x86 (пк-шных) процов и ARM (и кстати стоят хрен знает сколько тысяч долларов)
Приходилось иметь дело с таким.
Первое что обломило, это куча переменных с неопознанным типом.
Ну а когда дошло до этих - "*(_DWORD *)(a1 + 20) = 7;", я понял что ничего не получится..
вот пример работы:
процедурка на асме http://pastebin.com/ahNDrd65
результат на С http://pastebin.com/8ikUSL83
будет ли тебе понятнее такой код на С ? сомневаюсь
Такой код я хотя-бы могу разобрать. Если выяснить что делает данная функция и проименовать ее, то даже вероятно не будет нужды переименовывать весь код функции..
Другое дело - эти "(*DWORD)*(a1+21)",
с которыми неясно что делать.. Как я понял это ссылка на память стека, или что-то вроде того...
Но мне нужен Высокоуровневый код, который легко модифицировать и портировать..
но большое НО - это декомпил кода, который изначально был написан на С, если бы на входе был рукописный асм - белиберда бы получилась еще та
На сколько мне известно, еще необходимо что-бы версии Языка, на которым изначально был написан код, совпадала с той, в которой будешь работать. По моему не так просто узнать, на какой конкретно версии писалась та - или иная игра..
Вообще, как я понимаю, толковых декомпиляторов ассемблера в высокоуровневый код - не существует.