手脱UPX的三种方法
首先,查壳,利用PEID或者是FI,为UPX 0.89
接上去用OD载入,提示为“紧缩代码能否继续分析”,我们选择否
我在这里介绍几种要领,请看我的操作。
要领1:单步跟踪(最常见的要领)
0040E8C0 N> 60 pushad //停在这里了,我们F8单步
0040E8C1 BE 15B04000 mov esi,NOTEPAD.0040B015
0040E8C6 8DBE EB5FFFFF lea edi,dword ptr ds:[esi+FFFF>
0040E8CC 57 push edi
0040E8CD 83CD FF or ebp,FFFFFFFF
0040E8D0 EB 10 jmp short NOTEPAD.0040E8E2 //跳
。。。。。。。。。。
0040E8E2 8B1E mov ebx,dword ptr ds:[esi] //跳到这里,继续单步
0040E8E4 83EE FC sub esi,-4
0040E8E7 11DB adc ebx,ebx
0040E8E9 ^ 72 ED jb short NOTEPAD.0040E8D8 //这里要往回跳了
0040E8EB B8 01000000 mov eax,1 //F4,然后继续F8
0040E8F0 01DB add ebx,ebx
0040E8F2 75 07 jnz short NOTEPAD.0040E8FB //跳
。。。。。。。。。。。
0040E8FB 11C0 adc eax,eax //离开这里,F8继续
0040E8FD 01DB add ebx,ebx
0040E8FD 01DB add ebx,ebx
0040E8FF ^ 73 EF jnb short NOTEPAD.0040E8F0
0040E901 75 09 jnz short NOTEPAD.0040E90C //跳
。。。。。。。。。。。
0040E90C 31C9 xor ecx,ecx //跳到这里,继续F8
0040E90E 83E8 03 sub eax,3
0040E90E 83E8 03 sub eax,3
0040E911 72 0D jb short NOTEPAD.0040E920 //跳
。。。。。。。。。。。
0040E920 01DB add ebx,ebx //跳到这里,继续F8
0040E922 75 07 jnz short NOTEPAD.0040E92B //跳
。。。。。。。。。。。<0040E92B 11C9 adc ecx,ecx //跳到了这里,继续F8
0040E92D 01DB add ebx,ebx
0040E92F 75 07 jnz short NOTEPAD.0040E938 //跳
。。。。。。。。。。。
0040E938 11C9 adc ecx,ecx //跳到这里,继续F8
0040E93A 75 20 jnz short NOTEPAD.0040E95C //跳
。。。。。。。。。。。
0040E95C 81FD 00F3FFFF cmp ebp,-0D00 //离开这,继续F8
0040E962 83D1 01 adc ecx,1
0040E965 8D142F lea edx,dword ptr ds:[edi+ebp]
0040E968 83FD FC cmp ebp,-4
0040E96B 76 0F jbe short NOTEPAD.0040E97C
0040E96D 8A02 mov al,byte ptr ds:[edx]
0040E96F 42 inc edx
0040E970 8807 mov byte ptr ds:[edi],al
0040E972 47 inc edi
0040E973 49 dec ecx
0040E974 ^ 75 F7 jnz short NOTEPAD.0040E96D //要往回跳了
0040E976 ^ E9 63FFFFFF jmp NOTEPAD.0040E8DE
0040E97B 90 nop
0040E97C 8B02 mov eax,dword ptr ds:[edx] //在这里F4,继续F8
0040E97E 83C2 04 add edx,4
0040E981 8907 mov dword ptr ds:[edi],eax
0040E983 83C7 04 add edi,4
0040E986 83E9 04 sub ecx,4
0040E989 ^ 77 F1 ja short NOTEPAD.0040E97C
0040E98B 01CF add edi,ecx
0040E98D ^ E9 4CFFFFFF jmp NOTEPAD.0040E8DE //要往回跳了。
0040E992 5E pop esi //这里F4,继续F8
0040E993 89F7 mov edi,esi
0040E995 B9 DD000000 mov ecx,0DD
0040E99A 8A07 mov al,byte ptr ds:[edi]
0040E99C 47 inc edi
0040E99D 2C E8 sub al,0E8
0040E99F 3C 01 cmp al,1
0040E9A1 ^ 77 F7 ja short NOTEPAD.0040E99A //要往回跳了
0040E9A3 803F 00 cmp byte ptr ds:[edi],0 //这里F4,继续F8
0040E9A6 ^ 75 F2 jnz short NOTEPAD.0040E99A //要往回跳了
0040E9A8 8B07 mov eax,dword ptr ds:[edi] //这里F4,继续F8
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|