首页
社区
课程
招聘
[求助] 内存CALL过程被修改了,改怎么弄?
发表于: 2016-9-7 11:57 4489

[求助] 内存CALL过程被修改了,改怎么弄?

2016-9-7 11:57
4489
最近写了个程序的DLL库,供其调用。
发布后,遭人破解,将我一些关键call的过程,nop了,或者填充无效的值。
是call过程,已经进入了call

我有个想法,在程序运行后,就保存一次代码段,每个多久效验一次代码段是否被修改过,
有没有好办法?

怎么保存代码段?
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 54
活跃值: (122)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
直接crc校验就得了
2016-9-7 12:36
0
雪    币: 772
活跃值: (987)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
求方法!!
2016-9-7 12:38
0
雪    币: 3502
活跃值: (1493)
能力值: ( LV15,RANK:1057 )
在线值:
发帖
回帖
粉丝
4
然后crc校验也被人破了
2016-9-7 13:19
0
雪    币: 12848
活跃值: (9133)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
5
加vmp或者se壳,勾上内存保护
2016-9-7 13:50
0
雪    币: 12
活跃值: (418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
ls+1, 或者自己计算代码段crc.. 互相蹂躏
2016-9-7 15:34
0
雪    币: 1205
活跃值: (988)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
DllMain加载事件时,取代码段,分段校验,最后再VMP、SE强壳吧~~

void CMemoryProtect::LoadMemory()
{
	DWORD	dwImageSize = 0;
	HMODULE	hModule = gGetModuleHandle(MOD_MYDLL);
	if(hModule == NULL)
		return;

	dwImageSize = GetCodeSize(hModule);
	if(dwImageSize == 0)
	{
		exit(0)
		return;
	}
	
	for(DWORD i=0;i<(dwImageSize/1024);i++)
	{
		AddItem((void*)((0x1000+(DWORD)hModule)+1024*i),1024);
	}
}
2016-9-7 16:13
0
雪    币: 18
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
随便加个强壳 估计他们破的时间 可以够自己写一个
2016-9-7 19:44
0
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
加个VMP
2016-9-7 21:31
0
雪    币: 150
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
你再去调用自己的CALL,看返回是破解修改后的值,那就可以暗箱操作了
2016-9-8 11:06
0
游客
登录 | 注册 方可回帖
返回
//