Windows API初练手 -- 疯狂写文件代码
警告:恶作剧软件,慎用!仅供初学者研究代码所用!!!
提示:默认文件创建目录在"D:\test",如果需要使用的话请自行更改目录。
1. Windows API 版本 (调用系统函数,速度较快)
#include <cstdio>
#include <cstdlib>
#include <windows.h>
#include <iostream>
#include <string.h>
using namespace std;
#define CREATE_FILE_NUM 5
#pragma comment(lib,"ws2_32")
int main(void)
{
char path[255] = "\0"; //文件路径配置
char stuff_str[255] = "\0"; //文件写入内容
char fileName[255] = "\0"; //文件名
HANDLE hfile = NULL; //文件句柄
DWORD count; //记录写入函数返回的成功字符数
strcat(stuff_str,"------PeterZheng------");
for (int i = 0 ; i < CREATE_FILE_NUM ; i++)
{
memset(path,0x00,255);
memset(fileName,0x00,255);
strcat(path,"D:\\test"); //文件填充目录
wsprintf(fileName,"\\%d.txt",i);
strcat(path,fileName);
hfile = CreateFile(path,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); //打开文件
if (hfile == INVALID_HANDLE_VALUE) //异常处理
{
continue;
}
WriteFile(hfile,&stuff_str,sizeof(stuff_str),&count,NULL); //写文件
CloseHandle(hfile); //关句柄
}
printf("OK");
return 0;
}
2. C语言内部函数版本(c语言内部对系统函数做了封装,调用简单,但速度相对较慢,功能较少)
#include <cstdio>
#include <cstdlib>
#include <windows.h>
#include <iostream>
#include <string.h>
using namespace std;
#define CREATE_FILE_NUM 5
#pragma comment(lib,"ws2_32")
int main(void)
{
int count = 0;
FILE *fp = NULL;
char path[255] = "\0";
char fileName[255] = "\0";
char stuff_str[255] = "------PeterZheng------";
for (int i = 0 ; i < CREATE_FILE_NUM ; i++)
{
strcat(path,"D:\\test\\");
wsprintf(fileName,"%d.txt",i);
strcat(path,fileName);
printf("%s\n",path);
fp = fopen(path,"w+");
fwrite(stuff_str,sizeof(stuff_str),1,fp);
memset(path,0x00,255);
}
fclose(fp);
return 0;
}
Windows API初练手 -- 疯狂写文件代码的更多相关文章
- Windows PE变形练手1-用PE自己的机器码修改自己的逻辑
PE变形练手1-用PE自己的机器码修改自己的逻辑 就是找一个PE文件,用自己的部分代码部分覆盖或者而修改自己另一个代码部分的补丁姿势(现实中使用很少,极少数破解可以用到.这次例子目的是了解PE). 第 ...
- Windows PE变形练手3-把通用模板机器码直接覆盖目标PE
把通用模板机器码直覆盖目标PE 这个地方真是尝试了好久,遇到很多坑点,Win PE那本书上的东西有点不够,也就直接写书上的例子会发现很多地方不是说的那样,里面提供的信息太少了,就比如里面并没有提被注入 ...
- Windows PE变形练手2-开发一套自己的PE嵌入模板
PE嵌入模板 编写一段代码,生成一个已经处理过重定位信息,同时所有的内容都在代码段里,并且没有导入表的PE程序,把这个程序嵌入到其他PE的相关位置,能够独立的运行,接下来是整理了2个模板,一个是Hel ...
- 使用Windows api 获得系统时间并生成文件夹
// 使用window api 获得系统时间 // 生成 #include "stdafx.h" #include <Windows.h> #include <d ...
- Golang初练手-多线程网站路径爆破
以前用Python写过这个工具,前两天看了golang的基础,就想着用这个语言把这个工具重写一遍 先放张图 用法 Example : Buster.exe -u=https://www.baidu.c ...
- Selenium_WebDriver登录模拟鼠标移动切换窗体等操作练习(cssSelector初练手)_Java
cssSelector 据说cssSelector比xpath快. 所以,有固定ID属性的页面元素用By.id或者By.cssSelector("#id属性值")来找,有class ...
- 【HDFS API编程】图解客户端写文件到HDFS的流程
- 用 Windows Live Writer 和 SyntaxHighlighter 插件写高亮代码
博客园内置支持SyntaxHighlighter代码着色,代码着色语法:<pre class='brush:编程语言'>代码</pre>. 需要注意的是:如何你使用Syntax ...
- 练手小游戏(代码篇之敌人AI
诶呀~又没有更新微博,去拔牙了,疼死了,休息了几天过来接着写代码~ 首先是Base.写了一个框架,照别人扒的. Base分三部分,AILocomotion(AI移动),Steering(行为基类),V ...
随机推荐
- 七. SpringCloud服务配置
1. SpringCloud Config概述 1.1 分布式系统面临的配置问题 微服务意味着要将单体应用中的业务拆分成一个一个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务.由于每个服务 ...
- Linux安全模型中的3A
3A Authentication : 认证 验证用户身份 Authorization : 授权 不同用户设置不同权限 Accouting | Audition : 审计 Linux 验证用户身份 U ...
- Fedora一键安装NVIDIA显卡驱动Fedora28+
这是一篇以前写的文章,写在CSDN的,现在不想使用CSDN了,就把笔记写在了博客源,后续考虑建立自己的博客,每一个CRUD程序员都想建立自己的博客吧,我猜是的 进入正题 rpm fusion源包含Nv ...
- C# 基础 - Json 之间的转换
这里举例两种方式. 1. Newtonsoft.Json.JsonConvert 需要引用外部的 Newtonsoft.Json.dll /// <summary> /// 将json字符 ...
- polay计数原理
公式: Burnside引理: 1/|G|*(C(π1)+C(π2)+C(π3)+.....+C(πn)): C(π):指不同置换下的等价类数.例如π=(123)(3)(45)(6)(7),X={1, ...
- 攻防世界 reverse BabyXor
BabyXor 2019_UNCTF 查壳 脱壳 dump 脱壳后 IDA静态分析 int main_0() { void *v0; // eax int v1; // ST5C_4 char ...
- PTA 求链式表的表长
6-1 求链式表的表长 (10 分) 本题要求实现一个函数,求链式表的表长. 函数接口定义: int Length( List L ); 其中List结构定义如下: typedef struct ...
- 12、MyBatis教程之缓存
13.缓存 简介 1.什么是缓存 [ Cache ]? 存在内存中的临时数据. 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高 ...
- Powerful Number 筛学习笔记
Powerful Number 筛学习笔记 用途 \(Powerful\ number\) 筛可以用来求出一类积性函数的前缀和,最快可以达到根号复杂度. 实现 \(Powerful\ number\) ...
- Android 之 TableLayout 布局详解
TableLayout简介 •简介 Tablelayout 类以行和列的形式对控件进行管理,每一行为一个 TableRow 对象,或一个 View 控件. 当为 TableRow 对象时,可在 Tab ...