Themid 脱壳修复好OEP以后,运行程序出现框框,去掉框框后新的问题又出现了,写的有点乱,请老师们不要看烦了
下内存访问断点来到了脱壳后程序的这个地方
004FF61D FF32 push dword ptr ds:[edx] ------ds:[004F91E6]=00B19467
004FF61F E9 A01C0000 jmp 1_.005012C4
004FF624 81CB 2548B12F or ebx,2FB14825
004FF62A F7D3 not ebx
004FF62C 81C3 F47ABD6F add ebx,6FBD7AF4
004FF632 E9 476C0000 jmp 1_.0050627E
打开原程序对照。
原程序00B19467的代码:
00B19467 8BFF mov edi, edi
00B19469 55 push ebp
00B1946A 8BEC mov ebp, esp
00B1946C 6A 00 push 0x0
00B1946E FF75 08 push dword ptr [ebp+0x8]
00B19471 FF15 9C14807C call dword ptr [<&ntdll.NtSetEvent>] ; ntdll.ZwSetEvent
00B19477 85C0 test eax, eax
00B19479 0F8C 0BFF0200 jl 00B4938A
00B1947F 33C0 xor eax, eax
00B19481 40 inc eax
00B19482 5D pop ebp
00B19483 C2 0400 retn 0x4
原程序在 7C80A067:
7C80A067 > 8BFF mov edi, edi
7C80A069 55 push ebp
7C80A06A 8BEC mov ebp, esp
7C80A06C 6A 00 push 0x0
7C80A06E FF75 08 push dword ptr [ebp+0x8]
7C80A071 FF15 9C14807C call dword ptr [<&ntdll.NtSetEvent>] ; ntdll.ZwSetEvent
7C80A077 85C0 test eax, eax
7C80A079 0F8C 0BFF0200 jl 7C839F8A
7C80A07F 33C0 xor eax, eax
7C80A081 40 inc eax
7C80A082 5D pop ebp
7C80A083 C2 0400 retn 0x4
搜索脱壳后的程序,00B19467没这个地址,再搜索上面那些代码在7C80A067和原程序一样
于是瞎蒙,把00B19467改成了67A0807C 保存一下,运行程序,还是出现上面的框框,
地址变成了00B11846,按上面的方法把4618B100改成了4624807C,保存一下.再运行程序,
直接不能运行了,但是在进程中有,需要结束进程。
疑问1. 为什么原程序00B19467和7C80A067中代码一样.
疑问2. 出现上面的错误应该如何修复。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!