Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/26: Рейтинг темы: голосов - 26, средняя оценка - 4.88
174 / 160 / 71
Регистрация: 22.02.2013
Сообщений: 1,769
Записей в блоге: 2

дизассемблирование

23.12.2013, 23:27. Показов 5083. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как защититить программу от дизассемблирования?
есть какие нибуть методы, алгоритмы
можно ссылки
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.12.2013, 23:27
Ответы с готовыми решениями:

Дизассемблирование
Ребята, может кто владеет ассемблером, помогите дизассемблировать exe-файл. если это вообще возможно) есть exe файл ; исходники не...

Дизассемблирование exe файла
Всем привет, сегодня незаметно стянул исполняемый файл программы-тестера, ну и разумеется, надеюсь, что не зря. Хотел набить руку дома, а...

Дизассемблирование
Итак, сразу перейду к сути. Суть: информация по дизассемблированию в источниках слишком неполная и неточная. Её хватает максимум чтобы...

25
Пишу на Delphi...иногда
 Аватар для cotseec
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
23.12.2013, 23:48
от дизасемблирования как такового не спастись, но попытаться затруднить разбор программы можно, например с помощью полиморфного кода, обфускации пакеров, протекторов (пример)
1
174 / 160 / 71
Регистрация: 22.02.2013
Сообщений: 1,769
Записей в блоге: 2
24.12.2013, 14:22  [ТС]
как я понял полиморфизм в делфи - без асма не представляет право на существование?

Добавлено через 12 часов 12 минут
есть у кого нибуть пример по данной теме? нужно именно в самом коде не использую сторонних программ

Добавлено через 1 час 59 минут
выручайте курсач горит
0
fatal error
 Аватар для U_Dimas
137 / 129 / 29
Регистрация: 10.04.2012
Сообщений: 357
24.12.2013, 14:41
Конкретно, что интересует защита от дизасемблера или от отладчика ? Если от отладчика для начала покурите api IsDebuggerPresent.
0
174 / 160 / 71
Регистрация: 22.02.2013
Сообщений: 1,769
Записей в блоге: 2
24.12.2013, 15:00  [ТС]
вот тема
Задача студента – изучить метод и реализовать его в программном виде. Отчет по семестровому заданию должен включать в себя описание исследованного метода (область применения, возможные алгоритмы реализации, достоинства и недостатки), а также текст программы, реализующей данный метод. Язык программирования – любой.
Исследование методов защиты программ от дизассемблирования.

и как что делать я не понимаю

Добавлено через 26 секунд
ткните носом на пример на делфи
0
fatal error
 Аватар для U_Dimas
137 / 129 / 29
Регистрация: 10.04.2012
Сообщений: 357
24.12.2013, 15:29
Вот пример шифрования текста в delphi:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//Xor
function xXor(Buffer :String; Key :Integer) :String;
var
  i,c,x  :Integer;
begin
  for i := 1 to Length(Buffer) do
  begin
    c := Integer(Buffer[i]);
    x := c xor Key;
    Result := Result + Char(x);
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 s:string;
begin
 s :=  'Íåçàðåãåñòðèðîâàííàÿ âåðñèÿ';
Edit1.text:=(xXor(s,1));
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
 s:string;
begin
 s :='Ìäæáñäâäðóñéñïãáììáþ!ãäñðéþ';
 Edit1.text:=(xXor(s,1));
 end;
напиши типа отсутствие строк о регистрации помещает злобствующему крекеру найти место с алгоритмом регистрации, из недостатков назови, то что можнго подглядеть в отладчике
1
174 / 160 / 71
Регистрация: 22.02.2013
Сообщений: 1,769
Записей в блоге: 2
24.12.2013, 16:04  [ТС]
извините сейчас узнал что нужно 2 способа..
какие есть еще способы?
0
fatal error
 Аватар для U_Dimas
137 / 129 / 29
Регистрация: 10.04.2012
Сообщений: 357
24.12.2013, 16:13
Ну поинтересуйтесь подойдет такое:

- при запуске проверять например crc файла и если он изменился (внесены изменения), то программа не запуститься.
- расчет серийного номера посредством md5
- с помощью вышеуказанной фунции isdebuggerPresent определять запуск под отладчиком.

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

Вот еще чтиво по теме, может найдете что-то интересное - http://rouse.drkb.ru/winapi.php
1
174 / 160 / 71
Регистрация: 22.02.2013
Сообщений: 1,769
Записей в блоге: 2
24.12.2013, 16:17  [ТС]
Цитата Сообщение от U_Dimas Посмотреть сообщение
расчет серийного номера посредством md5
винчестера?
0
fatal error
 Аватар для U_Dimas
137 / 129 / 29
Регистрация: 10.04.2012
Сообщений: 357
24.12.2013, 16:23
NotBeginner, нет вот почитать про md5 - http://ru.wikipedia.org/wiki/MD5
ЗЫ если надо могу скинуть пример расчета серийного номера винчестера
1
174 / 160 / 71
Регистрация: 22.02.2013
Сообщений: 1,769
Записей в блоге: 2
24.12.2013, 16:35  [ТС]
вот сделал с использованием isdebuggerPresent
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  // проверяет находится ли приложение под отлажчиком
function DebuggerPresent : boolean;
type
  TDebugProc = function : boolean;
    stdcall;
var
  Kernel32: HMODULE;
  DebugProc: TDebugProc;
begin { DebuggerPresent }
  Result := False;
  Kernel32 := GetModuleHandle('kernel32');
  if Kernel32<>0 then
  begin
    @DebugProc := GetProcAddress(Kernel32, 'IsDebuggerPresent');
    if Assigned(DebugProc) then
      Result := DebugProc
  end; { Kernel32<>0 }
end; { DebuggerPresent }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  if DebuggerPresent then Application.Terminate;
end;
как я понял md5 используется для хранения паролей - как нибуть можно для моего случая прикрутить?
0
fatal error
 Аватар для U_Dimas
137 / 129 / 29
Регистрация: 10.04.2012
Сообщений: 357
24.12.2013, 16:45
Ну смысл md5 в том что на руках у злоумышленника только хеш. Подобрать ключ можно перебором или искать коллизии. А если прога стоит 10$ путний крекер за нее не возьмется, а начинающий обламается.
Но использование md5, как и любой алгоритм надо с умом, ибо можно просто заменить хеш на свой и программа зарегистрируется, но это не считается тру-взломом. Высший пилотаж получить ключедел без изменений программы.
0
174 / 160 / 71
Регистрация: 22.02.2013
Сообщений: 1,769
Записей в блоге: 2
24.12.2013, 16:47  [ТС]
U_Dimas, то есть вводим ключ -берем от него хеш и есть такой хеш есть то ключик валидный?
0
fatal error
 Аватар для U_Dimas
137 / 129 / 29
Регистрация: 10.04.2012
Сообщений: 357
24.12.2013, 16:50
NotBeginner, да хеш храним в программе, при вводе ключа получаем md5 от введеного, сравниваем и делаем выводы.
0
174 / 160 / 71
Регистрация: 22.02.2013
Сообщений: 1,769
Записей в блоге: 2
24.12.2013, 17:02  [ТС]
а хранить его в каком виде?

добавил поиск отладчика
Добавлено через 3 минуты
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Поиск отладчика
//Как и любая программа, отладчик имеет свой процесс, а значит может быть обнаружен через список процессов
procedure FindDebugProcess;
var
 Snap: dword;
 Process: TPROCESSENTRY32;
 name : string;
begin
  Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  if snap<>INVALID_HANDLE_VALUE then
    begin
    Process.dwSize:=SizeOf(TPROCESSENTRY32);
    repeat
          // OLLYDBG.EXE - это название софта для дебага
          // перечисляем все известные программы
          // что зашишить нас от них
          name := Process.szExeFile;
          if lstrcmp(PChar(name),'OLLYDBG.EXE')=0 then
              begin
              MessageBox(0,'OllyDBG work!','DebuggerChecker',0);
              halt;
              end;
    until not Process32Next(Snap, Process);
    end;
  MessageBox(0,'OllyDBG not work!','DebuggerChecker',0);
end.
на 23 строке
Types of actual and formal var parameters must be identical
0
fatal error
 Аватар для U_Dimas
137 / 129 / 29
Регистрация: 10.04.2012
Сообщений: 357
24.12.2013, 17:10
Не знаю, у меня компилится - Tlhelp32 добавлен в uses ?
0
174 / 160 / 71
Регистрация: 22.02.2013
Сообщений: 1,769
Записей в блоге: 2
24.12.2013, 17:22  [ТС]
а все заработало..
а можешь кинуть md5 как ты делал??
0
fatal error
 Аватар для U_Dimas
137 / 129 / 29
Регистрация: 10.04.2012
Сообщений: 357
24.12.2013, 17:26
Если особо не горит могу только завтра, сейчас исходников под рукой нет, но можно в инете поискать
1
174 / 160 / 71
Регистрация: 22.02.2013
Сообщений: 1,769
Записей в блоге: 2
24.12.2013, 17:27  [ТС]
а сам хеш с которым сравнивать можно и в инете сгенерить? или тоже в программе лучше
0
fatal error
 Аватар для U_Dimas
137 / 129 / 29
Регистрация: 10.04.2012
Сообщений: 357
24.12.2013, 17:31
Да в нете полно онлайн сервисов, можно для общего развития найти программу PasswordsPro.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.12.2013, 17:31
Помогаю со студенческими работами здесь

Дизассемблирование
Здравствуйте! Подскажите пожалуйста, как дизассемблировать exe-файл? Цель-желательно получить исходник на языке ассемблера в текстовом...

Дизассемблирование.
Помогите пожалуйста дизассемблировать данную часть Pascal программы. l:=0; g:=n; while g&gt;0 do begin l:=l+1; s:=g...

Дизассемблирование
Допустим, я запустил ILDasm.exe. Открыл нужный мне PE-файл. Как теперь мне изменить некоторые числовые значения в коде программы (ну и...

Дизассемблирование
Имеется железо, типа АСУ. Оно собирает некую статистику и записывает её на подобие флешки. Считанный с этой &quot;флешки&quot; файл имеет...

Дизассемблирование
Всем привет. Di Haltу спасибо за PinBoard. Вопрос: как в авр студии дизассемблировать хекс? Помню что как то делал, а щас память напрочь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru