安全开发基础篇--数据类型

安全开发基础篇–数据类型

注释:还是要特别说明一下,想成为专业开发者不要看本文,本文是自己从业安全以来的一些经验总结,所有知识点也只限于网络安全这点事儿,再多搞不明白了。

开发语言

笼统的按照是否编译成机器码分类开发语言,开发语言分为脚本语言和编译语言;脚本语言包括:python,php,语言特点是更加接近自然语言,运行需要特定的解释器,与底层系统一般无关,因此脚本语言一般也是毫无秘密可言,脚本语言的这一特性也决定很多人将他们作为开源项目语言使用。脚本语言一般都是弱类型语言,解释器会根据实际运行情况进行类型推导,这导致我们可以使用脚本语言很快的写出代码,但是经常会在运行一段时间后产生各种各样的BUG。
编译语言分为:c,golang。编译语言是可以直接编译成对应CPU机器码独立运行,因此编译语言是不可跨CPU架构移植的,编译语言去符号编译代码一般不可逆,其中IDA可以逆向出伪代码,带符号编译则可以在debug模式下看到源码。编译语言一般都是强类型语言,保证能编译就能使用,但是这话也不绝对,有的编译语言为了像脚本语言一样也有很好的编码体验,对用户也是采用弱类型。常规的编译语言都是强类型,好处就是代码编译后bug较少。
其中java,c#并不属于两者,粗俗的理解,它们是虚拟机语言,他们具备脚本语言的一些特点,比如可以逆向源码,也具备一些编译语言的特点,比如是强类型,有复杂的语法要求。当然虚拟机语言出现bug,调试也普遍比脚本语言与编译语言难。

数据类型

不同语言对于数据类型的概念都是一样的,一个完整的开发语言一般包括整数(也有一些特别的语言没有这么多类型)、浮点数、字符串、布尔值、组合类型(不同语言会有一些不同的衍生)下面对比列一下6种语言的整数类型
整型
计算机由于使用二进制,所以有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,二进制用 0b表示例如 0b1000。八进制用o表示,例如0o123 等等。这里的整数概念包含各个进制的整数,当然常见的是10进制。

其中脚本语言大多数可以处理任意大小的整数(不代表数据库也处理任意大小),编译语言则只能处理固定长度(编者知识广度有限,不绝对),因此在安全上有一项渗透测试叫做整数溢出测试。原理就是利用某些语言只能处理有限长度的整数类型,超过它最大值后取反补位操作变成特别小或者复数的值。最典型的就是C语言整数溢出漏洞,这种漏洞的原理及利用会在后面章节描述。
注释:各语言的int lang short定义或有不同,如下表格不代表同类型转换

语言类型pythonphpjavac#cgolang
uint8
uint16
uint32
uint64
int
lang
short
int8
int8

浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

字符串

字符串是以’‘或""括起来的任意文本,比如’abc’,“xyz"等等。请注意,''或”“本身只是一种表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c这3个字符。如果’本身也是一个字符,那就可以用”"括起来.

布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来

**列表**
>Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素###类型转换
>有的时候我们需要强制的类型转换下面提供一个类型转换的列表,一般我们经常用到的是字符串和数字类型之间的转换
```python
>>>a='11' #str类型
>>>int(a) #转换成int类型
函数描述
int(x [,base])将x转换为一个整数
long(x [,base] )将x转换为一个长整数
float(x)将x转换到一个浮点数
complex(real [,imag])创建一个复数
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s)转换为不可变集合
chr(x)将一个整数转换为一个字符
unichr(x)将一个整数转换为Unicode字符
ord(x)将一个字符转换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串

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

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

相关文章

碳化硅陶瓷膜的基本性能

碳化硅陶瓷膜作为一种由碳化硅(SiC)材料制成的高温陶瓷膜,以其独特的性能在多个领域得到了广泛的应用。以下是碳化硅陶瓷膜的基本性能,详细阐述如下: 一、电绝缘性 碳化硅陶瓷膜通常具有较好的电绝缘性,这一特性在高温环境中尤为重…

牛刀小试--下三角对称矩阵压缩存储

解析博客: 矩阵存储和特殊矩阵的压缩存储_n阶对称矩阵压缩-CSDN博客 函数功能: //为N阶下三角矩阵初始化成的一维数组分配空间 void Init_triangular_matrix(int *&matrix); //返回二维下三角矩阵的值(压缩存取) int get_Value_triangular_matrix(int matrix[],int x,int …

AI推介-大语言模型LLMs论文速览(arXiv方向):2024.07.01-2024.07.05

文章目录~ 1.LLM Internal States Reveal Hallucination Risk Faced With a Query2.Fine-Tuning with Divergent Chains of Thought Boosts Reasoning Through Self-Correction in Language Models3.Investigating Decoder-only Large Language Models for Speech-t…

物流数据分析成本利润计算软件,佳易王物流货运单管理系统操作教程

前言: 物流数据分析成本利润计算软件,佳易王物流货运单管理系统操作教程 以下软件操作教程以,佳易王物流单统计分析软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 一、软件操作教程 1、佳易王物流货运…

LangChain(五)工具调用的底层原理进阶!依旧纯新手向~

系列文章目录 LangChain(一)构建本地数据检索问答Agent,新手向-CSDN博客 LangChain(二)基础问答大模型,纯新手向-CSDN博客 LangChain(三)基础问答大模型,从LLMchain开…

数字人+展厅互动体验方案:多元化互动方式,拓宽文化文娱新体验

数字化创新已成为推动展厅可持续发展,创造全新消费体验,满足游客多元化需求的关键力量。 “数字人数字互动展厅”可以适应年轻一代的文化传播与多媒体互动新体验趋势,打造新生代潮玩聚集地,促进文化创意传播与互动体验场景创新&a…

CC2530寄存器编程学习笔记_按键中断

目录 无中断按键 第一步 分析原理图 电路工作原理 第二步 配置寄存器 第一步 配置为通用IO口 第二步 配置为输入 第三步 输入模式选择 按键抖动 中断按键 第一步中断寄存器的配置 上升沿 下降沿 第一步 开启总中断使能 第二步 开启端口中断使能 第三步 开启端口引…

Android知识收集

文章列表 Android 高版本 HTTPS 抓包解决方案!链接关于RecyclerView你知道的不知道的都在这了 链接 工具列表 抓包工具-Reqable下载. 链接阿里云云效Maven 链接Android各尺寸图标生成 链接App Icon Generator,图标生成支持android, ios 链…

传统中小企业如何布局短视频矩阵?云微客说别踩坑

如今社会,不管是老少都在刷短视频,短视频已经成为大家受欢迎的内容形式之一了。很多企业和个人看到了短视频赛道的这个商机,纷纷投身于短视频制作中,都想为了能够在竞争激烈的市场中脱颖而出。 但是,短视频账号并不是一…

精益思维驱动未来:人工智能产品设计的新篇章

在科技日新月异的今天,人工智能(AI)已经渗透到我们生活的方方面面,从智能家居到自动驾驶,从医疗诊断到金融服务,AI的应用场景越来越广泛。然而,如何确保AI产品在设计之初就具备高效、灵活和可持…

ITIL4认证考试注意事项(附考试答题攻略)

作为一位持有ITIL4中级认证的IT服务管理专家,我深知备考ITIL4认证考试的重要性。在此分享我的复习备考经验,帮助你顺利通过考试。 1. 制定复习计划 制定详细的复习计划是备考的第一步。合理安排每天的复习时间,重点复习ITIL4的关键概念、四个…

CSS 【实用教程】(2024最新版)

CSS 简介 CSS 是层叠样式表( Cascading Style Sheets ) 的简写,用于精确控制 HTML 页面的样式,以便更好地展示图文信息或产生炫酷/友好的交互体验。 没有必要让所有浏览器都显示得一模一样的,好的浏览器有更好的显示,糟糕的浏览器…

E. Beautiful Array(cf954div3)

题意:给定一个数组,可以先对数组进行任意排序,每次操作可以选择一个ai,将它变成aik, 想让这个数组变成一个美丽数组(回文数组),求最少操作次数 分析: 先找出相同的数字…

C++Windows环境搭建(CLion)

文章目录 CLion下载安装CLion下载CLion安装新建项目新建一个文件基础设置字体设置clion中单工程多main函数设置 参考 CLion下载安装 CLion下载 打开网址:https://www.jetbrains.com/clion/download/ 点击Download进行下载。 CLion安装 双击下载好的安装包&…

华为浏览器,Chrome的平替,插件无缝连接

文章目录 背景插件书签 背景 不知道各位小伙伴有没有这样的痛点,办公电脑、家里的电脑还有手机、平板等,收藏了一个网址或者在手机上浏览了某个网页,保存起来,可是一换平台或者换个电脑,在想要浏览之前收藏的东西&…

伺服【禾川X6】

驱动器: A:脉冲 B:EtherCAT // SV-X6 FB 040 AA 一套360 N:CANopen R:PROFINET 电机: SV-X6 MA 040A-B2 KA

中小商家怎么做短视频矩阵?2人美甲店轻松100w+视频曝光量

最近有一个小魔推的合作伙伴问:我能开拓哪些商家? 市场部同学回答道:小魔推几乎没有行业限制,什么行业的商家都可以开拓,像餐饮、酒店、景区、游乐园、教育培训、驾校、4S店、母婴店、商超等等,还有很多传…

将windows下载的包传到linux服务器上

以一个例子说明。 要将下面的docker压缩包上传到对应的172.39.18.2ip的服务器上。 使用如下命令 scp F:\下载内容\docker-20.10.7.tgz root172.39.18.2:/root/test/ 注意是在windows的cmd命令行中。

在 ARM64 系统上使用 AddressSanitizer (ASan) 进行C/C++内存错误检测

文章目录 概要ASan 的配置与运行时优化CMake 配置运行时环境变量 ARM64 ASan库交叉编译动态链接 VS 静态链接示例:内存泄漏检测ASan 检测结果 概要 AddressSanitizer(ASan)是内存错误检测的强大工具,本文将介绍如何在 ARM64 系统…

新版FMEA培训未能达到预期效果怎么办?

在制造业的质量管理中,FMEA(Failure Mode and Effects Analysis,失效模式与影响分析)是一项至关重要的工具,它帮助企业识别和评估产品或过程中潜在的失效模式,以及这些失效模式可能导致的后果。然而&#x…