首页
社区
课程
招聘
[求助]如何实现内存中代码的执行
发表于: 2008-6-20 17:03 3162

[求助]如何实现内存中代码的执行

2008-6-20 17:03
3162
有一个函数体
int CalcRegCode(const char *pszUserName, char *pCodeBuf, int nbufSize)
{
	if(!pszUserName || !pCodeBuf)
		return 0;

	int nLength = strlen(pszUserName);
	if(nLength <= 0 || nLength >= nbufSize)
		return 0;

	if(::IsBadReadPtr(pszUserName,nLength) || ::IsBadWritePtr(pCodeBuf,nbufSize))
		return 0;

	for(int i = 0; i < nLength; i++)
		pCodeBuf[i] = pszUserName[i] + 1;//为了演示,仅仅是作个移位变换

	pCodeBuf[nLength] = 0;

	return nLength;
}

void CalcRegCodeEnd()
{
}

//异或函数
static bool XorBlock(void *pStartAddr, int nLength, unsigned char cMask)
{
	if(!pStartAddr || nLength <= 0)
		return false;

	unsigned char *p = (unsigned char *)pStartAddr;
	for(int i = 0; i < nLength; i++)
	{
		*p++ ^= cMask;
	}

	return true;
}

int nFuncSize = ((char *)CalcRegCodeEnd - (char *)CalcRegCode);


想将CalcRegCode中的代码与0x5A异或,存放到内存buff中
再将其与0x5A异或存放到buff2中
最后在程序中直接调用buff2中的代码
应该如何实现?
谢谢

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回