Как криптануть экзешник самому

Статус
В этой теме нельзя размещать новые ответы.

tfc75

Новичок
Сообщения
276
Лайки
1
Баллы
0
EXE PACKING – The Hard Way

Упаковка екзешников вручную - важная процедура, которая может быть выполнена вполне элементарно..
Существует много причин для шифрования файлов, например защита программ от изменений, взлома и т.д. Некоторые хеккеры используют это для криптования вириев и троев, для внедрения вредоносного кода в готовые .exe, короче максимально завуалировать свои вредоносные программы, скрипты, коды.

Еще одно достоинство ручного шифрования-это обход антивирусников или вовсе превращение вредоносного кода в код подписанный, заверенный антивирусом.

Для начала, точка входа (.text, .date, .rsrc) требует шифрования.
Но если местоположение сигнатуры вируса известно, требуется зашифровать только вредоносную секцию кода программы, определенные байты.
Небольшую XOR функцию необходимо закодировать( перенести в код заражаемой программы ), для того чтобы ее можно было шифровать и сохранить в файл.


После того, как файл был зашифрован, его требуется запустить, и XOR-функция запустится вместе с файлом. Во время запуска программы, шифрованный вредоносный код дешифруется изапускается внутри памяти зараженной программы. Следовательно, Для антивируса запускается не два файла(неопасный экзешник и вредоносный код), а один, безопасный файлик, никак не определяемый антивирусом.
Что такое XOR функция?
XOR, так же известное как Exclusive OR, это побитовый оператор двооичной математики. Оператор XOR возвращает 1 когда значение первого или второго битов равно 1. Так же, оператор XOR возврощает 0, когда ниодного или оба одновременно значения 1-го и 2-го битов равны 1.
Разъяснить можно этой диаграммой:

1.bit 2.bit Result
F F F
F T T
T F T
T T F
Оператор XOR используется для сдвига, замены (нулей и единиц) в куске незашифрованного кода для создание шифрованного текста.
Другими словами, если кусок кода прогнать через XOR дважды, то изменений от исходника не будет, т.е. после шифрования XOR'ом уже зашифрованного XOR'ом кода - код дешифруется до первоначального состояния.


Entry Point <---
jump to encrypt/cave code

Code Cave <---
XOR function encrypt/decrypt

End Cave <---
Заменяем точку входа процессом шифрования, внедряем процесс шифрования в стек, затем возвращаем замещенный кусок исходной программы(точку входа в частности), возвращаем изначальный код заражаемой программы, после исполнения вредоносного кода.

Шифрующий код должен запуститься одновременно с чистым кодом заражаемой проги, что бы в зашифрованном виде сохраниться в файл (дроп).
Следующий раз зараженная прога при запуске расшифрует этот код.

Что потребуется:

зараженный exe (Трой, вирь...)
Ollydbg
LordPE

ш так приступим.
Откройте зараженный файл Ollydbg и скопируйте первые несколько комманд ( на все изменения делать бэкапы в блокнотике) Вставте эти строчки в текстовый редактор.


-=:Entry Code:=-

00401219 >/$ 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
0040121F |. 55 PUSH EBP
00401220 |. 89E5 MOV EBP,ESP
00401222 |. 6A FF PUSH -1
Теперь в конце файла ищите DB 00 в стеке. Если эта секция не защищена от записи, то все хорошо, не придется менять допуски к секции.


-=:Cave Code:=-

0040E4FD 0000 ADD BYTE PTR DS:[EAX],AL
0040E4FF 0000 ADD BYTE PTR DS:[EAX],AL
0040E501 0000 ADD BYTE PTR DS:[EAX],AL
0040E503 0000 ADD BYTE PTR DS:[EAX],AL
Если появилась ошибка-значит эта секция защищена и придется модифицировать PE секцию, чтобы получить доступ к редакттированию.

Это можно легко сделать с помощью LordPE (меняет свойства секций)

Открываем LordPE, загружаем наш файл, тыкаем кнопку Section. После этого правой кнопкой data section, выбераем свойства. Убираем\ставим голочки-в общем делаем файл доступным к изменению и запуску (writeable and executable). Этот файл готов.

Следущий алгоритм используется для XOR-шифрования секции. Фактически это банальное шифрование каждого байта из data section (@0040129c) с нашим ключем (0f). Цикл остановится в конце data section (@0040E46C)


Encryption Routine
mov eax,0040129c
xor byte [eax],0f
inc eax
cmp eax,0040E46C
jle [xor address]

Deleted Call
00401219 >/$ 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
0040121F |. 55 PUSH EBP

Jump back to application flow
00401219 > E9 E2D20000 JMP finish1t.0040E500
0040121E 90 NOP
Финальный код должен выглядеть примерно так:


XOR Loop + Deleted Call + Jump back to application flow.

Code Cave:
0040E500 B8 9C124000 MOV EAX,finish1t.0040129C ; Entry address
0040E505 8030 0F XOR BYTE PTR DS:[EAX],0F
0040E508 0 INC EAX
0040E509 3D 6CE44000 CMP EAX,<JMP.&CRTDLL.wctomb>; Entry address
0040E50E 7E F5 JLE SHORT finish1t.0040E505
0040E510 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
0040E516 E9 042DFFFF JMP finish1t.0040121F
Теперь делаем break point в конце цикла, строчка 0040e510, и выполняем код. Как только выполнение остановилось, сохраняем файл и выходим из OllyDbg

00401219 >/$ 64:A1 00000000 JMP finish1t. 0040E500
 

dron

Новичок
Сообщения
110
Лайки
0
Баллы
0
АААААА МОЙ МОЗГГГГ!!!! Я ВАЩЕ ниЕче НЕ ПОНЯЛ !!!

не один ты не чего не понял.
65663a7c87c3c2a11a5d1f76194dd695.gif
[/URL][/IMG]
 

airmen

Новичок
Сообщения
335
Лайки
4
Баллы
0
Это чтобы стилер обходил антивирус.

вы неправы!необязательно стиллер,можно просто качать проверенные читы(по коментам,спасибкам...) а автор молодец,это поможет тем кто антивирус не отключает^^
 

sankis2010

Новичок
Сообщения
166
Лайки
2
Баллы
0
А вы пробовали в папке Crossfire, BugTrap.dll переименовать на BugTrap.exe, очевидно что он задумувался админами как ексешник, интересно если его криптпровать как ексе и опять в длл-ку переименовать толк будет? просто когда мы заходим на сервер он внедряется в процес кф.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху