|
|
|
|
|
|
|
|
|
[求助]这是不是加了花指令
这种代码貌似不叫“花指令”的哦。 |
|
[求助]对程序进行内存镜像检验怎么实现?
简单的原理如上,希望对你有帮助! |
|
[求助]对程序进行内存镜像检验怎么实现?
/**************************************************************** 代码功能:对其它函数以及自身函数中的软断点(OD)进行检测 编写作者:Coderui 编写日期:2008年06月16日 编写语言:C/C++ 编译环境:VC++ 6.0 联系邮箱:coderui@163.com 作者博客:http://hi.baidu.com/coderui ****************************************************************/ void Software(); //声明 void Software_End(); //声明 //--------------------------检测其它函数--------------------------------- typedef void (*PTRProtected_Code_Start)(); typedef void (*PTRProtected_Code_End)(); PTRProtected_Code_Start pStart; PTRProtected_Code_End pEnd; //--------------------------检测其它函数--------------------------------- //--------------------------检测自己函数--------------------------------- typedef void (*PTRSoftware)(); typedef void (*PTRSoftware_End)(); PTRSoftware pSoftware; PTRSoftware_End pSoftware_End; //--------------------------检测自己函数--------------------------------- //--------------------------检测其它函数--------------------------------- void Protected_Code_Start() { CString one = L"第一个函数"; AfxMessageBox(one); _asm { // int 3; // mov eax,0xcc; } } void Protected_Code_End() { CString two = L"第二个函数"; AfxMessageBox(two); _asm { // int 3; } } //--------------------------检测其它函数--------------------------------- //--------------------------检测自己函数--------------------------------- void Software() { //编写作者:Coderui //----------检测其它函数---------- pStart = Protected_Code_Start; pEnd = Protected_Code_End; DWORD i; DWORD nSize = (DWORD)pEnd - (DWORD)pStart; BYTE *p = (BYTE*)Protected_Code_Start; for(i = 0; i < nSize; i++) { if(*p++ == 0xcc) { exit(0); } } //----------检测其它函数---------- //编写作者:Coderui //----------检测自己函数---------- pSoftware = Software; pSoftware_End = Software_End; DWORD j; DWORD nLen = (DWORD)pSoftware_End - (DWORD)pSoftware; BYTE *q = (BYTE*)pSoftware; for(j = 0; j < nLen; j++) { if((*q++ ^ 0x55) == 0x99)//0x99 == 0xCC XOR 0x55 { exit(0); } } //----------检测自己函数---------- } void Software_End() { CString three = L"第三个函数"; AfxMessageBox(three); _asm { // int 3; } } //--------------------------检测自己函数--------------------------------- |
|
[求助]对程序进行内存镜像检验怎么实现?
/**************************************************************** 代码功能:内存补丁(代码完整性)检测,带自检测功能 编写作者:Coderui 编写日期:2008年06月17日 编写语言:C/C++ 编译环境:VC++ 6.0 联系邮箱:coderui@163.com 作者博客:http://hi.baidu.com/coderui ****************************************************************/ void Software_Patching(); //声明 void Software_Patching_End(); //声明(在调用的后面出现,所以需要提前声明) //--------------------------检测其它函数--------------------------------- typedef void (*PTRProtected_Code_Start)(); typedef void (*PTRProtected_Code_End)(); PTRProtected_Code_Start pStart; PTRProtected_Code_End pEnd; //--------------------------检测其它函数--------------------------------- //--------------------------检测自己函数--------------------------------- typedef void (*PTRSoftware_Patching)(); typedef void (*PTRSoftware_Patching_End)(); PTRSoftware_Patching pSoftware_Patching; PTRSoftware_Patching_End pSoftware_Patching_End; //--------------------------检测自己函数--------------------------------- //--------------------------检测其它函数--------------------------------- void Protected_Code_Start() { CString one = L"第一个函数"; AfxMessageBox(one); _asm { // int 3; // mov eax,0xcc; } } void Protected_Code_End() { CString two = L"第二个函数"; AfxMessageBox(two); _asm { int 3; } } //--------------------------检测其它函数--------------------------------- //--------------------------检测自己函数--------------------------------- //--------------------------检测自己函数--------------------------------- DWORD dwCorrectChecksum_me = 0xE2175AF4; void Software_Patching() { //编写作者:Coderui //----------检测其它函数---------- pStart = Protected_Code_Start; pEnd = Protected_Code_End; DWORD nSize = (DWORD)pEnd - (DWORD)pStart; DWORD dwCorrectChecksum = 0x1F5AE92F; _asm { mov esi,pStart; mov ecx,nSize; xor eax,eax; checksum_loop: movzx ebx,byte ptr [esi]; add eax,ebx; rol eax,1; inc esi; loop checksum_loop; cmp eax,dword ptr [dwCorrectChecksum]; je Coderui; push 0x0; call [exit]; Coderui: } //----------检测其它函数---------- //编写作者:Coderui //----------检测自己函数---------- pSoftware_Patching = Software_Patching; pSoftware_Patching_End = Software_Patching_End; DWORD nLen = (DWORD)pSoftware_Patching_End - (DWORD)pSoftware_Patching; _asm { mov esi,pSoftware_Patching; mov ecx,nLen; xor eax,eax; checksum_me_loop: movzx ebx,byte ptr [esi]; add eax,ebx; rol eax,1; inc esi; loop checksum_me_loop; cmp eax,dword ptr [dwCorrectChecksum_me]; je Coderui_me; push 0x0; call [exit]; Coderui_me: } //----------检测自己函数----------*/ } void Software_Patching_End() { CString four = L"第四个函数"; AfxMessageBox(four); _asm { // int 3; } } //--------------------------检测自己函数--------------------------------- |
|
|
|
[求助]Windows如何识别系统DLL的版本?
系统的“文件保护”程序估计也是用HOOK技术实现的。 替换系统文件的病毒一般都是驱动级的,比如“机器狗病毒”,它是利用磁盘过滤驱动自己去挂接的IO,然后读写磁盘数据的。 系统的“文件保护”程序HOOK的只是高层( ring3)API,只有调用这些API时才会触发“文件保护”程序(默认设置),如果调用没被HOOK到的API(如ring0 API),那么“文件保护”程序就不起作用了。 “文件保护”程序对系统文件的检测有多种方式,注册表中可以设置。如被动、主动、自动等。 |
|
[求助]求出现NO-KEY的软件破解思路
需要知道KEY的设计原理,知道了原理后去反推就可以了。 |
|
[建议]大学毕业,开始工作
貌似没正规公司招破解的员工吧?呵呵! |
|
[求助]自校验的实现
要是磁盘文件自效验的话,就是把自己OPEN开,把关键地方的静态代码读一遍算个值进行对比就行了(需要对比的值加密存放)。不过很好破,技术含量一般。 |
|
[求助]自校验的实现
/**************************************************************** 代码功能:对其它函数以及自身函数中的软断点(OD)进行检测 编写作者:Coderui 编写日期:2008年06月16日 编写语言:C/C++ 编译环境:VC++ 6.0 联系邮箱:coderui@163.com 作者博客:http://hi.baidu.com/coderui ****************************************************************/ void Software(); //声明 void Software_End(); //声明 //--------------------------检测其它函数--------------------------------- typedef void (*PTRProtected_Code_Start)(); typedef void (*PTRProtected_Code_End)(); PTRProtected_Code_Start pStart; PTRProtected_Code_End pEnd; //--------------------------检测其它函数--------------------------------- //--------------------------检测自己函数--------------------------------- typedef void (*PTRSoftware)(); typedef void (*PTRSoftware_End)(); PTRSoftware pSoftware; PTRSoftware_End pSoftware_End; //--------------------------检测自己函数--------------------------------- //--------------------------检测其它函数--------------------------------- void Protected_Code_Start() { CString one = L"第一个函数"; AfxMessageBox(one); _asm { // int 3; // mov eax,0xcc; } } void Protected_Code_End() { CString two = L"第二个函数"; AfxMessageBox(two); _asm { // int 3; } } //--------------------------检测其它函数--------------------------------- //--------------------------检测自己函数--------------------------------- void Software() { //编写作者:Coderui //----------检测其它函数---------- pStart = Protected_Code_Start; pEnd = Protected_Code_End; DWORD i; DWORD nSize = (DWORD)pEnd - (DWORD)pStart; BYTE *p = (BYTE*)Protected_Code_Start; for(i = 0; i < nSize; i++) { if(*p++ == 0xcc) { exit(0); } } //----------检测其它函数---------- //编写作者:Coderui //----------检测自己函数---------- pSoftware = Software; pSoftware_End = Software_End; DWORD j; DWORD nLen = (DWORD)pSoftware_End - (DWORD)pSoftware; BYTE *q = (BYTE*)pSoftware; for(j = 0; j < nLen; j++) { if((*q++ ^ 0x55) == 0x99)//0x99 == 0xCC XOR 0x55 { exit(0); } } //----------检测自己函数---------- } void Software_End() { CString three = L"第三个函数"; AfxMessageBox(three); _asm { // int 3; } } //--------------------------检测自己函数--------------------------------- |
|
[求助]自校验的实现
/**************************************************************** 代码功能:内存补丁(代码完整性)检测,带自检测功能 编写作者:Coderui 编写日期:2008年06月17日 编写语言:C/C++ 编译环境:VC++ 6.0 联系邮箱:coderui@163.com 作者博客:http://hi.baidu.com/coderui ****************************************************************/ void Software_Patching(); //声明 void Software_Patching_End(); //声明(在调用的后面出现,所以需要提前声明) //--------------------------检测其它函数--------------------------------- typedef void (*PTRProtected_Code_Start)(); typedef void (*PTRProtected_Code_End)(); PTRProtected_Code_Start pStart; PTRProtected_Code_End pEnd; //--------------------------检测其它函数--------------------------------- //--------------------------检测自己函数--------------------------------- typedef void (*PTRSoftware_Patching)(); typedef void (*PTRSoftware_Patching_End)(); PTRSoftware_Patching pSoftware_Patching; PTRSoftware_Patching_End pSoftware_Patching_End; //--------------------------检测自己函数--------------------------------- //--------------------------检测其它函数--------------------------------- void Protected_Code_Start() { CString one = L"第一个函数"; AfxMessageBox(one); _asm { // int 3; // mov eax,0xcc; } } void Protected_Code_End() { CString two = L"第二个函数"; AfxMessageBox(two); _asm { int 3; } } //--------------------------检测其它函数--------------------------------- //--------------------------检测自己函数--------------------------------- //--------------------------检测自己函数--------------------------------- DWORD dwCorrectChecksum_me = 0xE2175AF4; void Software_Patching() { //编写作者:Coderui //----------检测其它函数---------- pStart = Protected_Code_Start; pEnd = Protected_Code_End; DWORD nSize = (DWORD)pEnd - (DWORD)pStart; DWORD dwCorrectChecksum = 0x1F5AE92F; _asm { mov esi,pStart; mov ecx,nSize; xor eax,eax; checksum_loop: movzx ebx,byte ptr [esi]; add eax,ebx; rol eax,1; inc esi; loop checksum_loop; cmp eax,dword ptr [dwCorrectChecksum]; je Coderui; push 0x0; call [exit]; Coderui: } //----------检测其它函数---------- //编写作者:Coderui //----------检测自己函数---------- pSoftware_Patching = Software_Patching; pSoftware_Patching_End = Software_Patching_End; DWORD nLen = (DWORD)pSoftware_Patching_End - (DWORD)pSoftware_Patching; _asm { mov esi,pSoftware_Patching; mov ecx,nLen; xor eax,eax; checksum_me_loop: movzx ebx,byte ptr [esi]; add eax,ebx; rol eax,1; inc esi; loop checksum_me_loop; cmp eax,dword ptr [dwCorrectChecksum_me]; je Coderui_me; push 0x0; call [exit]; Coderui_me: } //----------检测自己函数----------*/ } void Software_Patching_End() { CString four = L"第四个函数"; AfxMessageBox(four); _asm { // int 3; } } //--------------------------检测自己函数--------------------------------- |
|
[求助]这是什么壳,怎样退壳?
这个。。。。。偶不知道怎么下载!! |
|
[求助]Windows如何识别系统DLL的版本?
这个不知道,Windows(XP)好象不识别DLL的版本吧? 它好象只有个“系统文件保护”,文件被改或被删除时会自动还原。如果备份文件也不存在或也被改的话,系统会提示“文件丢失,请插入光盘修复”。 判断系统文件是否被修改用的应该是MD5一类的效验吧。 |
|
[求助]请问如何快速学习编程
先把基础学好,然后看别人的代码,接着改别人的代码来用,最近就可以自己写了。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值