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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2010, 17:22   #11
Kolik317
Пользователь
 
Регистрация: 14.08.2009
Сообщений: 64
По умолчанию

Так я же говорю, что в конечном экзешнике я метку удалю вручную, и буду пользоваться для расшифровки pointer'om, а метка мне нужна в начале только чтобы опередилить этот pointer, что шифровать от сих до сих. Ток сейчас у меня чего-то и с метками не выходит, или я где-то что-то с pointer'ами недогоняю.
Еще проблема я не знаю, как определить адреса шифрования от куда до куда, без меток. Можно по процедурам до и после, но в статье из первого поста написано что оно не работает.

В общем я сейчас пробовал с метками, и ничего не вышло. Шифровал пока что как в той статье тупо через xor $25

Код:
procedure StartPointProc;
begin
 asm
  DB 000h, 034h, 0F4h, 02Ah, 000h, 03Dh, 0FFh, 0CAh
 end;
  exit;
 StartPointProc;
 EndPointProc;

end;

procedure ProtectedProc;
begin
 ShowMessage('Trial period has expired');
end;

procedure EndPointProc;
begin
 asm
  DB 001h, 035h, 0F5h, 02Bh, 001h, 03Eh, 000h, 0CBh
 end;
  exit;
 StartPointProc;
 EndPointProc;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 ptrAddr: Pointer; {Адрес процедуры CheckTrial}
 dwOldProtect: DWORD;
begin
 ptrAddr := pointer(451216);
 VirtualProtect(pointer(451216), 4096, PAGE_READWRITE, @dwOldProtect);
 while ptrAddr <> pointer(451307) do
 begin
  Byte(ptrAddr^) := Byte(ptrAddr^) xor $25;
  inc(Integer(ptrAddr));
 end;
protectedproc();
 exit;
 StartPointProc;
 EndPointProc;
end;
А вот шифрованный HEX, прикреплен)

Кстати я не понял, как сделать PE??)) В 16тиричном коде нету P . Сори за нубасерство))

В ошибке говорит Access violation 0046ef25. Write of adress 006e290(=451216, начало шифрованного кода).
Изображения
Тип файла: jpg Шифр.JPG (24.0 Кб, 21 просмотров)

Последний раз редактировалось Kolik317; 31.08.2010 в 17:48.
Kolik317 вне форума Ответить с цитированием
Старый 01.09.2010, 09:24   #12
Kolik317
Пользователь
 
Регистрация: 14.08.2009
Сообщений: 64
По умолчанию

ДАДАДАДА я это сделал хоть как-то, вчера перед сном осенило что я настолько чайник, что сразу не допер, что в памяти адреса другие будут, щас сделал с динамическим поиском метки, всё работает. Только наверно что-то лишнее дешифрую, когда второй раз жму на кнопку Enternal Exception выдает.

Думаю, что если делать без меток, и в Поинтеры процедуры расшифровки писать что-то типа Pointer(Integer(@self) + Х), предварительно Х посчитав через хекс редактор и калькулятор)
Kolik317 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упрощение кода программы Alex TGM Общие вопросы C/C++ 7 30.06.2010 22:40
Разъяснение кода программы ) Expelio Помощь студентам 2 25.03.2010 00:00
Автоматизация программы без кода Luciolucas Помощь студентам 1 14.10.2009 01:49
Анализ кода программы virput1 Софт 8 04.08.2009 14:53
Оптимизация кода программы insi Фриланс 2 17.05.2008 18:30