![]() |
eXeL@B —› Основной форум —› Распаковка Softwrap |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 12 октября 2006 23:00 · Личное сообщение · #1 Пытаюсь распаковать прогу под Softwrap по статье, которую выложил Биша в это топике: http://www.exelab.ru/f/action=vthread&topic=2659&forum=1&p age=-1 Прога Linx 5.7 Build 3250 (триал 25 дней): http://download.canciu.net/linx_setup.exe [2 Mб] Сдампил на ОЕР. Сдампил регионы трех секций (как в статье) и прикрутил их к дампу. Восстановил импорт Импреком. И пытаюсь поправить адерса в секции xlok. Вроде все поправил, но прога блин падает при запуске. не пойму что не так сделал ![]() В распаковке я не силен. Может кто глянет? ![]() |
|
Создано: 15 октября 2006 22:42 · Личное сообщение · #2 r99 Могу дать старенький! WELL пишет: CodeTemplate.exe? Что-то я не понял как им пользоваться. Да этот! Открываешь в ольке! Копипастишь и меняешь на свои аддреса! PE_Kill пишет: ну этот вариант заранее проигрышный. ИДА в дампе импорт не покажет, работать будед только на твоей платформе Почему? Востановишь переходники и Импреком новую ИАТ стандартным способом! ![]() |
|
Создано: 15 октября 2006 23:03 · Личное сообщение · #3 |
|
Создано: 15 октября 2006 23:25 · Личное сообщение · #4 Первый инжект я тебе показывал он переадресует ИАТ в любое свободное место! 0068C81E > \F6C3 02 test bl,2 <----------------Ставишь бряк хардварный he 0068C821 . 74 21 je short Linx.0068C844 0068C823 . FFB5 DF1C0000 push dword ptr ss:[ebp+1CDF] 0068C829 . 6A 10 push 10 ; /Arg4 = 00000010 0068C82B . 50 push eax ; |Arg3 0068C82C . FFB5 DF1C0000 push dword ptr ss:[ebp+1CDF] на 0068C81E 3A0D A8E25E00 cmp cl,byte ptr ds:[5EE2A8] <--- Можешь выбрать сам где много я выбирал5EE2A0 0068C824 74 0E je short Linx.0068C834 0068C826 FE05 A8E25E00 inc byte ptr ds:[5EE2A8] 0068C82C 66:8305 ACE25E00 04 add word ptr ds:[5EE2AC],4 <---в дампе пишешь EF5E 0068C834 8B1D ACE25E00 mov ebx,dword ptr ds:[5EE2AC] 0068C83A 8903 mov dword ptr ds:[ebx],eax 0068C83C 66:8305 ACE25E00 04 add word ptr ds:[5EE2AC],4 ИАТ= 005EEF00 А второй инжект по востановлению переходников в темплейте нет но примерно так 00BD0087 B9 00EF5E00 mov ecx,5EEF00<----- 00BD008C 3901 cmp dword ptr ds:[ecx],eax 00BD008E 3901 cmp dword ptr ds:[ecx],eax 00BD0090 74 05 je short 00BD0097 00BD0092 83C1 04 add ecx,4 00BD0095 ^ EB F7 jmp short 00BD008E 00BD0097 8BD1 mov edx,ecx 00BD0099 81EA 00100000 sub edx,1000 00BD009F 8902 mov dword ptr ds:[edx],eax 00BD00A1 83C4 1C add esp,1C 00BD00A4 3E:8B0424 mov eax,dword ptr ds:[esp] 00BD00A8 83E8 06 sub eax,6 00BD00AB 66:C700 FF25 mov word ptr ds:[eax],25FF 00BD00B0 83C0 02 add eax,2 00BD00B3 8910 mov dword ptr ds:[eax],edx 00BD00B5 C701 00000000 mov dword ptr ds:[ecx],0 00BD00BB C3 retn он преобразуетFF15 58A06800 CALL DWORD PTR DS:[68A058] в <FF25XXXX....-jmp ---ф-ця ![]() |
|
Создано: 15 октября 2006 23:41 · Личное сообщение · #5 |
|
Создано: 15 октября 2006 23:52 · Личное сообщение · #6 |
|
Создано: 16 октября 2006 00:45 · Личное сообщение · #7 WELL Немного неверно написал 2 инжект вот так нужно 00BD0087 B9 00EF5E00 mov ecx,5EEF00 00BD008C 3901 cmp dword ptr ds:[ecx],eax 00BD008E 74 05 je short 00BD0095 00BD0090 83C1 04 add ecx,4 00BD0093 ^ EB F7 jmp short 00BD008C 00BD0095 8BD1 mov edx,ecx 00BD0097 81EA 00100000 sub edx,1000 00BD009D 8902 mov dword ptr ds:[edx],eax 00BD009F 83C4 1C add esp,1C 00BD00A2 3E:8B0424 mov eax,dword ptr ds:[esp] 00BD00A6 83E8 06 sub eax,6 00BD00A9 66:C700 FF25 mov word ptr ds:[eax],25FF 00BD00AE 83C0 02 add eax,2 00BD00B1 8910 mov dword ptr ds:[eax],edx 00BD00B3 C701 00000000 mov dword ptr ds:[ecx],0 00BD00B9 C3 retn и вот что выходит 004012FC - FF25 0CE25E00 jmp dword ptr ds:[5EE20C] ; kernel32.RaiseException 00401302 8BC0 mov eax,eax 00401304 - FF25 10E25E00 jmp dword ptr ds:[5EE210] ; ntdll.RtlUnwind 0040130A 8BC0 mov eax,eax 0040130C - FF25 14E25E00 jmp dword ptr ds:[5EE214] ; kernel32.UnhandledExceptionFilter 00401312 8BC0 mov eax,eax 00401314 - FF25 28E25E00 jmp dword ptr ds:[5EE228] ; kernel32.WriteFile 0040131A 8BC0 mov eax,eax 0040131C - FF25 F0E45E00 jmp dword ptr ds:[5EE4F0] ; USER32.CharNextA 00401322 8BC0 mov eax,eax 00401324 - FF25 9CE15E00 jmp dword ptr ds:[5EE19C] ; kernel32.CreateThread 0040132A 8BC0 mov eax,eax 0040132C - FF25 ACE15E00 jmp dword ptr ds:[5EE1AC] ; kernel32.ExitThread 00401332 8BC0 mov eax,eax 00401334 - FF25 A8E15E00 jmp dword ptr ds:[5EE1A8] ; kernel32.ExitProcess 0040133A 8BC0 mov eax,eax 0040133C - FF25 FCE45E00 jmp dword ptr ds:[5EE4FC] ; USER32.MessageBoxA 00401342 8BC0 mov eax,eax 00401344 - FF25 B0E15E00 jmp dword ptr ds:[5EE1B0] ; kernel32.FindClose 0040134A 8BC0 mov eax,eax 0040134C - FF25 B4E15E00 jmp dword ptr ds:[5EE1B4] ; kernel32.FindFirstFileA 00401352 8BC0 mov eax,eax 00401354 - FF25 B8E15E00 jmp dword ptr ds:[5EE1B8] ; kernel32.FreeLibrary 0040135A 8BC0 mov eax,eax 0040135C - FF25 BCE15E00 jmp dword ptr ds:[5EE1BC] ; kernel32.GetCommandLineA 00401362 8BC0 mov eax,eax 00401364 - FF25 C4E15E00 jmp dword ptr ds:[5EE1C4] ; kernel32.GetLocaleInfoA 0040136A 8BC0 mov eax,eax 0040136C - FF25 C8E15E00 jmp dword ptr ds:[5EE1C8] ; kernel32.GetModuleFileNameA 00401372 8BC0 mov eax,eax 00401374 - FF25 CCE15E00 jmp dword ptr ds:[5EE1CC] ; kernel32.GetModuleHandleA 0040137A 8BC0 mov eax,eax 0040137C - FF25 D0E15E00 jmp dword ptr ds:[5EE1D0] ; kernel32.GetProcAddress 00401382 8BC0 mov eax,eax 00401384 - FF25 D4E15E00 jmp dword ptr ds:[5EE1D4] ; kernel32.GetStartupInfoA 0040138A 8BC0 mov eax,eax 0040138C - FF25 DCE15E00 jmp dword ptr ds:[5EE1DC] ; kernel32.GetThreadLocale 00401392 8BC0 mov eax,eax 00401394 - FF25 F8E15E00 jmp dword ptr ds:[5EE1F8] ; kernel32.LoadLibraryExA 0040139A 8BC0 mov eax,eax 0040139C - FF25 F8E45E00 jmp dword ptr ds:[5EE4F8] ; USER32.LoadStringA 004013A2 8BC0 mov eax,eax 004013A4 - FF25 2CE25E00 jmp dword ptr ds:[5EE22C] ; kernel32.lstrcpynA 004013AA 8BC0 mov eax,eax 004013AC - FF25 30E25E00 jmp dword ptr ds:[5EE230] ; kernel32.lstrlenA 004013B2 8BC0 mov eax,eax 004013B4 - FF25 04E25E00 jmp dword ptr ds:[5EE204] ; kernel32.MultiByteToWideChar 004013BA 8BC0 mov eax,eax 004013BC - FF25 00DF5E00 jmp dword ptr ds:[5EDF00] ; ADVAPI32.RegCloseKey 004013C2 8BC0 mov eax,eax 004013C4 - FF25 04DF5E00 jmp dword ptr ds:[5EDF04] ; ADVAPI32.RegOpenKeyExA 004013CA 8BC0 mov eax,eax 004013CC - FF25 08DF5E00 jmp dword ptr ds:[5EDF08] ; ADVAPI32.RegQueryValueExA 004013D2 8BC0 mov eax,eax 004013D4 - FF25 24E25E00 jmp dword ptr ds:[5EE224] ; kernel32.WideCharToMultiByte 004013DA 8BC0 mov eax,eax 004013DC - FF25 20E25E00 jmp dword ptr ds:[5EE220] ; kernel32.VirtualQuery 004013E2 8BC0 mov eax,eax 004013E4 - FF25 78E45E00 jmp dword ptr ds:[5EE478] ; OLEAUT32.SysAllocStringLen 004013EA 8BC0 mov eax,eax 004013EC - FF25 80E45E00 jmp dword ptr ds:[5EE480] ; OLEAUT32.SysReAllocStringLen 004013F2 8BC0 mov eax,eax 004013F4 - FF25 7CE45E00 jmp dword ptr ds:[5EE47C] ; OLEAUT32.SysFreeString 004013FA 8BC0 mov eax,eax 004013FC - FF25 F0E15E00 jmp dword ptr ds:[5EE1F0] ; kernel32.InterlockedIncrement 00401402 8BC0 mov eax,eax 00401404 - FF25 ECE15E00 jmp dword ptr ds:[5EE1EC] ; kernel32.InterlockedDecrement 0040140A 8BC0 mov eax,eax 0040140C - FF25 C0E15E00 jmp dword ptr ds:[5EE1C0] ; kernel32.GetCurrentThreadId 00401412 8BC0 mov eax,eax 00401414 - FF25 E4E15E00 jmp dword ptr ds:[5EE1E4] ; kernel32.GetVersion 0040141A 8BC0 mov eax,eax 0040141C - FF25 08E25E00 jmp dword ptr ds:[5EE208] ; kernel32.QueryPerformanceCounter 00401422 8BC0 mov eax,eax 00401424 - FF25 E0E15E00 jmp dword ptr ds:[5EE1E0] ; kernel32.GetTickCount ![]() |
|
Создано: 17 октября 2006 02:33 · Личное сообщение · #8 |
|
Создано: 17 октября 2006 16:46 · Личное сообщение · #9 |
|
Создано: 17 октября 2006 18:08 · Личное сообщение · #10 |
|
Создано: 17 октября 2006 18:26 · Личное сообщение · #11 |
|
Создано: 18 октября 2006 00:10 · Личное сообщение · #12 Имхо зачем нужен чужой лоадер если наваять свой дело пары минут! В принципе там и инлайн не сложно сделать тутор JohnWho Softwrap.Inline.Patching в руки и все там версия один в один похожа вот код Linx 0068CB1B 53 push ebx 0068CB1C 8BDC mov ebx,esp 0068CB1E 81EC 04010000 sub esp,104 0068CB24 60 pushad 0068CB25 8DBB FCFEFFFF lea edi,dword ptr ds:[ebx-104] 0068CB2B C707 736F6674 mov dword ptr ds:[edi],74666F73 0068CB31 C747 04 77726170 mov dword ptr ds:[edi+4],70617277 0068CB38 C747 08 2E646C6C mov dword ptr ds:[edi+8],6C6C642E 0068CB3F 8367 0C 00 and dword ptr ds:[edi+C],0 0068CB43 57 push edi 0068CB44 53 push ebx 0068CB45 57 push edi 0068CB46 FF95 8E2F0000 call dword ptr ss:[ebp+2F8E]<-------- Softwrap.dll get's loaded 0068CB4C 5B pop ebx 0068CB4D 5F pop edi 0068CB4E 8943 FC mov dword ptr ds:[ebx-4],eax 0068CB51 50 push eax 0068CB52 E8 48030000 call Linx.0068CE9F<---------------------- CRC check on Softwrap.dll 0068CB57 85C0 test eax,eax 0068CB59 ^ 0F84 A6E6FFFF je Linx.0068B205<---------------------- If jumping Softwrap.dll is corrupted вот из тутора 00531CFF: 53 push ebx 00531D00: 8BDC mov ebx,esp 00531D02: 81EC04010000 sub esp,000000104 00531D08: 60 pushad 00531D09: 8DBBFCFEFFFF lea edi,[ebx][-00000104] 00531D0F: C707736F6674 mov d,[edi],074666F73 00531D15: C7470477726170 mov d,[edi][04],070617277 00531D1C: C747082E646C6C mov d,[edi][08],06C6C642E 00531D23: 83670C00 and d,[edi][0C],000000000 00531D27: 57 push edi 00531D28: 53 push ebx 00531D29: 57 push edi 00531D2A: FF958E2F0000 call d,[ebp][00002F8E] <-------- Softwrap.dll get's loaded 00531D30: 5B pop ebx 00531D31: 5F pop edi 00531D32: 8943FC mov [ebx][-04],eax 00531D35: 50 push eax 00531D36: E848030000 call .000532083 <---------------------- CRC check on Softwrap.dll 00531D3B: 85C0 test eax,eax 00531D3D: 0F84A6E6FFFF je .0005303E9 <---------------------- If jumping Softwrap.dll is corrupted [HIGHLIGHT=asm][/HIGHLIGHT] Имхо даже начинающий вполне справится ![]() |
|
Создано: 18 октября 2006 16:52 · Личное сообщение · #13 |
|
Создано: 18 октября 2006 17:24 · Личное сообщение · #14 |
|
Создано: 18 октября 2006 21:54 · Личное сообщение · #15 |
|
Создано: 20 октября 2006 09:42 · Личное сообщение · #16 Вот этого зверя можете помочь побороть ? Игруха прикольная , плана известных всем Морхухнов. Хотя бы простой патчинг, даже без распаковки... www.softwrap.com/swpurchase/ck_plant.asp?software_code=BLUEFISHKOCHMEI2ALL&distributor=gp_de&redirect=http://download.gamepueblo.com/de/cabtpaypowerphone/KochmeisterPfanne2XXLSetup.exe pavka - Ты там говорил , что это очень просто, не хочешь попробовать ? Впрочем, я не настаиваю, конечно. ![]() |
|
Создано: 22 октября 2006 16:39 · Личное сообщение · #17 |
|
Создано: 23 октября 2006 11:21 · Личное сообщение · #18 |
|
Создано: 27 октября 2006 22:23 · Личное сообщение · #19 Soft_Ice пишет: Вот этого зверя можете помочь побороть ? Игруха прикольная , плана известных всем Морхухнов. Хотя бы простой патчинг, даже без распаковки... www.softwrap.com/swpurchase/ck_plant.asp?software_code=BLUEFISH KOCHMEI2ALL&distributor=gp_de&redirect=http://download.gamepueblo.com/ de/cabtpaypowerphone/KochmeisterPfanne2XXLSetup.exe Патч ушел на мыло ![]() |
|
Создано: 28 октября 2006 11:34 · Личное сообщение · #20 |
|
Создано: 28 октября 2006 12:23 · Личное сообщение · #21 Soft_Ice пишет: ЗЫ Я пытаюсь научится рыбачить , а не получать рыбу (с) Попробуй заинлайнить аспр, дабы получить опыт, ибо техника инлайна общая для всех протов. Статьи по этому найти не проблема. Как только освоишь основной принцип, тогда и другие проты сможешь инлайнить применив немножко смекалки. Кстати, в играх, где была проверка CRC, тоже был использован один из трюков, применяющихся для инлайна. На статью к сожалению нет времени, т.к. если опыта инлайна нет, то нужно писать все очень подробно, а это очень кропотливая работа... В принципе, имея пример инлайн-патча, можно же его проанализировать и посмотреть что и как делается. ![]() |
|
Создано: 29 октября 2006 11:20 · Личное сообщение · #22 |
|
Создано: 29 октября 2006 11:25 · Личное сообщение · #23 |
|
Создано: 05 ноября 2006 03:42 · Личное сообщение · #24 BoOMBoX/TSRh Спасибо, я теперь разобрался... А по теме коечто скажу, что в новых версиях Softwrap лоадер пишется по другому... Привожу пример, всё тот же masterpiece fishing 3.21 запускаем прогу, догодим через олю до нага, смотрим call stack (если вдруг в нём практически ничего нет, переходим к модулю softwrap и делаем analyse code: вот что у меня: Call stack of main thread Address Stack Procedure / arguments Called from Frame 0012EAD8 77D4919B Includes ntdll.KiFastSystemCallRet USER32.77D49199 0012EAF4 0012EADC 77D491CE USER32.77D4918F USER32.77D491C9 0012EAF4 0012EAF8 00F96A20 softwrap.010A3C97 softwrap.00F96A1A 0012EAF4 0012EB38 00F96ADF softwrap.00F96996 softwrap.00F96ADA 0012EB34 0012EB3C 00000000 Arg1 = 00000000 0012EB40 00010014 Arg2 = 00010014 0012EB48 00F96CAB softwrap.00F96AC1 softwrap.00F96CA6 0012EB6C 0012EB70 00F8999F softwrap.00F96B0F softwrap.00F8999A 0012EB6C 0012F380 00F838DC softwrap.00F89382 softwrap.swAccessQuery+0AC 0012F37C 0012F510 00F62889 Maybe softwrap.swAccessQuery 00F62887 0012F50C 0012FF14 00F62939 00F626AF 00F62934 0012FF10 0012FF1C 00F67678 00F62932 00F67673 0012FF38 0012FF3C 0051BFDF Includes 00F67678 Masterpi.0051BFDD 0012FF38 0012FF70 0052D53F ? Masterpi.0051BF67 Masterpi.0052D53A 0012FF74 0051CF22 Arg1 = 0051CF22 0012FF78 00010600 Arg2 = 00010600 0012FF7C 00000001 Arg3 = 00000001 0012FFA0 0051B020 ? Masterpi.0052D52A Masterpi.0051B01B 0012FFA4 0012FFE0 Arg1 = 0012FFE0 Выжеленым показан нужный нам вызов, переходим и меняем команду на которой стоим на retn, всё лоадер готов, осталась проверка crc, но это уже мелочи сами найдёте ![]() |
|
Создано: 05 ноября 2006 05:30 · Личное сообщение · #25 Linter пишет: BoOMBoX/TSRh Спасибо, я теперь разобрался... Ок, я рад за тебя ![]() Только, если ты заметил, я патчил сам вызов библиотеки softwrap, и таким образом, библа не загружается вовсе и соответственно время загрузки проги заметно уменьшилось, и причем после этого библиотека вообще не нужна, ее можно удалить ![]() ![]() |
|
Создано: 05 ноября 2006 06:31 · Личное сообщение · #26 BoOMBoX/TSRh пишет: Ок, я рад за тебя Только, если ты заметил, я патчил сам вызов библиотеки softwrap, и таким образом, библа не загружается вовсе и соответственно время загрузки проги заметно уменьшилось, и причем после этого библиотека вообще не нужна, ее можно удалить Да, я полностью разобрался как ты патчил, просто плагиат не в моём духе, я и твоё изучил и своего добавил Ещё раз thanks ![]() ![]() |
<< . 1 . 2 . |
![]() |
eXeL@B —› Основной форум —› Распаковка Softwrap |