Сейчас на форуме: rmn (+1 невидимый пользователь) |
![]() |
eXeL@B —› WorldWide —› Strange Fixing Import Error |
Посл.ответ | Сообщение |
|
Создано: 27 июня 2007 07:18 · Личное сообщение · #1 I tried to unpack bpl/dll(PKICertMgrCore.bpl) file for prog protected by ASPR SDK. But after unpack and fixing imports i've got a strange error. PKICertCvt.exe in runtime corrupt two of fixed imports (kernel32.Freelibrary and kernel32.GetModuleFileNameA). All exes are not protected. So where is the catch? Bad unpack? I attach packed and unpacked bpls for testing purpose. Thanks for help. rapidshare.com/files/39575727/crypt4.rar.html mirror slil.ru/24562618 ![]() |
|
Создано: 27 июня 2007 14:52 · Личное сообщение · #2 ok i made two versions of this bpl/dll one for PKICertCvt.exe and one for al others exe. I renamed PKICertMgrCore.bpl to PKICertMgrCora.bpl and edit references in PKICertCvt.exe to call PKICertMgrCora.bpl ![]() ![]() when i run PKICertMgr.exe or other exe PKICertCvt.exe except i got this api redirection in module PKICertMgrCore.bpl 008F1310 .- FF25 3CDE9200 jmp dword ptr [<&pkivcl.System::Fina>; pkivcl.System::Finalization 008F1316 8BC0 mov eax, eax 008F1318 .- FF25 38DE9200 jmp dword ptr [<&pkivcl.System::init>; pkivcl.System::initialization 008F131E 8BC0 mov eax, eax 008F1320 - FF25 E0F19600 jmp dword ptr [<&kernel32.FreeLibrar>; kernel32.FreeLibrary 008F1326 8BC0 mov eax, eax 008F1328 - FF25 0CF29600 jmp dword ptr [<&kernel32.GetModuleF>; kernel32.GetModuleFileNameA 008F132E 8BC0 mov eax, eax 008F1330 $- FF25 F8DF9200 jmp dword ptr [<&kernel32.LocalAlloc>; kernel32.LocalAlloc but when i run PKICertCvt.exe got this in PKICertMgrCore.bpl 00991310 - FF25 3CDE9C00 jmp dword ptr [<&pkivcl.System::Finalization>>; PKIVCL.System::Finalization 00991316 8BC0 mov eax, eax 00991318 - FF25 38DE9C00 jmp dword ptr [<&pkivcl.System::initializatio>; PKIVCL.System::initialization 0099131E 8BC0 mov eax, eax 00991320 - FF25 2CDE9C00 jmp dword ptr [9CDE2C] ; kernel32.FreeLibrary 00991326 8BC0 mov eax, eax 00991328 - FF25 30DE9C00 jmp dword ptr [9CDE30] ; kernel32.GetModuleFileNameA 0099132E 8BC0 mov eax, eax 00991330 - FF25 F8DF9C00 jmp dword ptr [<&kernel32.LocalAlloc>] ; kernel32.LocalAlloc and in aspr protected bpl is this one in PKICertMgrCore.bpl 00991310 .- FF25 3CDE9C00 jmp dword ptr [9CDE3C] ; PKIVCL.System::Finalization 00991316 8BC0 mov eax, eax 00991318 .- FF25 38DE9C00 jmp dword ptr [9CDE38] ; PKIVCL.System::initialization 0099131E 8BC0 mov eax, eax 00991320 $ E8 DBEC8800 call 01220000 <<aspi protected redirection to kernel32.Freelibrary 00991325 8E db 8E 00991326 8BC0 mov eax, eax 00991328 $ E8 D7EC8D00 call 01270004 <<aspi protected redirection to kernel32.GetModuleFileNameA 0099132D . 67:8BC0 mov eax, eax 00991330 $- FF25 F8DF9C00 jmp dword ptr [9CDFF8] ; kernel32.LocalAlloc how can aspr calculate right pointers for all cases? ![]() |
|
Создано: 27 июня 2007 14:57 · Личное сообщение · #3 |
|
Создано: 27 июня 2007 15:01 · Личное сообщение · #4 for PKICertCvt.exe got this in PKICertMgrCore.bpl sorry but i forgot rename fixed bpl to original one ![]() 00991310 - FF25 3CDE9C00 jmp dword ptr [<&pkivcl.System::Finalization>>; PKIVCL.System::Finalization 00991316 8BC0 mov eax, eax 00991318 - FF25 38DE9C00 jmp dword ptr [<&pkivcl.System::initializatio>; PKIVCL.System::initialization 0099131E 8BC0 mov eax, eax 00991320 - FF25 2CDE9C00 jmp dword ptr [9CDE2C] ; kernel32.FreeLibrary 00991326 8BC0 mov eax, eax 00991328 - FF25 30DE9C00 jmp dword ptr [9CDE30] ; kernel32.GetModuleFileNameA 0099132E 8BC0 mov eax, eax 00991330 - FF25 F8DF9C00 jmp dword ptr [<&kernel32.LocalAlloc>] ; kernel32.LocalAlloc 00991310 .- FF25 3CDE9C00 jmp dword ptr [<&pkivcl.System::Finalization>>; PKIVCL.System::Finalization 00991316 8BC0 mov eax, eax 00991318 .- FF25 38DE9C00 jmp dword ptr [<&pkivcl.System::initializatio>; PKIVCL.System::initialization 0099131E 8BC0 mov eax, eax 00991320 $ FF25 E0F1AA00 jmp dword ptr [AAF1E0] <<strange api pointer 00991326 8BC0 mov eax, eax 00991328 $ FF25 0CF2AA00 jmp dword ptr [AAF20C] <<strange api pointer 0099132E ? 8BC0 mov eax, eax 00991330 $- FF25 F8DF9C00 jmp dword ptr [<&kernel32.LocalAlloc>] ; kernel32.LocalAlloc 00991336 8BC0 mov eax, eax 00991338 $- FF25 F4DF9C00 jmp dword ptr [<&kernel32.LocalFree>] ; kernel32.LocalFree ![]() |
![]() |
eXeL@B —› WorldWide —› Strange Fixing Import Error |