Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2021-05-21 05:28:50 |
|||
карма: 0 |
|
Ответов: 857
Рейтинг: 1
|
|||
Можно но если не известный блок то что к нему подключать? Я вот смысла не вижу....хотя декомпилировать не которые проги мона было бы, но к сожелению разработчик один, а нас сотни...
|
|||
карма: 1 |
|
Ответов: 857
Рейтинг: 1
|
|||
хоть один со мной согласен!
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Вы хотьите декомпилировать ЛЮБЫЕ EXE файлы? Если так, то это в принципе не возможно, а если и сделать, то такую программу даже я не стал бы распространять бесплатно.
Напомню, что в настоящий момент EXE невозможно декомпилировать даже в код таких языков как C++ или Delphi, т.ч. это хоть и очень заманчивая идея, но не выполнимая. |
|||
карма: 27 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Скачаю, посмотрю.
|
|||
карма: 27 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Оказывается я эту программу видел уже давно. Следовало было так и сказать, что это инструмент юного крякера, сразу стало бы ясно о чем речь.
В общем декомпиляция подобного рода это не показатель. Причина проста при сборке EXE программа может вставлять в исполняемый файл как сам скрипт так и просто подсказки, так сказать, по его востановлению. Это тоже самое если при компиляции программы в HiAsm её исходник сжимать и запихивать в ресурсы. Декомпиляция тогда в этом случае будет состоять из поиска этого ресурса в EXE, его разупаковки и открытии в среде. Вот и весь фокус. |
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Вообще-то декомпиляция на язык высокого уровня это даже торетический нонсенс. Пусть искуственный интеллект научится сначала компилировать не хуже человека. Здесь-то большие вопросы, даже продукции Borland. А разобраться в чужих кодах не всегда человек сможет - куда там какой-то проге.
|
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Полностью с вами согласен. Сначало надо сделать нормаьлные компиляторы, а потом уже думать об обратной процедуре. Тем более, что такая задача похоже по силам только ИИ, и то с большими ограничениями.
|
|||
карма: 27 |
|
Ответов: 857
Рейтинг: 1
|
|||
Тем более состовление алгоритма или даже написание, енто просто не реально. если бы была возможность то это было бы классно декомпилировать.
|
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Парни! Говорю же - это теоретический нонсенс!
Простенькую вещь - масштабирование целого числа через два других целых Y := X*A/B элементарно выполнить следующим образом: mov ax,X; imul A; idiv B; mov Y,ax; Вот пусть мне кто-нубудь переведет это на язык высокого уровня! Вся их крутизна не справляется с такой банальностью. |
|||
карма: 9 |
|
Ответов: 857
Рейтинг: 1
|
|||
да тут вы оч сильно правы.
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
<table><tr><td class=quote>
mov ax,X; imul A; idiv B; mov Y,ax; </td></tr></table> Хорошая теоритическая задача! Нынешние ИИ, после глубочайшего анализа кода, думаю максимум сделают так register int _var10238; _var10238 = _var10239; _var10238 *= _var10240; _var10238 /= _var10241; _var10242 = _var10238; Прошу особо заметить, что имена _varXXX выбраны не просто так, ибо нет никакой физической возможности восстановить реальные имена X,Y,A и B. Страшно даже представить, на что будет похожа программа в 100Кб после такой декомпиляции!!! |
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Это одно, но я хотел обратить внимание на другое.
конструкцию Y:=X*A/B; крутые языки скомпилируют в лучшем случае так: mov ax,X; imul A; xor dx,dx; idiv B; mov Y,ax; По своему они правы, но это вовсе не то, что хотелось. Скажу больше, я не знаю как им объяснить, что я просто хотел масштабировать целое. Это проблема ЯЗЫКА. Вот и мораль: существуют коды, которые недостижимы из ЯЗЫКА. Со словарным запасом проблемы. Какой уж тут перевод в другую сторону! |
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Конечно вы привели пример для ныне устаревших 16 разрядных компиляторов, но суть дела это нисколько не меняет. Я однажды был очень удивлен, когда увидел во что превращает тело ф-ции компилятор. А если взять например современный VS 7.0 с его кросплатформенным колом, то вообще жутко становиться!
|
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
На 32-битных int-ы превратят в long-и, и все равно грохнут edx (надо быть очень теоретически подкованным, чтобы понять зачем делается эта глупость). А пример можно легко подправить: пусть все переменные будут long-ми. Прикиньте, какие нужны коды, чтобы компилятор не потерял старшую часть произведения.
|
|||
карма: 9 |
|