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 ...
随机推荐
- 剑指 Offer 14- II. 剪绳子 II + 贪心 + 数论 + 快速幂
剑指 Offer 14- II. 剪绳子 II 题目链接 因为有取模的操作,动态规划中max不能用了,我们观察:正整数从1开始,但是1不能拆分成两个正整数之和,所以不能当输入. 2只能拆成 1+1,所 ...
- (数据科学学习手札110)Python+Dash快速web应用开发——静态部件篇(下)
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 这是我的系列教程Python+Dash快速web ...
- C#中事件流程的简单理解
C#中事件流程的简单理解 C#中事件基于委托,要理解事件要先理解委托,但是现在我还没想好怎么写委托,如果不懂委托可以先找找委托的文章 事件基于委托,为委托提供了一种发布/订阅机制 一上来就是这句话,很 ...
- Fastjson1.2.24RCE漏洞复现
Fastjson1.2.24RCE漏洞复现 环境搭建 这里用的Vulhub靶场 cd /vulhub/fastjson/1.2.24-rce docker-compose up -d 报错 ERROR ...
- 英语单词小程序插件 - EdictPlugin-LTS
1.插件引入 全局app.json配置 "plugins": { "edict-plugin": { "version": "1. ...
- MIMO OFDM 常用信号检测算法
MIMO OFDM 系统检测算法 1. 前言 MIMO的空分复用技术可以使得系统在系统带宽和发射带宽不变的情况下容易地获得空间分集增益和信道的容量增益.OFDM技术采用多个正交的子载波并行传输数据,使 ...
- Java学习历程记录(一)
一.类与对象 1.创建类 创建一个学生类.并且创造成员变量和方法 public class student{ String name: int age: public void study(参数列表) ...
- PTA 两个有序链表序列的合并
6-5 两个有序链表序列的合并 (15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L ...
- 使用 Android Studio 的日志工具 Log
•Log简介 Android中的日志工具类是Log,这个类中提供了5个方法来供我们打印日志: 1. $Log.v()$ 用于打印那些最为琐碎的,意义最小的日志信息 对应级别 verbose,是 And ...
- (5)MySQL进阶篇SQL优化(优化数据库对象)
1.概述 在数据库设计过程中,用户可能会经常遇到这种问题:是否应该把所有表都按照第三范式来设计?表里面的字段到底改设置为多大长度合适?这些问题虽然很小,但是如果设计不当则可能会给将来的应用带来很多的性 ...