Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расшифровка кода методом not, Расшифровка кода методом not 
:(
    Опции темы
ShadowDancer
Дата 3.7.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 15.6.2006

Репутация: нет
Всего: нет



С помощью Delphi шифрую в exe-шнике код, вот такой процедурой
Код

procedure crypt(var b: byte);
begin
 b := not b;
end;

Потом в конец зашифрованого кода нужно дописать дешифровщик, по идее, он должен выглядить вот так (код писал не я):
Код

mov  ecx, 0xddccbbaa; помещаем в ecx длинну зашифрованного кода
call 0          ; вызываем следующую команду
pop  eax        ; помещаем в eax адрес текущей команды
push 0xddccbbaa ; помещаем в стек старую точку входа
sub  eax,14     ; вычисляем адрес конца шифротекста
not  byte ptr [eax]; "шифруем"
dec  eax        ; переходим к предыдущему байту
loop $-3        ; в начало цикла
ret             ; переходим в старый Entry Point

При компиляции в FASM ругается на
 
Код

not  byte ptr [eax]; "шифруем"

что в этом коде нужно исправить ? и ещё было бы интересно увидить решение этой "задачи" методом XOR. Спасибо.
PM MAIL   Вверх
W4FhLF
Дата 3.7.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 1
Всего: 121



Код

mov  ecx, 0DDCCBBAAh ; помещаем в ecx длинну зашифрованного кода
call 0          ; вызываем следующую команду
pop  eax        ; помещаем в eax адрес текущей команды
push dword 0DDCCBBAAh ; помещаем в стек старую точку входа
sub  eax,14     ; вычисляем адрес конца шифротекста
not  byte [eax]; "шифруем"
dec  eax        ; переходим к предыдущему байту
loop $-3        ; в начало цикла
ret             ; переходим в старый Entry Point     


Только ессно 0DDCCBBAAh надо заменить на валидные данные в обоих случаях.


Цитата(ShadowDancer @  3.7.2008,  15:54 Найти цитируемый пост)
 и ещё было бы интересно увидить решение этой "задачи" методом XOR.


Вместо 

Код

not  byte [eax]; "шифруем"


пишешь:

Код

xor byte [eax],XXh


где XX - константа от 0 до FFh


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
ShadowDancer
Дата 3.7.2008, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 15.6.2006

Репутация: нет
Всего: нет



Спасибо что направил на путь истинный =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.