-
-
[旧帖] [讨论]themida 1.0.0.5 -> Oreans Technologies [Overlay] 0.00雪花
-
发表于: 2008-2-22 22:34 3917
-
目标程序:aaa.exe,用VC++ 6.0 语言写的程序
peid检测壳:themida 1.0.0.5 -> Oreans Technologies [Overlay]
使用脚本:THEMIDA脚本(for IAT restore)
脚本运行后停在
004DA12D ? 6A 02 push 2
004DA12F ? FF15 28AF4E00 call dword ptr [4EAF28] ; msvcrt.__set_app_type
004DA135 . 59 pop ecx
004DA136 . 830D C8006300>or dword ptr [6300C8], FFFFFFFF
004DA13D . 830D CC006300>or dword ptr [6300CC], FFFFFFFF
004DA144 . FF15 24AF4E00 call dword ptr [4EAF24] ; msvcrt.__p__fmode
004DA14A . 8B0D BC006300 mov ecx, dword ptr [6300BC]
004DA150 . 8908 mov dword ptr [eax], ecx
004DA152 . FF15 20AF4E00 call dword ptr [4EAF20] ; msvcrt.__p__commode
004DA158 . 8B0D B8006300 mov ecx, dword ptr [6300B8]
004DA15E . 8908 mov dword ptr [eax], ecx
004DA160 . A1 1CAF4E00 mov eax, dword ptr [4EAF1C]
004DA165 . 8B00 mov eax, dword ptr [eax]
004DA167 . A3 C4006300 mov dword ptr [6300C4], eax
004DA16C . E8 58010000 call 004DA2C9
004DA171 . 391D D8545200 cmp dword ptr [5254D8], ebx
004DA177 . 75 0C jnz short 004DA185
004DA179 . 68 C6A24D00 push 004DA2C6
004DA17E . FF15 18AF4E00 call dword ptr [4EAF18] ; msvcrt.__setusermatherr
004DA184 . 59 pop ecx
004DA185 > E8 24010000 call 004DA2AE
004DA18A . 68 14945100 push 00519414
004DA18F . 68 10945100 push 00519410
004DA194 . E8 0F010000 call 004DA2A8 ; jmp 到 msvcrt._initterm
004DA199 . A1 B4006300 mov eax, dword ptr [6300B4]
OEP的代码被抽取了
堆栈
0012FEFC FFF82834 ⑹
0012FF00 00000006 ⑸
0012FF04 00000000 ⑷
0012FF08 FAAF7CFA
0012FF0C 00000014
0012FF10 00000001
0012FF14 00000000
0012FF18 00000000
0012FF1C 00000010
0012FF20 00000000
0012FF24 00000000
0012FF28 00000000
0012FF2C 00000073
0012FF30 008F70E7 mir3adva.008F70E7
0012FF34 FFF82834
0012FF38 00000006
0012FF3C FA601ED2
0012FF40 0012FF54
0012FF44 00000000
0012FF48 00000000
0012FF4C 1379BD17
0012FF50 FA601ED2
0012FF54 008DA8C2 mir3adva.008DA8C2
0012FF58 007A5F80 返回到 mir3adva.007A5F80 来自 mir3adva.007A5F80
0012FF5C FFF82834
0012FF60 00000006
0012FF64 00000000
0012FF68 0012FEFC
0012FF6C 00000000
0012FF70 0012FF9C 指向下一个 SEH 记录的指针 ⑶
0012FF74 004DA284 SE处理程序 ⑵
0012FF78 004FEE18 aaa.004FEE18 ⑴
0012FF7C 00000000
0012FF80 00000000
0012FF84 FA601ED2
寄存器
EAX 0012FF9C
ECX 1379BD17
EDX 00000000
EBX 00000000
ESP 0012FEFC
EBP 0012FF80
ESI 00000006
EDI FFF82834
EIP 004DA12D aaa.004DA12D
补上oep代码后
004DA102 55 push ebp
004DA103 8BEC mov ebp, esp
004DA105 6A FF push -1
004DA107 68 18EE4F00 push 004FEE18 ⑴
004DA10C 68 84A24D00 push 004DA284 ⑵ ; jmp 到 msvcrt._except_handler3
004DA111 64:A1 0000000>mov eax, dword ptr fs:[0]
004DA117 50 push eax ⑶
004DA118 64:8925 00000>mov dword ptr fs:[0], esp
004DA11F 83EC 68 sub esp, 68
004DA122 53 push ebx ⑷
004DA123 56 push esi ⑸
004DA124 57 push edi ⑹
004DA125 8965 E8 mov dword ptr [ebp-18], esp
004DA128 33DB xor ebx, ebx
004DA12A 895D FC mov dword ptr [ebp-4], ebx
004DA12D ? 6A 02 push 2
004DA12F ? FF15 28AF4E00 call dword ptr [4EAF28] ; msvcrt.__set_app_type
004DA135 . 59 pop ecx
004DA136 . 830D C8006300>or dword ptr [6300C8], FFFFFFFF
004DA13D . 830D CC006300>or dword ptr [6300CC], FFFFFFFF
004DA144 . FF15 24AF4E00 call dword ptr [4EAF24] ; msvcrt.__p__fmode
004DA14A . 8B0D BC006300 mov ecx, dword ptr [6300BC]
堆栈⑴⑵⑶⑷⑸⑹处同程序⑴⑵⑶⑷⑸⑹的push语句对应。
改oep为004DA102,dump,
用ImportREC_fix_hh.exe重建iat:oep=da102 自动查找iat,找到的输入函数全部有效。
但是程序运行时出错:应用程序正常初始化(0xc00000005)失败。
请各位指教!!!!!!!!!!!!!!
peid检测壳:themida 1.0.0.5 -> Oreans Technologies [Overlay]
使用脚本:THEMIDA脚本(for IAT restore)
脚本运行后停在
004DA12D ? 6A 02 push 2
004DA12F ? FF15 28AF4E00 call dword ptr [4EAF28] ; msvcrt.__set_app_type
004DA135 . 59 pop ecx
004DA136 . 830D C8006300>or dword ptr [6300C8], FFFFFFFF
004DA13D . 830D CC006300>or dword ptr [6300CC], FFFFFFFF
004DA144 . FF15 24AF4E00 call dword ptr [4EAF24] ; msvcrt.__p__fmode
004DA14A . 8B0D BC006300 mov ecx, dword ptr [6300BC]
004DA150 . 8908 mov dword ptr [eax], ecx
004DA152 . FF15 20AF4E00 call dword ptr [4EAF20] ; msvcrt.__p__commode
004DA158 . 8B0D B8006300 mov ecx, dword ptr [6300B8]
004DA15E . 8908 mov dword ptr [eax], ecx
004DA160 . A1 1CAF4E00 mov eax, dword ptr [4EAF1C]
004DA165 . 8B00 mov eax, dword ptr [eax]
004DA167 . A3 C4006300 mov dword ptr [6300C4], eax
004DA16C . E8 58010000 call 004DA2C9
004DA171 . 391D D8545200 cmp dword ptr [5254D8], ebx
004DA177 . 75 0C jnz short 004DA185
004DA179 . 68 C6A24D00 push 004DA2C6
004DA17E . FF15 18AF4E00 call dword ptr [4EAF18] ; msvcrt.__setusermatherr
004DA184 . 59 pop ecx
004DA185 > E8 24010000 call 004DA2AE
004DA18A . 68 14945100 push 00519414
004DA18F . 68 10945100 push 00519410
004DA194 . E8 0F010000 call 004DA2A8 ; jmp 到 msvcrt._initterm
004DA199 . A1 B4006300 mov eax, dword ptr [6300B4]
OEP的代码被抽取了
堆栈
0012FEFC FFF82834 ⑹
0012FF00 00000006 ⑸
0012FF04 00000000 ⑷
0012FF08 FAAF7CFA
0012FF0C 00000014
0012FF10 00000001
0012FF14 00000000
0012FF18 00000000
0012FF1C 00000010
0012FF20 00000000
0012FF24 00000000
0012FF28 00000000
0012FF2C 00000073
0012FF30 008F70E7 mir3adva.008F70E7
0012FF34 FFF82834
0012FF38 00000006
0012FF3C FA601ED2
0012FF40 0012FF54
0012FF44 00000000
0012FF48 00000000
0012FF4C 1379BD17
0012FF50 FA601ED2
0012FF54 008DA8C2 mir3adva.008DA8C2
0012FF58 007A5F80 返回到 mir3adva.007A5F80 来自 mir3adva.007A5F80
0012FF5C FFF82834
0012FF60 00000006
0012FF64 00000000
0012FF68 0012FEFC
0012FF6C 00000000
0012FF70 0012FF9C 指向下一个 SEH 记录的指针 ⑶
0012FF74 004DA284 SE处理程序 ⑵
0012FF78 004FEE18 aaa.004FEE18 ⑴
0012FF7C 00000000
0012FF80 00000000
0012FF84 FA601ED2
寄存器
EAX 0012FF9C
ECX 1379BD17
EDX 00000000
EBX 00000000
ESP 0012FEFC
EBP 0012FF80
ESI 00000006
EDI FFF82834
EIP 004DA12D aaa.004DA12D
补上oep代码后
004DA102 55 push ebp
004DA103 8BEC mov ebp, esp
004DA105 6A FF push -1
004DA107 68 18EE4F00 push 004FEE18 ⑴
004DA10C 68 84A24D00 push 004DA284 ⑵ ; jmp 到 msvcrt._except_handler3
004DA111 64:A1 0000000>mov eax, dword ptr fs:[0]
004DA117 50 push eax ⑶
004DA118 64:8925 00000>mov dword ptr fs:[0], esp
004DA11F 83EC 68 sub esp, 68
004DA122 53 push ebx ⑷
004DA123 56 push esi ⑸
004DA124 57 push edi ⑹
004DA125 8965 E8 mov dword ptr [ebp-18], esp
004DA128 33DB xor ebx, ebx
004DA12A 895D FC mov dword ptr [ebp-4], ebx
004DA12D ? 6A 02 push 2
004DA12F ? FF15 28AF4E00 call dword ptr [4EAF28] ; msvcrt.__set_app_type
004DA135 . 59 pop ecx
004DA136 . 830D C8006300>or dword ptr [6300C8], FFFFFFFF
004DA13D . 830D CC006300>or dword ptr [6300CC], FFFFFFFF
004DA144 . FF15 24AF4E00 call dword ptr [4EAF24] ; msvcrt.__p__fmode
004DA14A . 8B0D BC006300 mov ecx, dword ptr [6300BC]
堆栈⑴⑵⑶⑷⑸⑹处同程序⑴⑵⑶⑷⑸⑹的push语句对应。
改oep为004DA102,dump,
用ImportREC_fix_hh.exe重建iat:oep=da102 自动查找iat,找到的输入函数全部有效。
但是程序运行时出错:应用程序正常初始化(0xc00000005)失败。
请各位指教!!!!!!!!!!!!!!
赞赏
他的文章
赞赏
雪币:
留言: