| Сейчас на форуме: tyns777 (+5 невидимых) | 
| eXeL@B —› Программирование —› cws | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 13 апреля 2010 15:11 · Поправил: Clerk  · Личное сообщение · #1 Здрасте. Откатывал лодер, мб кому интересно. Используем семпл из пакета Хатчессона лежащий в \MASM32\EXAMPLE8\MOB\CWS o Так как должна применяться релокация, а нормально к экзешникам она не применяется, то компилим с опцией /DLL. o Нотификация длл выполняется при захваченной кс LdrploaderLock. Всякое обращение к загрузчику из другого потока при захваченной этой кс приведёт к деадлоку. Поэтому не используем InitRoutine(), соответствеено компилим с опцией /NOENTRY. o Теперь нужен стартуп рантайм, вынесем его в экспорт с именем "Run", прежде поменяв в сурце имя "start" на "Run" и указав опцию линкеру /EXPORT:Run. После этого компилим и получаем cws.dll размером 0x19C00. Теперь жмём это посредством NTLZ(RtlCompressBuffer()) и получаем дамп размером 0x604F. Теперь шифруем, допустим простейшая битовая инверсия. Образ готов. Пишем небольшой стаб для загрузки, который расшифровывает образ, распаковывает, подгружает средствами тестируемого лодера и вызывает экспорт Run(): Code: 
 Помним что приложение использует GetModuleHandle(NULL), а в этом случае возвращается база экзешника, определённая в PEB[+8]. Фиксим это загрузкой туда нашей базы. Конпилим и получае экзешник размером 0x7200. Запускаем и видим битмапу с регионом наложенным на окно: ![]() Аттачимся ольгой. Сразу ругается про отсутствие модуля на диске. Хек  
![]()  | 
| 
 | 
Создано: 13 апреля 2010 15:23  · Личное сообщение · #2 Ещё можно пофиксить адрес базы перед Startup в LDR, что-то вроде: Code: 
 ----- Shalom ebanats! ![]()  | 
| 
 | 
Создано: 13 апреля 2010 15:37  · Личное сообщение · #3  | 
| 
 | 
Создано: 13 апреля 2010 18:51  · Личное сообщение · #4  | 
| 
 | 
Создано: 13 апреля 2010 19:22 · Поправил: Clerk  · Личное сообщение · #5  | 
| 
 | 
Создано: 13 апреля 2010 19:23 · Поправил: Clerk  · Личное сообщение · #6  | 
| 
 | 
Создано: 14 апреля 2010 12:12  · Личное сообщение · #7 Clerk пишет: Так как лодер грузит длл секундочку, не надо передёргивать ты сказал: "должна применяться релокация, а нормально к экзешникам она не применяется" именно на это я и отвечал Clerk пишет: Собственно по теме чтонибудь есть ? я ответил, процитировав твою фразу в твоём же посте если ты считаешь, что фразы в твоём посте - не по теме, то претензии не ко мне или ты хотел сказать, что exe с реклоками грузить труднее, нежели dll? или ещё что-то? я не домысливаю за тебя, я процитировал конкретную фразу, не додумывая и не выдумывая. в итоге, на мой вопрос по существу ты не ответил проехали. по поводу сборки сорса: либо ты забыл про Code: 
 либо у тебя расширенный ntdll.inc ----- EnJoy! ![]()  | 
| 
 | 
Создано: 14 апреля 2010 21:50  · Личное сообщение · #8  | 
| 
 | 
Создано: 14 апреля 2010 21:51  · Личное сообщение · #9  | 
| 
 | 
Создано: 17 апреля 2010 17:30 · Поправил: Clerk  · Личное сообщение · #10  | 
| eXeL@B —› Программирование —› cws | 







 Для печати