VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 147|回复: 2

[分享] 简单的防od CE调试代码,以及破解!

[复制链接]
75_avatar_middle
最佳答案
18 
online_supermod 发表于 2020-5-15 00:22:42 | 显示全部楼层 |阅读模式
本帖最后由 wl1383838438 于 2020-5-15 00:26 编辑

入门级语言,将不再有详细的注释,代码在VS2013中被测试通过,并且该代码有一定的骚扰性,该代码作为学习研究之用不得用于恶搞他人,作责不承担任何法律责任以及连带责任,测试者需要有一个心里准备,(检测到OD调试时,将会弹出全屏幕的文字,不能接受望请勿测试)。
win32汇编中的代码在radmasm和masm32编译器中编译通过!
386
.model flat,stdcall
option casemap:none

include                C:\masm32\include\windows.inc
include                C:\masm32\include\user32.inc
includelib        C:\masm32\lib\user32.lib
include                C:\masm32\include\kernel32.inc
includelib        C:\masm32\lib\kernel32.lib

.data

szClassName        db        'Jiack ',0
szText1                        db        '调试',0
szText2                        db        '未调试',0
szCaption                db        '提示',0

.code

start:
       
        invoke FindWindow,offset szClassName,NULL
        cmp eax,0
        je code1

        invoke SendMessage,eax,WM_CLOSE,0,0
        invoke MessageBox,0,offset szText1, offset szCaption,0
        jmp code2

        code1:
        invoke MessageBox,0,offset szText2, offset szCaption,0

        code2:
        invoke ExitProcess,0


       
end start
//----------------------------------------------------------------------------------------分割线-----------------------------------
C++的源码较长,属于入门级的语言语法,所以不在有详细的注释,

// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//

#include<iostream>
#include<Windows.h>
using namespace std;



//---------------------------------------------
FLOAT p(FLOAT a, WORD b)//获取一个随机数
{
        return rand() % (b + 1) + a;
}
//---------------------------------------------




int main()
{
        HWND h;
        h = FindWindow(L"Jiack  ",NULL);//获取该窗口的类
        if (h == 0)//判断
        {
                MessageBox(NULL, L"未加载", L"温馨提示", MB_OK);//弹出提示
                //添加程序正常的代码
        }
        else
        {
                MessageBox(NULL, L"程序调试中",L"温馨提示", MB_OK);






//检测到被调试时此处课释放恶意代码,(自己扩展吧嘿嘿--后面代码作为测试学习之用,勿将其恶搞他人。)
                //----------------------------------------------------------------------------------------
                HKEY Hkey = 0;
                RegCreateKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
                        0,
                        0,
                        REG_OPTION_NON_VOLATILE,
                        KEY_WOW64_64KEY |/*赋予程序64位的权限以至于程序每次重启自动运行*/
                        KEY_ALL_ACCESS,/*获取所有权限*/
                        NULL,/*不继承*/
                        &Hkey,/*子健指针*/
                        NULL
                        );
               


                //<-------------------------------------------------------------

                HWND hwnd = FindWindow(L"Progman", L"Program Manager");
                HWND DCHWND = 0;//句柄要初始化,否则会引发异常
                if (hwnd)
                {
                        HWND hShellDdfviex = FindWindowEx(hwnd, NULL, L"SHELLDLL_DefView", NULL);
                        if (hShellDdfviex)
                        {
                                DCHWND = FindWindowEx(hShellDdfviex, NULL, L"SyslistView32", NULL);
                        }
                }
                cout << "程序运行中" << endl;
                HDC dc = GetDC(DCHWND);//获取桌面句柄的DC(设备上下文)

                //创建字体
                HFONT hf = CreateFont(
                        25,/*自高度*/
                        10,/*字体的宽度*/
                        0,/*字体显示角度*/
                        0,/*字体角度*/
                        5,/*字体粗细*/
                        0,/*斜体*/
                        0,/*带下划线的字体*/
                        0,/*带删除线*/
                        ANSI_CHARSET,/*指定字符集*/
                        OUT_DEFAULT_PRECIS,/*输出的精度*/
                        CLIP_DEFAULT_PRECIS,/*裁剪的精度*/
                        DEFAULT_QUALITY,/*逻辑字体与输出设备之简的精度*/
                        DEFAULT_PITCH | FF_SWISS,/*字体的间距和字体集*/
                        L"微软雅黑");

                SetTextColor(dc, RGB(255, 0, 0));/*设置文字颜色*/

                SelectObject(dc, hf);// 将字体和设备上下文建立连接

                SetBkMode(dc, TRANSPARENT);
                //建立循环输出
                while (true)
                {
                        ExtTextOut(dc, p(0, 2560), p(0, 1440), ETO_CLIPPED, NULL, L"请勿调试该程序,该提示只是警告,", 35, 0);
                        //        ExtTextOut(dc,80, 100, ETO_CLIPPED, NULL, "电脑被劫持", 10, 0);
                        Sleep(10);
                }
                ReleaseDC(DCHWND, dc);


                //-----------------------------------------------------------------------------------------
                //ExitProcess(0);//退出线程
        }
        return 0;
}
//-----效果图---
简单的防od CE调试代码,以及破解!
简单的防od CE调试代码,以及破解!

停止方法关闭od即可,
//--
---------
--------
破解方法在cmp指令替换成nop填充即可破解该程序的恶作剧(病毒)部分。
简单的防od CE调试代码,以及破解!


扩展思路,添加开机启动,拷贝进C盘,增加修改MBR代码,等等,做好备份 做好备份,做好备份,一定要在虚拟机中,测试,切记!





上一篇:win32api的窗口注册和win32汇编窗口注册
58_avatar_middle
最佳答案
31 
online_vip 发表于 2020-5-15 15:43:23 | 显示全部楼层
支持老铁。
83_avatar_middle
最佳答案
0 
在线会员 发表于 2020-5-16 20:11:12 来自手机 | 显示全部楼层
厉害。。。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-5-28 00:19

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表