eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 октября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: vitokop, Adler, SaLvaTruCha (+5 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› mPack - mario PACKer
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 25 июня 2006 18:26 New!
Цитата · Личное сообщение · #1

mPack - mario PACKer
simple Win32 PE Executable compressor
Coded in Delphi 5!
Proof of Concept that a Packer can be done in Delphi!
mPack version 0.0.2
© DeltaAziz
Забавная штука если это пакер то он ни хрена жмет если протектор то отстойный


{ Атач доступен только для участников форума } - mpack0.0.2.rar

Ранг: 48.8 (посетитель)
Статус: Участник

Создано: 25 июня 2006 22:05 New!
Цитата · Личное сообщение · #2

хмм, попробовал сжать notepad.exe.

первоначальный размер notepad.exe - 67 кб.
после сжатия - 76 кб.

во какие появились пакеры. а на счет протектора, то действительно хреновый


Ранг: 157.2 (ветеран)
Статус: Участник

Создано: 26 июня 2006 09:14 New!
Цитата · Личное сообщение · #3

Зря вы его так..... Человек какой то старался, вкладывал душу..... Ведь ASProtect тоже когда то так же начинал.... А потом вон в какой монстр вырос.... Все решит время +))


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 26 июня 2006 09:30 New!
Цитата · Личное сообщение · #4

А у меня вопрос - вроде же винды собирались запретить выполнение кода в стеке

Ранг: 9.4 (гость)
Статус: Участник

Создано: 26 июня 2006 11:54 New!
Цитата · Личное сообщение · #5

ZaZa пишет:
Человек какой то старался

Марио? какой-то?


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 26 июня 2006 12:00 New!
Цитата · Личное сообщение · #6

Rascal а они и запретили, только это должен каждый сам включать. Погугли по слову Dep.


Ранг: 353.0 (мудрец)
Статус: Участник
resreveR

Создано: 26 июня 2006 12:13 New!
Цитата · Личное сообщение · #7

PE_Kill пишет:
а они и запретили, только это должен каждый сам включать. Погугли по слову Dep.

но все равно можно обойти %)


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 26 июня 2006 12:38 New!
Цитата · Личное сообщение · #8

lord_Phoenix пишет:
но все равно можно обойти %)

Были слухи, что эта возможность будет оставлена лдя фаерволов и антивирей, у них будут ропознавательные знаки и им путь будет открыт, больше вроде никак, если по закону
cleric пишет:
Марио? какой-то?

Ну 555 не написано, так что мжно только теоретизировать

PE_Kill пишет:
Погугли по слову Dep.

57 600 000 ) Ясно, что мс это только от переполнения буфера юзает, но чтобы каждый сам включал... оригинально, но раз можно включать то соотвтественно можно и обратное. Если прот юзает стек, он отрубает DEP, и все эксплоиы снова на коне. Не, не нравится мне это!!!


Ранг: 353.0 (мудрец)
Статус: Участник
resreveR

Создано: 26 июня 2006 12:46 New!
Цитата · Личное сообщение · #9

Rascal пишет:
Были слухи, что эта возможность будет оставлена лдя фаерволов и антивирей, у них будут ропознавательные знаки и им путь будет открыт, больше вроде никак, если по закону

а еще для некоторых протов/пакеров..и для тех кто знает как это открыто для протов/пакеров ;)


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 26 июня 2006 13:16 · Поправил: Rascal New!
Цитата · Личное сообщение · #10

lord_Phoenix пишет:
а еще для некоторых протов/пакеров..и для тех кто знает как это открыто для протов/пакеров ;)

А также фаерволов и антивирей ;)


Ранг: 207.4 (наставник)
Статус: Участник
Jeefo Recovery

Создано: 26 июня 2006 14:48 New!
Цитата · Личное сообщение · #11

Хе, прикольный пакер, добавил себе в коллекцию
Результаты: WinRAR.exe

Orig. Size - 895
Upack - 371
Mario - 549
И еще одним - 367
Так эта зараза к упакованному файлу еще и свою иконку приклеивает
Плюс, упакованный какую-то рамку новую приобретает.....


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 26 июня 2006 14:58 New!
Цитата · Личное сообщение · #12

Забавно, у меня при открытом shadow окно программы подозритьельно маленькое ) И импорт гадит изрядно, напоминает SecuROM 4, из call [ShowWindow] -> nop call 3618AB )

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 26 июня 2006 15:10 New!
Цитата · Личное сообщение · #13

Rascal
Хм импорт ? Ты о чем где какой импорт? Ну коверкает заголовок ,ресурсы и все!


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 26 июня 2006 15:23 · Поправил: Rascal New!
Цитата · Личное сообщение · #14

pavka
Да ну, там ещё такая фигня, которую как раз уже дофиксиваю:

004010AC NOP
004010AD CALL 003218AB
004010B2 MOV EAX,EAX
004010B4 NOP
004010B5 CALL 003218AB
004010BA MOV EAX,EAX
004010BC NOP
004010BD CALL 003218AB
004010C2 MOV EAX,EAX
004010C4 NOP
004010C5 CALL 003218AB
004010CA MOV EAX,EAX
004010CC NOP
004010CD CALL 003218AB
004010D2 MOV EAX,EAX
004010D4 NOP
004010D5 CALL 003218AB
004010DA MOV EAX,EAX
004010DC NOP
004010DD CALL 003218AB
004010E2 MOV EAX,EAX
004010E4 NOP
004010E5 CALL 003218AB
004010EA MOV EAX,EAX
004010EC NOP
004010ED CALL 003218AB
004010F2 MOV EAX,EAX
004010F4 NOP

...
003218AB PUSH EAX
003218AC MOV EAX,ESP
003218AE PUSHAD
003218AF MOV EBX,EAX
003218B1 CALL 003218BA
003218B6 ADD BYTE PTR DS:[EAX],AL
003218B8 XOR AL,BYTE PTR DS:[EAX]
003218BA POP EBP
003218BB MOV EBP,DWORD PTR SS:[EBP]
003218BE MOV EDI,DWORD PTR DS:[EBX+4] ; адрес возврата в программу
003218C1 MOV ESI,DWORD PTR SS:[EBP+1922]
003218C7 ADD ESI,EBP
003218C9 MOV EAX,DWORD PTR DS:[ESI] ; Адрес таблицы хэш адресов возврата из вызовов апи
003218CB XOR EDX,EDX ; Расшифровка
003218CD MOV ECX,2 ; .
003218D2 MUL ECX ; .
003218D4 SHR EAX,1 ; .
003218D6 CMP EDI,EAX ; Адрес в таблице = адресу возврата
003218D8 JNZ SHORT 003218E4
003218DA OR DL,DL ; Да, солвпали
003218DC JNZ SHORT 003218E2
003218DE JMP SHORT 003218E9
003218E0 JMP SHORT 003218E4
003218E2 JMP SHORT 003218F4
003218E4 ADD ESI,8 ; чевидно структура, ибо проскакивает по 2 дворда
003218E7 ^JMP SHORT 003218C9
003218E9 MOV EAX,DWORD PTR DS:[ESI+4]
003218EC MOV DWORD PTR DS:[EBX],EAX
003218EE POPAD
003218EF POP EAX
003218F0 MOV EAX,DWORD PTR DS:[EAX]
003218F2 JMP NEAR EAX
003218F4 MOV EAX,DWORD PTR DS:[ESI+4] ; Берём второе значение (это есть адрес апи в иат)
003218F7 MOV DWORD PTR DS:[EBX],EAX ; mPack.005282D0


Тольо надоело падать с доступом по адресу 0x27, как-то палит ведь

Ранг: 253.9 (наставник)
Статус: Участник

Создано: 26 июня 2006 15:43 New!
Цитата · Личное сообщение · #15

Вау! У меня после упаковки калькулятор стал черно-белым! Рульный пакер, делает прогу стильной.

{ Атач доступен только для участников форума } - calc.png


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 26 июня 2006 15:47 · Поправил: Rascal New!
Цитата · Личное сообщение · #16

Чё-то он со стилями там кучевряжет, сволочь Понять бы антиотладку. OllyAdvanced стал ходить намного дальше, но всё равно сцуко падает с той же ошибкой

[EDITED]
Окно маленькое походу из-за мьюекса, ибо достаточно просто запустить второй вариант и опана, лезем в диспетчер задач вырубать


Ранг: 207.4 (наставник)
Статус: Участник
Jeefo Recovery

Создано: 26 июня 2006 16:11 New!
Цитата · Личное сообщение · #17

Хе, скрин с рамками, обращаем внимание на добавление тонких границ к краям проги....

{ Атач доступен только для участников форума } - SupEr_Mari0_Br0tH.jpg


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 26 июня 2006 17:22 · Поправил: Rascal New!
Цитата · Личное сообщение · #18

Итак, на ОЕП попал, тока прога не распаковалась полностью Во марио намутил
Переход на оеп:

00361897 MOV DWORD PTR SS:[EBP+18B6],EBP
0036189D MOV EAX,DWORD PTR SS:[EBP+1926]
003618A3 ADD EAX,DWORD PTR SS:[EBP+1916]
003618A9 JMP NEAR EAX


[ADDED]
Усё, мона писать скрипт. Пакер не выдержал ) Если бы не OllyAdvanced устал бы искать все проверки

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 26 июня 2006 19:07 New!
Цитата · Личное сообщение · #19

Rascal
Ты сам пакет анпачишь? Если сам пакер то ИАТ там не тронута только востановить переходники!
А если то что он пакует! Так там сдампить просто поправить заголовки и рессурсы!

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 26 июня 2006 19:18 New!
Цитата · Личное сообщение · #20

Это примерно то же самое что SkD Undetectabler 2.0
Так сказать вариации на тему

{ Атач доступен только для участников форума } - keygen.exe


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 26 июня 2006 21:12 New!
Цитата · Личное сообщение · #21

pavka пишет:
Если сам пакер то ИАТ там не тронута только востановить переходники!

Она в другом участке памяти. Ясно, что копируется из самого модуля, но чё-то не понятно, как перенаправить указатели в хидере. И я не присмотрелся, формат правильный. Перед именами функций 2 байта для union видел. А вообще мне интересно написать скрипт, там буду заменять относительные прыги на обычные импортные и писать туда из таблицы указатель на правильный апи адрес, потом импрек и фсё ок

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 26 июня 2006 21:16 New!
Цитата · Личное сообщение · #22

OEP: 0001058C IATRVA: 001280F0


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 26 июня 2006 22:12 New!
Цитата · Личное сообщение · #23

pavka
OEP - согласен
IAT - мы не сможем запустить прогу в другой системе. В памяти лежит именно IT, её бы прикрутить

PS: что интересно, автор предусмотрел опции пакера, ибо можно обойти редирект импорта, хотя хз, может это такое наказание за использование отладчика (00351711 CMP EAX,1)

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 27 июня 2006 06:40 New!
Цитата · Личное сообщение · #24

Rascal
00401154 - FF25 40815200 jmp dword ptr ds:[528140] ; kernel32.GetModuleFileNameA
0040115A |. 8BC0 mov eax,eax
0040115C - FF25 3C815200 jmp dword ptr ds:[52813C] ; kernel32.GetModuleHandleA
00401162 |. 8BC0 mov eax,eax
00401164 - FF25 38815200 jmp dword ptr ds:[528138] ; kernel32.GetProcAddress
и т.д

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 27 июня 2006 16:09 New!
Цитата · Личное сообщение · #25

Rascal
вот еще вариант ! Немного модифицируем процедуру и скопируем табличку в свободное место
примерно так..
005338AB $ 50 push eax
005338AC . 8BC4 mov eax,esp
005338AE . 60 pushad
005338AF . 8BD8 mov ebx,eax
005338B1 E8 04000000 call mPack_.005338BA
005338B6 0000 add byte ptr ds:[eax],al
005338B8 3900 cmp dword ptr ds:[eax],eax
005338BA $ 5D pop ebp
005338BB . 8B6D 00 mov ebp,dword ptr ss:[ebp]
005338BE . 8B7B 04 mov edi,dword ptr ds:[ebx+4]
005338C1 BE 60465300 mov esi,mPack_.00534660
005338C6 90 nop
005338C7 90 nop
005338C8 90 nop
005338C9 8B06 mov eax,dword ptr ds:[esi]
005338CB . 33D2 xor edx,edx
005338CD . B9 02000000 mov ecx,2
005338D2 . F7E1 mul ecx
005338D4 . D1E8 shr eax,1
005338D6 . 3BF8 cmp edi,eax
005338D8 . 75 0A jnz short mPack_.005338E4
005338DA . 0AD2 or dl,dl
005338DC . 75 04 jnz short mPack_.005338E2
005338DE . EB 09 jmp short mPack_.005338E9
005338E0 . EB 02 jmp short mPack_.005338E4
005338E2 > EB 10 jmp short mPack_.005338F4
005338E4 > 83C6 08 add esi,8
005338E7 .^ EB E0 jmp short mPack_.005338C9
005338E9 > 8B46 04 mov eax,dword ptr ds:[esi+4]
005338EC . 8903 mov dword ptr ds:[ebx],eax
005338EE . 61 popad
005338EF . 58 pop eax
005338F0 . 8B00 mov eax,dword ptr ds:[eax]
005338F2 . FFE0 jmp eax
005338F4 > 8B46 04 mov eax,dword ptr ds:[esi+4]
005338F7 . 8903 mov dword ptr ds:[ebx],eax
005338F9 . 61 popad
005338FA . 58 pop eax
005338FB . 83C4 04 add esp,4
005338FE . 8B00 mov eax,dword ptr ds:[eax]
00533900 . FFE0 jmp eax

Все работает


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 27 июня 2006 16:16 New!
Цитата · Личное сообщение · #26

003519ED kerne
003519F5 l32.dll.
003519FD (...Get
00351A05 CurrentT
00351A0D hreadId.
00351A15 DeleteC
00351A1D riticalS
00351A25 ection.
00351A2D LeaveCri
00351A35 ticalSec
00351A3D tion


Вот IT, её бы перекрутить в прогамму, поменять в хидере указатель на IT, IAT и при каждом запуске загрузчик будет подставлять правильные адреса апи в IAT. У тебя же эти адреса не меняются загрузчиком, если ты не поправил IT.

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 27 июня 2006 16:22 New!
Цитата · Личное сообщение · #27

Ты смотришь не туда ! Забудь ты про это! Там не нужно ни чего прикручивать там все есть!
005280F0 7C809737 kernel32.GetCurrentThreadId
005280F4 7C91188A ntdll.RtlDeleteCriticalSection
005280F8 7C9010ED ntdll.RtlLeaveCriticalSection
005280FC 7C901005 ntdll.RtlEnterCriticalSection
00528100 7C809FA1 kernel32.InitializeCriticalSection
00528104 7C809B14 kernel32.VirtualFree
00528108 7C809A81 kernel32.VirtualAlloc
0052810C 7C80995D kernel32.LocalFree
00528110 7C8099BD kernel32.LocalAlloc
00528114 7C80B859 kernel32.VirtualQuery
00528118 7C80A0C7 kernel32.WideCharToMultiByte
0052811C 7C809CAD kernel32.MultiByteToWideChar
00528120 7C80C6E0 kernel32.lstrlenA
00528124 7C810311 kernel32.lstrcpynA
00528128 7C80C729 kernel32.lstrcpyA
0052812C 7C801D4F kernel32.LoadLibraryExA
00528130 7C80A405 kernel32.GetThreadLocale
00528134 7C801EEE kernel32.GetStartupInfoA
00528138 7C80AC28 kernel32.GetProcAddress
0052813C 7C80B529 kernel32.GetModuleHandleA
00528140 7C80B357 kernel32.GetModuleFileNameA
00528144 7C80D47E kernel32.GetLocaleInfoA
00528148 7C910331 ntdll.RtlGetLastWin32Error
0052814C 7C812C8D kernel32.GetCommandLineA
00528150 7C80AA66 kernel32.FreeLibrary
00528154 7C813559 kernel32.FindFirstFileA
00528158 7C80EFD7 kernel32.FindClose
0052815C 7C81CAA2 kernel32.ExitProcess
00528160 7C810F9F kernel32.WriteFile
00528164 7C862B8A kernel32.UnhandledExceptionFilter
00528168 7C810DA6 kernel32.SetFilePointer
0052816C 7C81F850 kernel32.SetEndOfFile
00528170 7C937A40 ntdll.RtlUnwind
00528174 7C80180E kernel32.ReadFile
00528178 7C81EAE1 kernel32.RaiseException
0052817C 7C812CA9 kernel32.GetStdHandle
00528180 7C810C8F kernel32.GetFileSize
00528184 7C811069 kernel32.GetFileType
00528188 7C801A24 kernel32.CreateFileA
0052818C 7C809B77 kernel32.CloseHandle
00528190 00000000
00528194 77D5FA46 user32.GetKeyboardType
00528198 77D5EC98 user32.LoadStringA
0052819C 77D7050B user32.MessageBoxA
005281A0 77D5EC40 user32.CharNextA
005281A4 00000000
005281A8 77DC7883 advapi32.RegQueryValueExA
005281AC 77DC761B advapi32.RegOpenKeyExA
005281B0 77DC6BF0 advapi32.RegCloseKey
005281B4 00000000
005281B8 771165C4 oleaut32.VariantChangeTypeEx
005281BC 7713D348 oleaut32.VariantCopyInd
005281C0 771148C0 oleaut32.VariantClear
005281C4 77114C3B oleaut32.SysStringLen
005281C8 77114850 oleaut32.SysFreeString
005281CC 7713C99D oleaut32.SysReAllocStringLen
005281D0 77114B59 oleaut32.SysAllocStringLen
005281D4 00000000
005281D8 7C809BF5 kernel32.TlsSetValue
005281DC 7C809750 kernel32.TlsGetValue
005281E0 7C8099BD kernel32.LocalAlloc
005281E4 7C80B529 kernel32.GetModuleHandleA
005281E8 7C80B357 kernel32.GetModuleFileNameA
005281EC 00000000
005281F0 7C838FB9 kernel32.lstrcatA
005281F4 7C810F9F kernel32.WriteFile
005281F8 7C802530 kernel32.WaitForSingleObject
005281FC 7C80B859 kernel32.VirtualQuery
00528200 7C810DA6 kernel32.SetFilePointer
00528204 7C81F850 kernel32.SetEndOfFile
00528208 7C80180E kernel32.ReadFile
0052820C 7C9010ED ntdll.RtlLeaveCriticalSection
00528210 7C809FA1 kernel32.InitializeCriticalSection
00528214 7C810082 kernel32.GlobalUnlock
00528218 7C8125C9 kernel32.GlobalReAlloc
0052821C 7C838F36 kernel32.GlobalHandle
00528220 7C810119 kernel32.GlobalLock
00528224 7C80FE2F kernel32.GlobalFree
00528228 7C80FF2D kernel32.GlobalAlloc
0052822C 7C812851 kernel32.GetVersionExA
00528230 7C80A405 kernel32.GetThreadLocale
00528234 7C80AC28 kernel32.GetProcAddress
00528238 7C80B529 kernel32.GetModuleHandleA
0052823C 7C80B357 kernel32.GetModuleFileNameA
00528240 7C80D47E kernel32.GetLocaleInfoA
00528244 7C910331 ntdll.RtlGetLastWin32Error
00528248 7C810C8F kernel32.GetFileSize
0052824C 7C827373 kernel32.GetDiskFreeSpaceA
00528250 7C809737 kernel32.GetCurrentThreadId
00528254 7C812BE6 kernel32.GetCPInfo
00528258 7C825F62 kernel32.FormatMessageA
0052825C 7C83761C kernel32.EnumCalendarInfoA
00528260 7C901005 ntdll.RtlEnterCriticalSection
00528264 7C91188A ntdll.RtlDeleteCriticalSection
00528268 7C801A24 kernel32.CreateFileA
0052826C 7C81E4BD kernel32.CreateEventA
00528270 7C80D293 kernel32.CompareStringA
00528274 7C809B77 kernel32.CloseHandle
00528278 00000000
0052827C 77D560D5 user32.SetDlgItemTextA
00528280 77D3E2AE user32.SendMessageA
00528284 77D7050B user32.MessageBoxA
00528288 77D5EC98 user32.LoadStringA
0052828C 77D421AE user32.LoadIconA
00528290 77D38F75 user32.GetSystemMetrics
00528294 77D452A4 user32.GetDlgItem
00528298 77D46CC9 user32.EndDialog
0052829C 77D3C4D4 user32.EnableWindow
005282A0 77D488E1 user32.DialogBoxParamA
005282A4 77D3E666 user32.DestroyWindow
005282A8 00000000
005282AC 7CA73FB3 shell32.DragQueryFileA
005282B0 00000000
005282B4 7638311E comdlg32.GetOpenFileNameA
что тебе еще нужно вставить! Пройдись внимательно по процедуре у тебя она 003218AB


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 27 июня 2006 16:45 New!
Цитата · Личное сообщение · #28

pavka
Бляха-муха, это есть IAT, там уже адреса, полученные загрузчиком виндов!!!. Теперь представим, что перенесли прогу в другой сервиспак, видим следующее - загрузчик грузит, но IT находит левую, в принципе ничего не меняет, а таблица, которую показываешь ты, мы получили в других виндах и она не изменилась. При запуске ппрога при вызове по этим адресам вызывает совсем не то!!! А чтобы было всё ок достаточно прикрутить IT, показанную в предыдущем посте, и загрузчик все адреса подставил бы прваильные. А так прога пахать в другой системе не будет!!!

Ранг: 1045.7 (!!!!)
Статус: Участник

Создано: 27 июня 2006 17:25 New!
Цитата · Личное сообщение · #29

)))) Ноукоментс )))) Патсталом ))))))
Тебе пошагово обьяснить как дампить, как прикрутить импорт?


Ранг: 260.9 (наставник)
Статус: Участник
John Smith

Создано: 27 июня 2006 18:43 New!
Цитата · Личное сообщение · #30

pavka
Ну давай, расскажи, просвети )))))
. 1 . 2 . >>
 eXeL@B —› Софт, инструменты —› mPack - mario PACKer

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS