Сейчас на форуме: rmn (+1 невидимый пользователь)

 eXeL@B —› WorldWide —› Strange Fixing Import Error
Посл.ответ Сообщение

Ранг: 2.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 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



Ранг: 2.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 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 So now i have two versions of this bpl/dll in one dir and all run right. But still i am confused why aspr code calculate pointer to this api right in all cases

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?



Ранг: 2.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 27 июня 2007 14:57
· Личное сообщение · #3

sorry for bad english
re: when i run PKICertMgr.exe or other exe ecepte PKICertCvt.exe i got this api redirection in module PKICertMgrCore.bpl



Ранг: 2.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 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
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати