Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.05.2011, 11:29   #1
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
По умолчанию Востановление программы

Доброго времени суток! Вот хотел у вас узнать, реально ли увидеть код программы, без исходников? то есть я вот создам программу (даже просто кинуть на форму кнопку и прописать в ней close и откомпилировать) а после этого увидеть хоть часть кода программы?

Видел я разные xde утилиты которые якобы позволяют видеть программный код, но это всё не то... какие есть предложения?
saylar_06 вне форума
Старый 28.05.2011, 11:44   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

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

Увидеть можно только максимум дизассемблеризированный код - исходник программы на ассемблере (ассемблер - это мнемоника для машинного кода). Т.е. это даже не восстановление исходного кода. Это просто машинный код, записанный текстом.

Плюс, некоторые дизассемблеры могут его причесать: "свернуть" типовые конструкции, извлечь некоторые имена (RTTI) и т.п., но это мелочёвка, наведение глянца.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума
Старый 28.05.2011, 14:00   #3
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
Лампочка

ясно, спасибо!

А вот тогда зачем нужны программы для защиты программ, я чаще и чаще начал встречать такие мол защити свой программный код, это тогда защита от крекеров?
Ах да, а как тогда крекеры взламывают программы, они не видя кода кто то делают? или же они по идее манипулируют переменными в программе?
saylar_06 вне форума
Старый 28.05.2011, 14:06   #4
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
Сообщение от saylar_06 Посмотреть сообщение
ясно, спасибо!

А вот тогда зачем нужны программы для защиты программ, я чаще и чаще начал встречать такие мол защити свой программный код, это тогда защита от крекеров?
Ах да, а как тогда крекеры взламывают программы, они не видя кода кто то делают? или же они по идее манипулируют переменными в программе?
Если есть отменные знания ассемблера, то изменить в программе любую константу/переменую/убрать счётчик/убрать сверку пароля и пр раз плюнуть.

Обычно программы для защиты от таких дел это упаковщики и "антиотладка". Но как показывает практика на этом падает только школота.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума
Старый 28.05.2011, 14:17   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Программы нужны чтобы защищать свой продукт от влома. Но против лома нет приема. Особенно если лом это IDA Pro и человек с опытом.

Цитата:
Доброго времени суток! Вот хотел у вас узнать, реально ли увидеть код программы, без исходников? то есть я вот создам программу (даже просто кинуть на форму кнопку и прописать в ней close и откомпилировать) а после этого увидеть хоть часть кода программы?
Почему же? Смотря чем смотреть.

Код:
unit Unit1;

interface

uses
  Classes, Controls, Forms,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;

end.
я вижу в таком виде:
Код:
 Unit1::TForm1.Button1Click
 0044E1CC    call       TCustomForm.Close
 0044E1D1    ret
а вот операции с переменными уже сложнее.

Но в общем не суть дела. Нельзя на данном форуме взлом обсуждать.


Цитата:
Ах да, а как тогда крекеры взламывают программы, они не видя кода кто то делают?
находят самое слабое место в защите и бьют по нему молотком.

например, проверка на валидность key ключа для разблок. программы. Самое уязвимое место это сравнение настроящего ключа с ключем который ввел юзер.

вообще тема интересная но тут запрещена=)
Человек_Борща вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Востановление данных!!! PARtiZAN1988 Софт 5 21.05.2012 13:52
Востановление данных Хом Операционные системы общие вопросы 1 04.10.2010 14:30
Востановление HDD VistaSV30 Софт 2 11.09.2010 18:57
Востановление системы! stenl1 Операционные системы общие вопросы 3 23.10.2009 00:25
Востановление *.exe Veiron Свободное общение 2 29.02.2008 22:34