Вверх ↑
Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
#1: 2004-08-05 18:01:12 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2021-05-21 05:28:50
карма: 0

0
Ответов: 857
Рейтинг: 1
#2: 2004-08-05 22:05:16 ЛС | профиль | цитата
Можно но если не известный блок то что к нему подключать? Я вот смысла не вижу....хотя декомпилировать не которые проги мона было бы, но к сожелению разработчик один, а нас сотни...
карма: 1

0
Ответов: 857
Рейтинг: 1
#3: 2004-08-05 23:51:39 ЛС | профиль | цитата
хоть один со мной согласен!
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2004-08-06 04:36:25 ЛС | профиль | цитата
Вы хотьите декомпилировать ЛЮБЫЕ EXE файлы? Если так, то это в принципе не возможно, а если и сделать, то такую программу даже я не стал бы распространять бесплатно.

Напомню, что в настоящий момент EXE невозможно декомпилировать даже в код таких языков как C++ или Delphi, т.ч. это хоть и очень заманчивая идея, но не выполнимая.
карма: 27
0
Администрация
Ответов: 15295
Рейтинг: 1519
#5: 2004-08-21 14:10:26 ЛС | профиль | цитата
Скачаю, посмотрю.
карма: 27
0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2004-08-22 14:00:36 ЛС | профиль | цитата
Оказывается я эту программу видел уже давно. Следовало было так и сказать, что это инструмент юного крякера, сразу стало бы ясно о чем речь.
В общем декомпиляция подобного рода это не показатель. Причина проста при сборке EXE программа может вставлять в исполняемый файл как сам скрипт так и просто подсказки, так сказать, по его востановлению. Это тоже самое если при компиляции программы в HiAsm её исходник сжимать и запихивать в ресурсы. Декомпиляция тогда в этом случае будет состоять из поиска этого ресурса в EXE, его разупаковки и открытии в среде.
Вот и весь фокус.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#7: 2004-08-22 17:24:12 ЛС | профиль | цитата
Вообще-то декомпиляция на язык высокого уровня это даже торетический нонсенс. Пусть искуственный интеллект научится сначала компилировать не хуже человека. Здесь-то большие вопросы, даже продукции Borland. А разобраться в чужих кодах не всегда человек сможет - куда там какой-то проге.
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2004-08-22 18:19:39 ЛС | профиль | цитата
Полностью с вами согласен. Сначало надо сделать нормаьлные компиляторы, а потом уже думать об обратной процедуре. Тем более, что такая задача похоже по силам только ИИ, и то с большими ограничениями.
карма: 27
0
Ответов: 857
Рейтинг: 1
#9: 2004-08-22 20:42:08 ЛС | профиль | цитата
Тем более состовление алгоритма или даже написание, енто просто не реально. если бы была возможность то это было бы классно декомпилировать.
карма: 1

0
Ответов: 9906
Рейтинг: 351
#10: 2004-08-22 23:56:18 ЛС | профиль | цитата
Парни! Говорю же - это теоретический нонсенс!
Простенькую вещь - масштабирование целого числа через два других целых Y := X*A/B элементарно выполнить следующим образом:
mov ax,X; imul A; idiv B; mov Y,ax;
Вот пусть мне кто-нубудь переведет это на язык высокого уровня! Вся их крутизна не справляется с такой банальностью.
карма: 9

0
Ответов: 857
Рейтинг: 1
#11: 2004-08-23 00:08:39 ЛС | профиль | цитата
да тут вы оч сильно правы.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#12: 2004-08-23 01:09:38 ЛС | профиль | цитата
<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
0
Ответов: 9906
Рейтинг: 351
#13: 2004-08-23 01:36:52 ЛС | профиль | цитата
Это одно, но я хотел обратить внимание на другое.
конструкцию Y:=X*A/B; крутые языки скомпилируют в лучшем случае так: mov ax,X; imul A; xor dx,dx; idiv B; mov Y,ax;
По своему они правы, но это вовсе не то, что хотелось.
Скажу больше, я не знаю как им объяснить, что я просто хотел масштабировать целое. Это проблема ЯЗЫКА.

Вот и мораль: существуют коды, которые недостижимы из ЯЗЫКА. Со словарным запасом проблемы. Какой уж тут перевод в другую сторону!
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2004-08-23 02:27:06 ЛС | профиль | цитата
Конечно вы привели пример для ныне устаревших 16 разрядных компиляторов, но суть дела это нисколько не меняет. Я однажды был очень удивлен, когда увидел во что превращает тело ф-ции компилятор. А если взять например современный VS 7.0 с его кросплатформенным колом, то вообще жутко становиться!

карма: 27
0
Ответов: 9906
Рейтинг: 351
#15: 2004-08-23 02:50:30 ЛС | профиль | цитата
На 32-битных int-ы превратят в long-и, и все равно грохнут edx (надо быть очень теоретически подкованным, чтобы понять зачем делается эта глупость). А пример можно легко подправить: пусть все переменные будут long-ми. Прикиньте, какие нужны коды, чтобы компилятор не потерял старшую часть произведения.
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)