информационная безопасность
без паники и всерьез
 подробно о проекте
Spanning Tree Protocol: недокументированное применениеГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Хакеры опять разморозили холодильники... 
 C3RB3R шифрует NAS Synology через... 
 Chainalysis раскрыла взлом собственных... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
А где взять подробности 23.08.01 04:12  Число просмотров: 901
Автор: Улыбка Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Это очень интересно
А где взять подробности, ПРИМЕРЫ и т.д.
<programming>
Шифрование кода в проге 22.08.01 17:33  
Автор: MadDevil Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Я имею желание собственно вставить сабж в прогу(имеется там критичееская к отладке ф-ция). Так вот я делаю так:компилю прогу, вырезаю hiew ф-цию в файл, затем шифрую его RASом и вставляю в ресурсы. Ну так вот ессно она не работает т.к. тама имеються вызовы ф-ций. Так вот как бы это дело обделать т.к. вставлять ф-цию в ресурсы после компиляции в лом ибо они имеют уж очень уродский формат. Кто может сказать что-нить по этому поводу????? Уж очень хоццца
Шифрование кода в проге 22.08.01 22:05  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
#pagma code_seg
помещаешь функцию в отдельную секцию

после компиляции шифруешь секцию

при старте программы расшифровываешь её

p.s.
программа должна загружаться по своему дефолтному base address, иначе зашифрованная секция при загрузке будет изменена и расшифруется не так как нужно :)
А где взять подробности 23.08.01 04:12  
Автор: Улыбка Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Это очень интересно
А где взять подробности, ПРИМЕРЫ и т.д.
А где взять подробности 23.08.01 05:29  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
> Это очень интересно
> А где взять подробности, ПРИМЕРЫ и т.д.

коротко объяснить нельзя
всё-равно могут возникнуть глюки и прийдётся разбираться самому во всём
советую прочитать описание формата PE-файлов в MSDN - там всё понятно

а если коротко :

1) pragma описана в MSDN :)

<<<<<<<<<<<<
// sample.cpp

#pragma code_seg("crypt")

void f(void)
{
// ...
}
<<<<<<<<<<<<

2) положение секции в файле можно узнать с помощью dumpbin /headers yourfile.exe
dumpbin входит в состав MSVC
в том что выведет dumpbin находишь SECTION HEADER #... у которого поле name = crypt
здесь нужны два значения: virtual size; file pointer to raw data
вот этот кусок файла и нужно зашифровать

правда я не монимаю зачем использовать шифрование, всё равно пароль для расшифровки будет прописан в самом файле;
а во время работы программы секция будет расшифрована - дебагеру ничто не помешает её трасировать;
а для того чтобы помешать дизассемблировать функцию прямо в файле достаточно её просто закодировать простым алгоритмом

3) чтобы узнать положение секции в загруженном модуле наверно прийдётся всё-таки разобраться с заголовком PE-файла;
правда можно вставить эту информацию как константы, узнав их из dumpbin, но это криво по-моему (нужно дважду компилить прогу);
вобщем там нужны будут значения: a) virtual size, b) virtual address.
a - размер полезной информации
b - смещение относительно image base address (обычно 0x400000 - можно узнать через ::GetModuleHandle(NULL))
после того как секция расшифрована (a) байт её нужно поместить в память по соответствующему адресу;
естественно всё это надо делать до первого вызова функции :)
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach