简单的软件加密
2007-09-27 13:30
281 查看
这段时间给公司做了一套软件,要发布的时候,被公司告知要写加密程序,因为对这个领域不数太了解,我就用序列号验证的方法在程序中做了简单的验证,其中的加了一点花指令(初级的)。下面的代码是在程序启动时做的验证方法,我帖出来,大家帮吗看看这样做可不可以,还有没更好的方法,因为都是初级的,大家多指教:
char* msg = NULL;
__asm...{
lea eax, DWORD PTR [errormsgok]
mov [msg],eax
}
// 函数调用,返回代码直接写入eax
TestKey();
__asm...{
push eax
cmp eax, 0x0
// 注册跳转
jz normal
// 未注册跳转
lea eax, DWORD PTR [errormsgerr]
mov [msg],eax
jnz abnormal
// 以下防止一般的反汇编,写入花指令
_emit 0Ebh
// 以下防止一般的反汇编程序查找字符串引用
errormsgok: // 字符串: "OK!"
_emit 0x4f
_emit 0x4b
_emit 0x21
_emit 0x00
errormsgerr: // 字符串:"未注册用户!"
_emit 0xCE
_emit 0xB4
_emit 0xD7
_emit 0xA2
_emit 0xB2
_emit 0xE1
_emit 0xD3
_emit 0xC3
_emit 0xBB
_emit 0xA7
_emit 0xA3
_emit 0xA1
_emit 0x00
}
abnormal:
// 平衡堆栈
__asm...{
pop eax
}
AfxMessageBox(msg);
return FALSE;
normal:
// 平衡堆栈
__asm...{
pop eax
}
AfxMessageBox(msg);
弹出对话框引用的字符串是直接写在程序的代码段的。
char* msg = NULL;
__asm...{
lea eax, DWORD PTR [errormsgok]
mov [msg],eax
}
// 函数调用,返回代码直接写入eax
TestKey();
__asm...{
push eax
cmp eax, 0x0
// 注册跳转
jz normal
// 未注册跳转
lea eax, DWORD PTR [errormsgerr]
mov [msg],eax
jnz abnormal
// 以下防止一般的反汇编,写入花指令
_emit 0Ebh
// 以下防止一般的反汇编程序查找字符串引用
errormsgok: // 字符串: "OK!"
_emit 0x4f
_emit 0x4b
_emit 0x21
_emit 0x00
errormsgerr: // 字符串:"未注册用户!"
_emit 0xCE
_emit 0xB4
_emit 0xD7
_emit 0xA2
_emit 0xB2
_emit 0xE1
_emit 0xD3
_emit 0xC3
_emit 0xBB
_emit 0xA7
_emit 0xA3
_emit 0xA1
_emit 0x00
}
abnormal:
// 平衡堆栈
__asm...{
pop eax
}
AfxMessageBox(msg);
return FALSE;
normal:
// 平衡堆栈
__asm...{
pop eax
}
AfxMessageBox(msg);
弹出对话框引用的字符串是直接写在程序的代码段的。
相关文章推荐
- 给大家推荐一个文件加密的软件,非常简单好好用
- 使用WinCrypt进行简单的软件对称加密
- 【文件保护器 V5.5】方便&简单&好用的加密软件
- pgp加密软件的简单使用
- 简单适用的密码加密
- PGPDesktopWin32-10.2.0 加密与签名-软件实验8
- java加密解密___des的简单实现
- 采用开源软件搭建WebGIS系统(2)最简单的Demo
- “飞花令”APP(简单的收索软件)
- 成熟的软件组件都是老板用大把、大把的钱堆出来烧出来的,以最简单的数据库访问组件为例
- 用组策略发布软件的简单解决办法
- 一个简单的php加密解密函数,动态加密
- 180217 加密-专用加密软件(3)
- [wp7软件]wp7~~相册加密软件~~集合贴~~
- Asp.Net Core 简单的使用加密的Cookie保存用户状态
- UVa 1339 简单加密(encrypt)
- 视频制作需要软件及简单流程
- 保护PC程序的高速软件加密锁及其自定义算法的实现
- c++ byte和字符串简单加密变形