首页
社区
课程
招聘
[求助]win32程序加密壳项目求解
发表于: 2020-5-14 18:06 3585

[求助]win32程序加密壳项目求解

2020-5-14 18:06
3585

程序想将一个filebuffer存盘,但是在win32下面出现c000005错误,调试一天,无果,感到很是奇怪,想请大神能帮一下,为什么会出错加密程序代码:
加密代码如下
VOID jiam()
{
void pshellbuffer=NULL;
void
pfilebuffer=NULL;
//取壳子路径
TCHAR filename[100];
memset(filename,0,100);
GetWindowText(wen1,filename,100);
//把壳子程序读到内存
DWORD filesize=peread(filename,&pshellbuffer);
//取文件路径
memset(filename,0,100);
GetWindowText(wen2,filename,100);
//将程序读到内存
DWORD filesize1=peread(filename,&pfilebuffer);
PIMAGE_DOS_HEADER pdos=NULL;
PIMAGE_FILE_HEADER pfile=NULL;
PIMAGE_OPTIONAL_HEADER32 poptional=NULL;
PIMAGE_SECTION_HEADER psection=NULL;
pdos=(PIMAGE_DOS_HEADER)pshellbuffer;
pfile=(PIMAGE_FILE_HEADER)((DWORD)pshellbuffer+pdos->e_lfanew+4);
poptional=(PIMAGE_OPTIONAL_HEADER32)((DWORD)pfile+20);
psection=(PIMAGE_SECTION_HEADER)((DWORD)poptional+pfile->SizeOfOptionalHeader);
psection=psection+pfile->NumberOfSections-1;
DWORD size=poptional->SizeOfImage;
char src=(char)(psection->PointerToRawData+(DWORD)pshellbuffer);
//加密程序
for(DWORD i=0;i<filesize1;i++)
{
BYTE key=51;
((char)pfilebuffer)[i]=((char)pfilebuffer)[i]^key;
}
memcpy((char)src,(char)pfilebuffer,filesize1);
//存盘
memtofile(pshellbuffer,filesize,outfile);
free(pfilebuffer);
free(pshellbuffer);
return;
}
pe读取代码
DWORD peread(char arr,void** pfilebuffer)
{
FILE
fp=NULL;
void filebuffer=NULL;
int filesize=0;
fp=fopen(arr,"rb");
if(!fp)
{
printf("文件读取失败!\n");
fclose(fp);
return 0;
}
fseek(fp,0,SEEK_END);
filesize=ftell(fp);
fseek(fp,0,SEEK_SET);
filebuffer=malloc(filesize);
if(!filebuffer)
{
printf("内存分配失败!\n");
fclose(fp);
return 0;
}
int n=fread(filebuffer,filesize,1,fp);
if(!n)
{
printf("内存读取失败!\n");
free(filebuffer);
fclose(fp);
return 0;
}
pfilebuffer=filebuffer;
filebuffer=NULL;
fclose(fp);
return filesize;
}
存盘代码
int memtofile(voidpnewbuffer,DWORD size,char lpfile)
{
FILE* fp=NULL;
fp=fopen(lpfile,"wb+");
int n=fwrite(pnewbuffer,size,1,fp);
if(!n)
{
return 0;
}
else
{
return 1;
}
} 代码错误截图


[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 1042
活跃值: (470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

区段属性改下,看错了,如果是被加壳出这个大概就是区段属性,这分明是你代码问题

最后于 2020-5-14 23:44 被Rookietp编辑 ,原因:
2020-5-14 23:43
0
雪    币: 927
活跃值: (1750)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
空指针啊,看看参数哪个赋空了
2020-5-15 10:21
0
雪    币: 1790
活跃值: (3524)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
DWORD peread(char arr,void** pfilebuffer)  函数里返回读取的文件内容,pfilebuffer=filebuffer错误了吧。 不应该是*pfilebuffer=filebuffer吗?
你没把指针返回回去,外面的pshellbuffer应该还是NULL.
2020-5-15 10:58
0
雪    币: 1150
活跃值: (239)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
拍拖 DWORD peread(char arr,void** pfilebuffer) 函数里返回读取的文件内容,pfilebuffer=filebuffer错误了吧。 不应该是*pfilebuffer ...
这是我复制的错误,不知怎么的,复制,会把有些*号给删掉,peread代码没问题,已经测试过几次了
2020-5-16 10:45
0
雪    币: 1150
活跃值: (239)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Rookietp 区段属性改下,看错了,如果是被加壳出这个大概就是区段属性,这分明是你代码问题
与区块无关,我测试了一下,就算把加密的那部分去掉,只是简单的把文件读到内存,然后再读出来到文件中,也是不行的,也是同样的错误
2020-5-16 10:47
0
雪    币: 1150
活跃值: (239)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
wuxiwudi 空指针啊,看看参数哪个赋空了
全看过,指针没有空的,不论是代码逻辑,还是单步调试,都没见错误的,所以不知道怎么回事
2020-5-16 10:48
0
雪    币: 1150
活跃值: (239)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
Tony_Stark 越界 或者空指针 返回值 加个if判断下 滴水3期的??
嗯嗯, 就是滴水三期的加密壳项目,我测试了一下,就算把加密的那部分去掉,只是简单的把文件读到内存,然后再读出来到文件中,也是不行的,大哥,你做过这个项目吗??求指导
2020-5-16 10:48
0
雪    币: 927
活跃值: (1750)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
学习小菜鸟 全看过,指针没有空的,不论是代码逻辑,还是单步调试,都没见错误的,所以不知道怎么回事
报错的内存展示就是空指针访问,你直接回溯栈看看再哪个位置调用的就知道怎么改了
2020-5-16 16:56
0
雪    币: 1150
活跃值: (239)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
wuxiwudi 报错的内存展示就是空指针访问,你直接回溯栈看看再哪个位置调用的就知道怎么改了
我调了,指针都不为空,甚至,缓冲区都不是空的,这个我也查了半天,但就是好好的,你可以看看我错误图片上面写的红色的字,我这个代码一字不改,在控制台下,完全没问题,但在win32就出现这个,如果是代码错误的话,控制台下也应该执行不起来啊
2020-5-16 17:54
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习小菜鸟 我调了,指针都不为空,甚至,缓冲区都不是空的,这个我也查了半天,但就是好好的,你可以看看我错误图片上面写的红色的字,我这个代码一字不改,在控制台下,完全没问题,但在win32就出现这个,如果是代码错误 ...
win32指的是gui吗?
2020-5-16 20:11
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
gui的代码呢?
2020-5-16 20:12
0
雪    币: 149
活跃值: (183)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
图片中断点上一行,memcpy第一个参数是dst,第二个参数是src,这里反了。
2020-5-21 21:25
0
游客
登录 | 注册 方可回帖
返回
//