逆向入门(1)C篇-正儿巴经的第1个实验
接触了这么久,第一次不是使用CV大法编写程序,认认真真的重头开始学习,记录一下找调试的感觉。
第一段代码,重温原码,反码和补码。
#include "stdafx.h"int main(int argc, char* argv[])
{char x = -7;printf("%x\n",&x);return 0;
}//stdafx.h是自己定义的一个头文件,里面可以写一些对常用头文件的引用
正数就不说了,原码、反码和补码都是一样的,这里主要通过案例再回顾一下负数的相关知识。
-7的原码为10000111,就是正常的二进制数,只是最高位为1。
-7的反码为11111000,最高位为符号位不变,其他位全取反。
-7的补码为11111001,补码为反码加1。即为0xF9
在运行了上段程序以后,通过在程序中打断点,使用F5进入debug模式,在窗口右键,可以调出以下界面,确实通过程序证实了理论所得。

再理解一下上述代码中的printf("%x\n",&x);,%x指的是以十六进制的数表示,对&x进行格式化。然后的&x是通过&运算符去获取变量x的地址。

相关文章:
逆向入门(1)C篇-正儿巴经的第1个实验
接触了这么久,第一次不是使用CV大法编写程序,认认真真的重头开始学习,记录一下找调试的感觉。 第一段代码,重温原码,反码和补码。 #include "stdafx.h"int main(int argc, char* argv[]) {char x -7;print…...
vue数据请求通用方案:axios的options都有哪些值
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 Node.js 中。 在使用 Axios 发送请求时,可以通过传递一个配置对象来指定请求的各种选项。 以下是一些常用的 Axios 配置选项及其说明: 1.url: (必需)请求的 …...
使用R语言绘制标准的中国地图和世界地图
在日常的学习和生活中,有时我们常常需要制作带有国界线的地图。这个时候绘制标准的国家地图就显得很重要。目前国家标准地图服务系统向全社会公布的标准中国地图数据,是最权威的地图数据。 今天介绍的R包“ggmapcn”,就是基于最新公布的地图…...
【PyTorch】迁移学习、数据增强
PyTorch官网 介绍 PyTorch 是一个开源的机器学习库,由 Facebook 的人工智能研究实验室开发。它提供了两种主要的功能:张量计算(类似于 NumPy,但具有 GPU 加速)和基于动态计算图的深度学习工具。PyTorch 因其灵活性、…...
Lucas-Kanade光流法详解
简介:个人学习分享,如有错误,欢迎批评指正。 光流(Optical Flow)描述的是图像序列中各像素点随时间的运动情况,是计算机视觉中的基本问题之一。光流问题涉及尝试找出一幅图像中的许多点在第二幅图像中移动的…...
python多张图片生成/合成gif
你可以通过调整帧率来提高GIF的流畅度。默认情况下,代码中的帧率为每秒1帧(fps=1)。我们可以增加这个值来加快动画速度。 下面是修改后的代码,将帧率从每秒1帧提高到每秒5帧(你可以根据需要进一步调整): 在这个版本中,我添加了一个可选参数fps,默认值为5帧每秒。你可…...
iptable限制多个端口出站
iptable限制多个端口出站 安装包 rootiptable:/home/bb# apt-get update rootiptable:/home/bb# apt-get -y install iptables iptables-restoreweb准备 rootweb:/home/bb/test-iptables# docker run -itd --name web -p 80:80 -v ./web1/index.html:/usr/share/nginx/html…...
springmvc--请求参数的绑定
目录 一、创建项目,pom文件 二、web.xml 三、spring-mvc.xml 四、index.jsp 五、实体类 Address类 User类 六、UserController类 七、请求参数解决中文乱码 八、配置tomcat,然后启动tomcat 1. 2. 3. 4. 九、接收Map类型 1.直接接收Map类型 &#x…...
Redis查询缓存
什么是缓存? 缓存是一种提高数据访问效率的技术,通过在内存中存储数据的副本来减少对数据库或其他慢速存储设备的频繁访问。缓存通常用于存储热点数据或计算代价高的结果,以加快响应速度。 添加Redis缓存有什么好处? Redis 基…...
双馈风电DFIG并网系统次转子侧变流器RSC抑制策略研究基于LADRC和重复控制的方法
风电装机容量的持续增长以及电力电子装置的大规模接入,导致电网强度降低,系 统运行特性发生深刻变化,严重威胁风电并网系统的安全稳定运行。因此本文以双馈风 电场经串补线路并网系统为研究对象,在深入分析双馈风电并网系统振荡…...
国产编辑器EverEdit - 使用技巧:变量重命名的一种简单替代方法
1 使用技巧:变量重命名的一种简单替代方法 1.1 应用场景 写过代码的都知道,经常添加功能的时候,是把别的地方的代码拷贝过来,改吧改吧,就能用了,改的过程中,就涉及到一个变量名的问题ÿ…...
使用SSH建立内网穿透,能够访问内网的web服务器
搞了一个晚上,终于建立了一个内网穿透。和AI配合,还是得自己思考,AI配合才能搞定,不思考只依赖AI也不行。内网服务器只是简单地使用了python -m http.server 8899,但是对于Gradio建立的服务器好像不行,会出…...
JWT认证实战
JWT(JSON Web Token)是一种轻量级的、基于 JSON 的开放标准(RFC 7519),用于在各方之间安全地传递信息。JWT 的特点是结构简单、轻量化和跨平台支持,适用于用户身份验证、信息加密以及无状态的 API 访问控制…...
计算机网络 (23)IP层转发分组的过程
一、IP层的基本功能 IP层(Internet Protocol Layer)是网络通信模型中的关键层,属于OSI模型的第三层,即网络层。它负责在不同网络之间传输数据包,实现网络间的互联。IP层的主要功能包括寻址、路由、分段和重组、错误检测…...
权限管理的方法
模块化分类 功能模块划分 把人资管理系统按业务逻辑拆分成清晰的功能区,例如招聘管理、培训管理、绩效管理、员工档案管理等。招聘管理模块下还能细分职位发布、简历筛选、面试安排等子功能;员工档案管理涵盖基本信息、教育经历、工作履历录入与查询等。…...
【郑大主办、ACM出版、EI稳定检索】第四届密码学、网络安全与通信技术国际会议 (CNSCT 2025)
第四届密码学、网络安全与通信技术国际会议(CNSCT 2025)将于2025年1月17-19日在中国郑州盛大启幕(线上召开)。本次会议旨在汇聚全球密码学、网络安全与通信技术领域的顶尖学者、研究人员与行业领袖,共同探索计算机科学的最新进展与未来趋势。…...
48小时,搭建一个设备巡检报修系统
背景 时不时的,工地的设备又出了状况。巡检人员一顿懵逼、维修人员手忙脚乱,操作工人抱怨影响进度。老板看着待完成的订单,就差骂娘了:“这么搞下去,还能有效率吗?”。 于是,抱着试一试的心态…...
基于Redisson实现重入锁
一. 分布式锁基础 在分布式系统中,当多个客户端(应用实例)需要访问同一资源时,可以使用分布式锁来确保同一时刻只有一个客户端能访问该资源。Redis作为高性能的内存数据库,提供了基于键值对的分布式锁实现,…...
Java文件操作的简单示例
使用原生库 创建空白文件 package com.company; import java.io.File; import java.io.IOException;public class Main {public static void main(String[] args) {File f new File("newfile.txt");try {boolean flag f.createNewFile();System.out.println(&quo…...
删除与增加特定行
1.删除特定行 new_df <- df[-c(4), ] #删除第4行 new_df <- df[-c(2:4), ] #去除第2-4行 new_df <- subset(df, col1 < 10 & col2 < 6) #删除特定第一列<10和第二列<6的行。按名字删除 无论行列,可以找出对应索引或构造相同长…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
