首页
社区
课程
招聘
[分享]学习时写的壳代码
发表于: 2008-11-22 22:58 12393

[分享]学习时写的壳代码

2008-11-22 22:58
12393

学习时写的壳代码,太简陋了。而且还是个半成品。
高手飘过~~~~~
很多参考过看雪的内容,回馈给看雪。
希望能对像我这样的初学者有所帮助。
可以提出您友善的意见。
千万别打击小弟幼小的心灵。

加密代码段:

	file_opt.hFile=CreateFile(szFileName,GENERIC_READ | GENERIC_WRITE,
		FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

	FileSize=GetFileSize(file_opt.hFile,NULL);

	ReadFile(file_opt.hFile,&DosHdr,sizeof(IMAGE_DOS_HEADER),&NumRW,0);

	SetFilePointer(file_opt.hFile,DosHdr.e_lfanew,0,FILE_BEGIN);
	ReadFile(file_opt.hFile,&NtHdr,sizeof(IMAGE_NT_HEADERS),&NumRW,0);

	SetFilePointer(file_opt.hFile,
		(DosHdr.e_lfanew+sizeof(IMAGE_NT_HEADERS)),
		0,
		FILE_BEGIN);
	ReadFile(file_opt.hFile,&SecHdr,sizeof(IMAGE_SECTION_HEADER),&NumRW,0);

	//::MessageBox(NULL,(const char *)SecHdr.Name,NULL,MB_OK);
	if(!lstrcmp((const char *)SecHdr.Name,".text"))
	{
		SecHdr.Characteristics|=IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE;	//修改.text的属性
		SetFilePointer(file_opt.hFile,
			(DosHdr.e_lfanew+sizeof(IMAGE_NT_HEADERS)),
			0,
			FILE_BEGIN);
		WriteFile(file_opt.hFile,&SecHdr,sizeof(IMAGE_SECTION_HEADER),&NumRW,0);
		SetFilePointer(file_opt.hFile,SecHdr.PointerToRawData,0,FILE_BEGIN);
		TextSize=SecHdr.SizeOfRawData;
		pc=new char[TextSize];
		memset((void *)pc,0,TextSize);
		ReadFile(file_opt.hFile,pc,TextSize,&NumRW,0);
		p=pc;
		
		//加密部分与0x13进行异或
		for(i=0;i<TextSize;i++)
		{
			*p^=0x21;
			SetFilePointer(file_opt.hFile,SecHdr.PointerToRawData+i,0,FILE_BEGIN);
			WriteFile(file_opt.hFile,p,1,&NumRW,0);
			p++;
		}
		InsertMsg("成功!代码加密成功!");

		delete [] pc;
	}
	else
	{
		InsertMsg("失败!加壳失败!");
	}

	CloseHandle(file_opt.hFile);

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (10)
雪    币: 147
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢LZ,正需要~~学习学习
2008-11-25 00:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢LZ,正需要~~学习学习
2008-11-25 15:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢楼主,正需要这方面的东西~~学习学习
2008-11-26 17:51
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
thank you
2010-12-9 01:41
0
雪    币: 561
活跃值: (124)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
收下回去看!!^_^
2010-12-21 14:25
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习了!!谢谢楼主分享!!
2010-12-25 22:31
0
雪    币: 4554
活跃值: (2186)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
学习了额!!!!!!!
2011-1-6 14:27
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这些都懂  但是我不清楚的是加了壳之后程序运行时是怎样加载的
2011-3-29 15:42
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不错,能写出简单的,以后就能写出复杂的
2011-4-1 23:37
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
收藏学习,谢了
2011-5-11 09:46
0
游客
登录 | 注册 方可回帖
返回
//