滴水逆向 内存分配-文件读写 课后作业

注意事项:

发现win10的记事本文件不适用于下面的代码, 猜测可能需要DLL文件

因此本次使用不需要加载dll的"飞鸽传书"来实现

题目1)-将记事本的.exe文件读取到内存,并返回读取后在内存中的地址.  

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
BYTE* buffer = nullptr;
DWORD fileSize = 0;
void LoadToMemory() {char* road = "D:\\Ddisk\\goodThing\\fg.exe";//设置文件路径FILE *note = NULL;fopen_s(&note, road, "rb");//打开文件fseek(note, 0, SEEK_END);//将文件指针移到末端fileSize = ftell(note);//获取文件指针位置得知文件大小fseek(note, 0, SEEK_SET);//将文件指针移到开始位置buffer = (BYTE*)malloc(fileSize);//根据文件大小分配内存fread(buffer, 1, fileSize, note);//将文件指针指向的内容读取到内存中fclose(note);//关闭文件指针
}
int main() {LoadToMemory();printf("%x\n",);
}

题目2)-将内存中的数据存储到一个文件中,(.exe格式),然后双击打开,看是否能够使用 

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
BYTE* buffer = nullptr;
DWORD fileSize = 0;
void LoadToMemory() {char* road = "D:\\Ddisk\\goodThing\\fg.exe";//设置文件路径FILE *note = NULL;fopen_s(&note, road, "rb");//打开文件fseek(note, 0, SEEK_END);//将文件指针移到末端fileSize = ftell(note);//获取文件指针位置得知文件大小fseek(note, 0, SEEK_SET);//将文件指针移到开始位置buffer = (BYTE*)malloc(fileSize);//根据文件大小分配内存fread(buffer, 1, fileSize, note);//将文件指针指向的内容读取到内存中fclose(note);//关闭文件指针
}
int main() {LoadToMemory();char* road = "D:\\Ddisk\\goodThing\\hello.exe";FILE *bomb = NULL;fopen_s(&bomb, road, "wb");size_t written = fwrite(buffer, 1, fileSize, bomb);fclose(bomb);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/3252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解密Java线程池源码

一、线程池中的保活和回收源码分析 1、线程池中线程的创建时机 1、核心线程创建时机 在研究线程池的源码前首先想一个问题 public class Main {public static void main(String[] args) {ThreadPoolExecutor executor new ThreadPoolExecutor(10, 20, 0l, TimeUnit.MILLIS…

从Linux角度具体理解程序翻译过程-----预处理、编译、汇编、链接

目录 前言&#xff1a; 翻译过程 1.预处理 2.编译 3.汇编 4.链接 Linux下对其理解&#xff1a; 1.预处理 拓展&#xff1a; Linux下文件信息&#xff1a; 文件类型&#xff1a; 硬链接数&#xff1a; 文件拥有者&#xff1a; 文件所属组&#xff1a; other&#x…

理财投资-认识期货

文章目录 一、什么是期货二、为啥要有期货三、为啥要有期货与现货相比 一、什么是期货 期货是一种金融衍生品&#xff0c;它指的是买卖双方在期货交易所内&#xff0c;按照规定格式&#xff0c;通过公开竞价的方式达成的&#xff0c;在未来某一特定的时间和地点&#xff0c;以…

Linux 修改远程默认端口-22

1 编辑sshd配置&#xff0c;修改默认的端口 vi /etc/ssh/sshd_config #添加新的端口 port 62222 ps&#xff1a;先添加新的端口&#xff0c;用新端口能远程登录后再注销22端口&#xff0c;防止修改有问题&#xff0c;导致22端口也不能远程登录 2 重启sshd /etc/init.d/sshd r…

区块链安全应用-------压力测试

基于已有的链进行测试&#xff08;build_chain默认建的链 四个节 点&#xff09;&#xff1a; 第一步&#xff1a;搭链 1. 安装依赖 在ubuntu操作系统中&#xff0c;操作步骤如下&#xff1a; sudo apt install -y openssl curl 2. 创建操作目录, 下载安装脚本 ## 创建操作…

3个比较不错的Linux云音乐应用程序整理

在现代音乐流媒体时代&#xff0c;基于云的音乐应用程序因其便利性和可访问性而变得非常流行。Linux 用户尤其寻求可靠且功能丰富的音乐播放器来无缝地享受他们喜爱的音乐。 在这里&#xff0c;我们探讨了三个最好的基于云的音乐应用程序&#xff0c;每个应用程序都提供专为 L…

Java Web 网页设计(1)

不要让追求之舟停泊在幻想的港湾 而应扬起奋斗的风帆 驶向现实生活的大海 网页设计 1.首先 添加框架支持 找到目录右键添加 找到Web Application选中 点击OK 然后 编辑设置 找到Tomcat--local 选中 点击OK 名称可以自己设置 找到对应文件夹路径 把Tomcat添加到项目里面 因为…

【Hadoop】-HDFS的Shell操作[3]

目录 前言 一、HDFS集群启停命令 1.一键启停脚本可用 2.独立进程启停可用 二、文件系统操作命令 1、创建文件夹 2、查看指定目录下内容 3、上传文件到HDFS指定目录下 4、查看HDFS文件内容 5、下载HDFS文件 6、拷贝HDFS文件 7、追加数据到HDFS文件中 8、HDFS数据移…

哪吒汽车把最后的翻身筹码,全压在了这辆新车上

正如比亚迪王传福所说&#xff0c;新能源车市场已进入惨烈淘汰赛环节。 近几年国内新能源车销量增长势头迅猛&#xff0c;仅过去的 2023 年产销便分别达 958.7 万辆和 949.5 万辆&#xff0c;同比增长 35.8% 和 37.9%。 销量高速增长背后自然也带来了越来越激烈的竞争。 过去…

Tomcat 启动闪退的通用解决方案

Tomcat 启动闪退通常是由于配置问题、依赖问题或者系统环境问题引起的。以下是一些常见的解决办法: 检查日志文件: 查看 Tomcat 日志文件,通常位于 Tomcat 安装目录下的 logs 文件夹中,特别是 catalina.out 文件,查找错误信息。这些日志可能包含有关启动失败的详细信息,帮…

PAT 1097 Deduplication on a Linked List(25分)

原题链接&#xff1a;PAT 1097 Deduplication on a Linked List&#xff08;25分&#xff09; Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated absolute values of the keys. That is, for each value K, only the f…

Footprint Analytics 与 GalaChain 达成战略合作

​ Footprint Analytics 宣布与 GalaChain 达成战略合作。GalaChain 是 Gala 旗下的 Layer 1 区块链。此次合作标志着双方在游戏&#xff08;包括 Gala Games) 、娱乐和金融等多个行业的区块链生态系统革新方面迈出了重要的一步。 GalaChain 致力于满足企业级项目的广泛需求&…

快速了解 Rust 文档注释功能

Rust 的文档注释使用特定的格式&#xff0c;以便通过 rustdoc 工具生成 API 文档。以下是一些 Rust 文档注释的基本要求和建议&#xff1a; 注释格式&#xff1a; 文档注释以三个斜杠 /// 开始&#xff0c;而不是单个或双个斜杠。注释应该紧接在要注释的代码项&#xff08;如函…

算法-栈操作

1047. 删除字符串中的所有相邻重复项 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:string removeDuplicates(string s) {string stack;for(char& ch:s){if(stack.size()>0&&chstack.back()){stack.pop_back();}else{stack.push_back(ch);}…

blender Principled Hair BSDF

三种模式&#xff1a; Direct Coloring 直接指定所需的RGB颜色值着色器会尝试近似所需的吸收系数来模拟该颜色Melanin Concentration 使用更加物理化的方式定义头发/毛发颜色通过指定黑色素(Melanin)的浓度和黑红色素(Pheomelanin/Eumelanin)的比例来确定颜色更符合头发/毛发中…

AI大模型实现软件智能化落地实践

1、什么是大模型 大型语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff1b;Large Language Models&#xff0c;LLMs)。 大语言模型是一种深度学习模型&#xff0c;特别是属于自然语言处理&#xff08;NLP&#xff09;的领域&#xff0c;一般是指包含数干亿&…

Pandas 模块-操纵数据(11)-二元运算--超级add、sub、mul、div、mod、pow等等

目录 1. DataFrame.add 1.1 DataFrame.add 语法结构 1.2 DataFrame.add 参数说明 1.3 DataFrame.add 用法示例 1.3.1 正常的使用 1.3.2 需要注意类型相符合 2. DataFrame.sub 2.1 DataFrame.sub 语法结构 2.2 DataFrame.sub 参数说明 2.3 DataFrame.sub 用法示例 3.…

传媒论坛编辑部传媒论坛杂志社传媒论坛杂志2024年第7期目录

专题│场景传播研究 场景传播&#xff1a;一场遮盖自我与寻找自我的博弈 胡沈明; 3 基于CiteSpace的中国场景传播研究热点分析 管倩;粟银慧; 4-610《传媒论坛》投稿&#xff1a;cnqikantg126.com 数字世界的美与危&#xff1a;场景传播的失范与应对之举 王依晗;章洁…

什么是Spring容器中的组件

在Spring容器中&#xff0c;组件指的是被Spring管理的对象&#xff0c;包括JavaBean、Service、Repository等等。这些组件可以通过Spring容器的自动装配机制进行依赖注入&#xff0c;从而实现对象之间的解耦和灵活性。 Spring容器中的组件通过配置文件或注解的方式进行定义和注…

分布式-知识体系

分布式系统 本质就是一堆机器的协同&#xff0c;要做的就是用各种手段来让机器的运行达到预期 分布式业务场景 分布式四纵四横说 基于 MSA&#xff08;微服务架构&#xff09;的分布式知识体系 相关概念 – 【摘自网络原文】 节点与网络 节点 传统的节点也就是一台单体的物…