能力值:
( LV2,RANK:10 )
|
-
-
26 楼
这是好东西啊
|
能力值:
( LV2,RANK:10 )
|
-
-
27 楼
学习下,感谢分享
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
感谢楼主分享,看评论更学到东西了
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
原来狼兄的,帮顶,不错!
|
能力值:
( LV5,RANK:70 )
|
-
-
30 楼
本人小菜,抛砖引玉了!
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
很厉害呀,赞一个!
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
很好.........
|
能力值:
( LV3,RANK:20 )
|
-
-
33 楼
PeLib.
设计好上百倍
|
能力值:
( LV5,RANK:60 )
|
-
-
34 楼
很好很不错.不过只用了oo,没有设计oo
推荐看一下<<大话设计模式>>,相信您会成为架构师
|
能力值:
( LV5,RANK:70 )
|
-
-
35 楼
谢谢了,我是自学的,都是野路子,使出的招数都不知什么名字,真是惭愧!
|
能力值:
( LV5,RANK:70 )
|
-
-
36 楼
多谢这么评价,我不懂太深理论,一切都是以实用为主。
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
有点意思..................thanks for share
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
老狼,放出来吧。你留着也没用。放出来能提升你的影响力,说不定立马能提升你为BAT 的CTO
|
能力值:
( LV5,RANK:70 )
|
-
-
39 楼
才不呢
|
能力值:
( LV2,RANK:10 )
|
-
-
40 楼
代码bug较多,希望有人修正下
|
能力值:
( LV5,RANK:70 )
|
-
-
41 楼
什么bug?
|
能力值:
( LV2,RANK:10 )
|
-
-
42 楼
BOOL LPEFile::LoadPEFile(char *lpFilename)
{
HANDLE hFile;
HANDLE hMapping;
LPVOID ImageBase;
pstMapFile=new MAP_FILE_STRUCT;
bLoadStact=LFILE_FROM_FILE;
hFile=CreateFile(lpFilename,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile==NULL)
{
return FALSE;
}
pstMapFile->dwFileSize=GetFileSize(hFile,NULL);
hMapping=CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,pstMapFile->dwFileSize,NULL);
if (hMapping==NULL)
{
CloseHandle(hFile);
return FALSE;
}
ImageBase=MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,pstMapFile->dwFileSize);
if (ImageBase==NULL)
{
CloseHandle(hFile);
CloseHandle(hMapping);
return FALSE;
}
pstMapFile->hFile=hFile;
pstMapFile->hMapping=hMapping;
pstMapFile->ImageBase=ImageBase;
return TRUE;
}
pstMapFile=new MAP_FILE_STRUCT;//这里new析构函数中要无条件释放,实际上很有可能内存泄漏
构造函数也不好
两个LoadPEFile
整成析构函数要好得多
修改后的
BOOL LPEFile::LoadPEFile(char *lpFilename)
{
HANDLE hFile;
HANDLE hMapping;
LPVOID ImageBase;
pstMapFile=new MAP_FILE_STRUCT;
bLoadStact=LFILE_FROM_FILE;
hFile=CreateFile(lpFilename,GENERIC_READ/*|GENERIC_WRITE*/,FILE_SHARE_READ,NULL,OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile==INVALID_HANDLE_VALUE)
{
DWORD dwError = GetLastError();
return FALSE;
}
pstMapFile->dwFileSize=GetFileSize(hFile,NULL);
hMapping=CreateFileMapping(hFile,NULL,PAGE_READONLY,0,pstMapFile->dwFileSize,NULL);
if (hMapping==INVALID_HANDLE_VALUE)
{
CloseHandle(hFile);
return FALSE;
}
ImageBase=MapViewOfFile(hMapping,FILE_MAP_READ,0,0,pstMapFile->dwFileSize);
if (ImageBase==NULL)
{
CloseHandle(hFile);
CloseHandle(hMapping);
return FALSE;
}
pstMapFile->hFile=hFile;
pstMapFile->hMapping=hMapping;
pstMapFile->ImageBase=ImageBase;
return TRUE;
}
我看到这个类没有任何写操作,为何都要WRITE权限,我要解析自身呢?
总之,今天我用的时候改了很多才勉强能用;
|
能力值:
( LV2,RANK:10 )
|
-
-
43 楼
看上去很有用,学习一下,,
|
能力值:
( LV5,RANK:70 )
|
-
-
44 楼
谢谢关注,也谢谢修复。
|
能力值:
( LV2,RANK:10 )
|
-
-
45 楼
请教一下,你说开源加壳代码已经很多了??除了你的教程bambam 还有哪些C++的开源加壳代码啊?
|
能力值:
( LV5,RANK:70 )
|
-
-
46 楼
你看雪学院找啊,还有看雪论坛里,好多的,我的就是个入门的,说明原理的。
|