Потерял исходник, что можно сделать?

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
TTXT
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 24.06.2007 (Вс) 21:44

Потерял исходник, что можно сделать?

Сообщение TTXT » 27.07.2007 (Пт) 19:50

Делаю небольшую прогу, недавно надо было срочно перезагрузить комп, по быстрому сохранил проект и нажал на reset, после перезагрузки открываю проект, пишет что-то вроде того, что проект не может быть загружен, смотрю папку с прогой, а файл основной формы состоит из одних пробелов, можно что-либо сделать, чтобы восстановить хотябы часть того что было на форме, имеется ввиду код, объекты не так важны?

Watts[]n!
Постоялец
Постоялец
 
Сообщения: 573
Зарегистрирован: 11.02.2007 (Вс) 0:19

Сообщение Watts[]n! » 27.07.2007 (Пт) 20:14

Если у тебя Windows XP и включено восстановление системы, то можно попроблвать сделать откат.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.07.2007 (Пт) 21:00

Откат системы не затрагивает пользовательских файлов (что особо подчёркивается в описании отката системы).
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 27.07.2007 (Пт) 21:02

Если проект был скомпилирован (например в exe файл), можно попробовать его декомпилировать.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.07.2007 (Пт) 21:18

Способа получить исходник из exe не существует, о чём было сказано слишком много раз, чтобы можно было говорить ещё раз.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Watts[]n!
Постоялец
Постоялец
 
Сообщения: 573
Зарегистрирован: 11.02.2007 (Вс) 0:19

Сообщение Watts[]n! » 27.07.2007 (Пт) 21:53

Просто я никогда откатом не пользовался, и он у меня выключен. А у большинства юзеров, насколько я знаю, включен.

TTXT
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 24.06.2007 (Вс) 21:44

Сообщение TTXT » 27.07.2007 (Пт) 21:54

Есть exe скомплированый в p-код, из него можно что-либо получить?

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 27.07.2007 (Пт) 23:02

По-моему проще всего набрать код заново... :wink:
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.07.2007 (Пт) 23:47

TTXT писал(а):Есть exe скомплированый в p-код, из него можно что-либо получить?

Из него можно что-либо получить.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Watts[]n!
Постоялец
Постоялец
 
Сообщения: 573
Зарегистрирован: 11.02.2007 (Вс) 0:19

Сообщение Watts[]n! » 28.07.2007 (Сб) 13:39

GSerg писал(а):Способа получить исходник из exe не существует, о чём было сказано слишком много раз, чтобы можно было говорить ещё раз.


Зачем же тогда существубт программы, призванные декомпилировать экзешники, скомпилированные на VB6? У меня их аж 3 штуки :)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.07.2007 (Сб) 13:56

Для развода лохов.
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.07.2007 (Сб) 14:12

Watts[]n!

Код: Выделить всё
...
push 123
call Foo
push eax
call Foo
...



Что это?

Foo(Foo(123)) ?
или
e& = 123
e& = Foo(e&)
e& = Foo(e&)
?

или что-то ещё?

Вот простейший дибильнейший пример того, что много вариантов кода могут быть скомпилированы одинаково. В данном случае это VB-шная оптимизация.

Я не спорю, что твои проги для "декомпиляции" что-то могут, но результат, полученный с помощью этих средств может быть настолько делёким от оригинала (и неверным, вдобавок), что автору будет проще написать исходный код заново.

Хотя бы факт того, что при компиляции будут потеряны идентификаторы: как декомпилятор должен отобразить эвристическим анализом полученные процедуры?

Код: Выделить всё
Public Sub Proc001
End Sub

Public Sub Proc002
End Sub

так?

А где Sub, где Function ? Как отличить ? Только по тому, что в процедуре изменяется EAX? А если типа возврата функции - Variant. Там будут уже другие нюансы.
Последний раз редактировалось Хакер 28.07.2007 (Сб) 21:24, всего редактировалось 3 раз(а).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Watts[]n!
Постоялец
Постоялец
 
Сообщения: 573
Зарегистрирован: 11.02.2007 (Вс) 0:19

Сообщение Watts[]n! » 28.07.2007 (Сб) 14:27

Вот за это я и люблю Visual Basic :)

Пользовался как-то раз подобной программой, увидел ассемблерный код и испугался :)

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 28.07.2007 (Сб) 20:37

GSerg

Ясно... Просто меня немножко ввело в заблуждение вот это:

http://bbs.vbstreets.ru/viewtopic.php?t=32098

Хакер писал(а):Моя мания декомпилировать всё подряд не даёт мне покоя :)

Формы нехорошо называются...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.07.2007 (Сб) 20:39

Crio
Я там ни слова об исходном коде не сказал.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 28.07.2007 (Сб) 21:18

Хакер
Ну да. Я же написал, я ошибся...

Так значит всё, исходный код никак не восстановить?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.07.2007 (Сб) 21:20

исходный - никак.

Но т.к. у автора компиляция была произведена в P-Code, можно всё-таки что-то будет выцепить.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

программист
Новичок
Новичок
Аватара пользователя
 
Сообщения: 42
Зарегистрирован: 19.07.2007 (Чт) 20:27
Откуда: Донецк

Сообщение программист » 29.07.2007 (Вс) 3:43

Была у меня как-то раз демка проги Decompiller (или что-то в этом роде). Так вот в демке можно было посмотреть все формы, классы, модули и пр. видны и вдемке - НО в асме, а в полной версии (как пишут разработчики етой проги) можно посмотреть весь код на ВБ + создать проект компиляции.
Имя ничего не значит, НО ...
... я работаю над собой!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 29.07.2007 (Вс) 8:18

Разработчики пишут, что это можно сделать только для псевдокодных EXE-шников.

Там даже картинка есть:
http://www.vb-decompiler.org/image/intro_1.png

А ниже написано:

If a program was compiled into the native code, restoring the source code from machine instructions is not possible.


ADDED:
Там даже, оказывается, по-русски есть:
Если программа была откомпилирована в native code то о восстановлении исходника из машинных инструкций не может быть и речи.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

программист
Новичок
Новичок
Аватара пользователя
 
Сообщения: 42
Зарегистрирован: 19.07.2007 (Чт) 20:27
Откуда: Донецк

Сообщение программист » 30.07.2007 (Пн) 17:38

Имя ничего не значит, НО ...
... я работаю над собой!

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 30.07.2007 (Пн) 21:21

программист
Гады, потому что хотят заработать денег своим трудом?

программист
Новичок
Новичок
Аватара пользователя
 
Сообщения: 42
Зарегистрирован: 19.07.2007 (Чт) 20:27
Откуда: Донецк

Сообщение программист » 30.07.2007 (Пн) 22:05

Если программа была откомпилирована в native code то о восстановлении исходника из машинных инструкций не может быть и речи - вот поэтому гады.

А денег они просят за свой продукт впринцыпе -понт.
Имя ничего не значит, НО ...
... я работаю над собой!

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 30.07.2007 (Пн) 22:17

программист
Они восстанавливают из P-Code, что тоже нелегко. А инфа, полученная декомпиляцией из Native-Code тоже порой полезна, если знаешь асм, естественно.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.07.2007 (Пн) 22:25

Бесплатный дизассемблер (ntsd) встроен в Винду.
Зачем платить за ещё один?
Изображение

программист
Новичок
Новичок
Аватара пользователя
 
Сообщения: 42
Зарегистрирован: 19.07.2007 (Чт) 20:27
Откуда: Донецк

Сообщение программист » 31.07.2007 (Вт) 0:40

keks-n
асм учил (но тока под ДОС). И воспоминания об асме меня скажем так "малость" пугают. Хотя в универе шарил не слабо (на нужном там уровне).
Имя ничего не значит, НО ...
... я работаю над собой!


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList  
cron