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 ...
随机推荐
- HDOJ-1024(动态规划+滚动数组)
Max Sum Plus Plus HDOJ-1024 动态转移方程:dp[i][j]=max(dp[i][j-1]+a[j],max(dp[i-1][k])+a[j]) (0<k<j) ...
- 数据库事务 ACID属性、数据库并发问题和四种隔离级别
数据库事务 ACID属性.数据库并发问题和四种隔离级别 数据库事务 数据库事务是一组逻辑操作单元,使数据从一种状态变换到另一种状态 一组逻辑操作单元:一个或多个DML操作 事务处理原则 保证所有事务都 ...
- hibernate 的一对多关联关系映射配置
hibernate 是操作实体类: 表是一对多的关系,当创建这2个实体的时候 在一的一方定义一个多的一方的集合 在多的一方定义一个一的一方的对象 表是多对多的关系,当创建这2个实体的时候 在互相中都有 ...
- Python-sendgrid邮箱库的使用
Python中sendgrid库使用 #帮助文档https://github.com/sendgrid/sendgrid-python https://sendgrid.com/docs/ui/acc ...
- P2142_高精度减法(JAVA语言)
思路:BigInteger double kill! //四行搞定 题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输 ...
- 一文教你搞懂 Go 中栈操作
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/513 本文使用的go的源码15.7 知识点 LInux 进程在内存布 ...
- [GDKOI2021] 普及组 Day2 总结
[ G D K O I 2021 ] 普 及 组 D a y 2 总 结 [GDKOI2021] 普及组 Day2 总结 [GDKOI2021]普及组Day2总结 时间安排和昨天的GDKOI2021 ...
- 重磅!解锁Apache Flink读写Apache Hudi新姿势
感谢阿里云 Blink 团队Danny Chan的投稿及完善Flink与Hudi集成工作. 1. 背景 Apache Hudi 是目前最流行的数据湖解决方案之一,Data Lake Analytics ...
- 北航OO第一单元作业总结(1.1~1.3)
经过了三次作业之后,OO第一单元告一段落,作为一个蒟蒻,我初步了解了面向对象的编程思想,并将所学内容用于实践. 一.第一次作业 1.架构分析 本次作业需要完成的任务为简单多项式导函数的求解.表达式仅支 ...
- 后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)
1 前言&概述 这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug. 本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到 ...