【smc代码示例】

编程入门 行业动态 更新时间:2024-10-13 02:20:47

【smc代码<a href=https://www.elefans.com/category/jswz/34/1770116.html style=示例】"/>

【smc代码示例】

smc(self-modifyingcode)动态代码加密技术,指通过修改代码或数据,阻止别人直接静态分析,然后在动态运行程序时对代码进行解密,达到程序正常运行的效果

代码:加密解密4 (17.4)

try{_asm inc eax // 在十六进制工具中对应0x40  _asm dec eax // 在十六进制工具中对应0x48begindecrypt:...........enddecrypt:_asm inc eax // 在十六进制工具中对应0x40  _asm dec eax // 在十六进制工具中对应0x48return TRUE;}catch (...){MessageBoxA(NULL, TEXT("请注册,以获得完整的功能 !"), TEXT("提示"), 0);Decrypt(ptr, Size, k);//如注册码不正确,则必须得再次调用Decrypt()将address1和address2之间数据还原return FALSE;}
void Decrypt(DWORD* pData, DWORD Size, DWORD value)
{//首先要做的是改变这一块虚拟内存的内存保护状态,以便可以自由存取代码MEMORY_BASIC_INFORMATION mbi_thunk;//查询页信息VirtualQuery(pData, &mbi_thunk, sizeof(MEMORY_BASIC_INFORMATION));//改变页保护属性为读写。VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk.RegionSize, PAGE_READWRITE, &mbi_thunk.Protect);Size = Size / 0x4; //对数据共需要异或的次数//解密begindecrypt与enddecrypt标签处的数据while (Size--){*pData = (*pData) ^ value;pData++;}//恢复页的原保护属性。DWORD dwOldProtect;VirtualProtect(mbi_thunk.BaseAddress, mbi_thunk.RegionSize, mbi_thunk.Protect, &dwOldProtect);}

更多推荐

【smc代码示例】

本文发布于:2024-02-06 13:51:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1749626.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:示例   代码   smc

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!