TA的每日心情 | 无聊 2017-3-9 21:22 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
发表于 2009-7-4 23:03:50
|
显示全部楼层
本来想写篇分析的,堵堵嘴。才写一点点。
写简单点.
1、去主文件的检验(随便修改一下主程序)
OD载入运行出错。用字符串搜索一下。在所有出信息处下断点。在次运行中断在以下地方。(00412662)
0041265C . 3B85 5CFEFFFF cmp eax,dword ptr ss:[ebp-1A4]
00412662 . /74 44 je short 屏录专家.004126A8
00412664 . |66:C785 74FEFFFF C401 mov word ptr ss:[ebp-18C],1C4
0041266D . |BA C18C5500 mov edx,屏录专家.00558CC1
关键是看0041265C 处的比较。dword ptr ss:[ebp-1A4]处的内存的值是文件的效验值
(正确值为堆栈 ss:[0012FD08]=0000247A eax=0000247A)
这个值是在前面的产生的那么关健的位置就在前面。对前的CALL进行下断,运行进关注0012FD08处的值看看是在那个CALL出来的
就要是关健的CALL了,调试发现在00455E31处全三个寄存器为247A这就是我们要的地方。
00455E2A |. |8BDA |mov ebx,edx
00455E2C |.^|72 DD \jb short 屏录专家.00455E0B
00455E2E |> \0FB7C3 movzx eax,bx
00455E31 |. 8987 A40C0000 mov dword ptr ds:[edi+CA4],eax
00455E37 |. 8BC3 mov eax,ebx
00455E39 |. 5F pop edi
00455E3A |. 5E pop esi
00455E3B |. 5B pop ebx
00455E3C |. 5D pop ebp
00455E3D \. C3 retn
我们就这样改吧。找个空地方。
修改为以下代码
00455E31 /E9 02EE0F00 jmp 屏录专家.00554C38
00455E36 |90 nop
00554C38 B8 7A240000 mov eax,247A
00554C3D BB 7A240000 mov ebx,247A
00554C42 BA 7A240000 mov edx,247A
00554C47 8987 A40C0000 mov dword ptr ds:[edi+CA4],eax
00554C4D ^ E9 E511F0FF jmp 屏录专家.00455E37
保存下来OK了。可以修改主程序了,多方便。
2、去除NAG 可以直接跳过去(自己去找)。我可不想这样搞,多没意思呀,我来个直接分析NAG内容让他自己跳主程序
DEDE出马了。 |
|