首页
社区
课程
招聘
《软件加密技术内幕》hying壳的一个BUG
发表于: 2004-12-19 14:58 4596

《软件加密技术内幕》hying壳的一个BUG

2004-12-19 14:58
4596
在FindFirstResADDR函数中,有一种情况没有考虑,就是如果没有资源怎么办?
FindFirstResADDR        PROC
  LOCAL        FirstResAddr:DWORD
        push        edi
        push        esi
        push        ecx
        mov        FirstResAddr,7fffffffh
        mov        esi,PeHeadBase
        assume        esi : ptr IMAGE_NT_HEADERS
        mov        eax,dword ptr [esi].OptionalHeader.DataDirectory[2*SIZEOF IMAGE_DATA_DIRECTORY].VirtualAddress
        mov        esi,eax                ;资源起点偏移
        add        eax,MapOfFile
        mov        edi,eax                ;资源起点地址
....
如果没有资源,eax==0,所以此处少了一个判断,此函数中要加一个判断,返回的后,在调用此函数的地方7也要加一个判断即可。该怎么加大家应该知道吧。:D
我做了一个测试程序:
#include<stdio.h>
void main()
{
        printf("Hello,World!\n");
        getchar();
}
用vc6编译将没有资源,有兴趣的可测试一下。附近为编译好的测试程序。附件:test.rar

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 241
活跃值: (21)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
恩。当初考虑不周。现在新的已经没这个问题了。
0.46是很早的一个版本,可能还有其他的BUG。
2004-12-19 19:06
0
雪    币: 127
活跃值: (212)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
原来是这个马甲:D
以后多多向您请教。;)
2004-12-19 21:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
呀,被发现了-------
2004-12-29 18:01
0
雪    币: 165
活跃值: (1516)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
资源压缩也不太稳定
2005-1-6 18:47
0
游客
登录 | 注册 方可回帖
返回
//