大哥的帖子我看了,我的水平看着很难!
还望fly大哥多多帮忙,多谢多谢
我也试着用od来载入原程序,在后下bp SetFilePointer断点(请教一下,SetFilePointer是个什么断点?)
结果如下
77E68618 > 55 PUSH EBP --->断在了这里
77E68619 8BEC MOV EBP,ESP
77E6861B 83EC 28 SUB ESP,28
77E6861E 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
77E68621 53 PUSH EBX
77E68622 25 03000010 AND EAX,10000003
77E68627 56 PUSH ESI
77E68628 83F8 03 CMP EAX,3
77E6862B 57 PUSH EDI
77E6862C 0F84 9D500200 JE kernel32.77E8D6CF--->这里如果跳转就弹出那个选择*.IPD的窗口
77E68632 8B5D 10 MOV EBX,DWORD PTR SS:[EBP+10]
77E68635 85DB TEST EBX,EBX
77E68637 ^0F85 4CDDFFFF JNZ kernel32.77E66389--->这里默认向回跳
77E6863D 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]--->如果点这里F4,就会到77E6E592 E9 C2B10200 JMP kernel32.77E99759
77E68640 99 CDQ
77E68641 8BF0 MOV ESI,EAX
77E68643 8BFA MOV EDI,EDX
77E68645 8B45 14 MOV EAX,DWORD PTR SS:[EBP+14]
77E68648 83E8 00 SUB EAX,0
77E6864B 75 66 JNZ SHORT kernel32.77E686B3
77E6864D 8975 F8 MOV DWORD PTR SS:[EBP-8],ESI
77E68650 897D FC MOV DWORD PTR SS:[EBP-4],EDI
77E68653 837D FC 00 CMP DWORD PTR SS:[EBP-4],0
77E68657 7F 10 JG SHORT kernel32.77E68669
77E68659 0F8C 7C500200 JL kernel32.77E8D6DB
77E6865F 837D F8 00 CMP DWORD PTR SS:[EBP-8],0
77E68663 0F82 72500200 JB kernel32.77E8D6DB
77E68669 85DB TEST EBX,EBX
77E6866B 75 0D JNZ SHORT kernel32.77E6867A
77E6866D F745 FC FFFFFF7F TEST DWORD PTR SS:[EBP-4],7FFFFFFF
77E68674 0F85 73500200 JNZ kernel32.77E8D6ED
77E6867A 6A 0E PUSH 0E
77E6867C 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
77E6867F 6A 08 PUSH 8
77E68681 50 PUSH EAX
77E68682 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
77E68685 50 PUSH EAX
77E68686 FF75 08 PUSH DWORD PTR SS:[EBP+8]
77E68689 FF15 3010E677 CALL DWORD PTR DS:[<&NTDLL.NtSetInformat>; ntdll.ZwSetInformationFile
77E6868F 85C0 TEST EAX,EAX
77E68691 ^0F8C 6E94FFFF JL kernel32.77E61B05
77E68697 85DB TEST EBX,EBX
77E68699 ^0F85 F4DCFFFF JNZ kernel32.77E66393
77E6869F 837D F8 FF CMP DWORD PTR SS:[EBP-8],-1
其他的我就很难看懂了,还望fly大哥给讲讲怎么才能知道
0058EB3D E8 A21BE9FF call VB函数速.004206E4
//094600处,即是附加数据的开始偏移地址 ★
//把094600修改为脱壳后的附加数据的开始偏移地址
0058EB51 8B45 F0 mov eax,dword ptr ss:[ebp-10]
//[0012FF58]=000CDC05 原版偏移0CDC1D处的数据 ★
//把000CDC05修正为脱壳后附加数据的相应偏移地址
我也用winhex看了原来的程序,末尾的情况见图