交叉编译器的命名规则及详细解释
交叉编译器的命名规则及详细解释在linux系统下搞嵌入式开发,交叉编译器那肯定是必备工具。用的场合多了,就会见到各种各样的编译工具,比如:
12345678arm-linux-gccarm-linux-gnueabi-gccarm-none-linux-eabi-gccarm-none-symbianelf-gccarm-none-uclinuxeabi-gccarm-none-linux-gnueabi-gccarm-cortex_a8-linux-gnueabi-gccmips-malta-linux-gnu-gcc
这些编译工具为什么这么叫,各自有什么含义,又分别用在什么场合,你都知道吗?下面就来一一讲解一下。
命名总则一般来说,交叉编译工具链的命名规则为:arch-core-kernel-system-language。其中:
arch:体系架构,如ARM,MIPS,等,表示该编译器用于哪个目标平台;core:使用的是哪个CPU Core,如Cortex A8;或者是指定工具链的供应商。如果没有特殊指定,则留空不填。这一组命名比较灵活,在某些厂家提供的交叉编译链中,有以厂家名 ...
ICS_CTF竞赛
ICS_CTF竞赛国内工控比赛考察点采用 CTF 分类模型,总结分析当前工控 ICS 比赛中的关键点
比赛类型
考察点
与 CTF 异同
内网渗透
Web 端渗透测试、CMS 系统、工控发布展示系统、数据库系统
与 Web 渗透相关
逆向分析
固件分析、工控软件逆向
实际场景逆向
工控协议
工控流量分析、Misc 类
Misc 流量分析,工控场景流量特征
工控编程
PLC 编程、HMI 组态、RTU 编程等
工控实际组态软件使用,梯形图识别与分析
根据漏洞类型其实还可以区分细化题目类型,包括常见的 Web 注入类、固件弱口令、后门程序、协议重放与逻辑问题、组态部署问题等常见的工控场景安全问题。
比赛类型
漏洞类型
内网渗透
Web 类(SQL、XSS、命令注入、敏感文件泄露 .git/.idea/.project 等、)
逆向分析
固件分析、工控软件逆向
工控协议
工控流量分析、Misc 类
工控编程
PLC 编程、HMI 组态
针对目前出现或曾经出现的 ICS CTF 题目类型,其实与 CTF 竞赛有许多重合点,因此不再此赘述, ...
ICS_CTF 学习资源 ¶
ICS_CTF 学习资源
EscortLab 收集整理了一系列相关关 IoT 资料,供大家学习
IoT 产业资讯 https://www.iotdunia.com/iotdunia
利用框架
isf 利用框架 https://github.com/dark-lbp/isf
isf 利用框架 https://github.com/w3h/isf
整理 ICS 资源
icsmaster https://github.com/w3h/icsmaster
rapidscada https://github.com/RapidScada/scada
弱口令集合
工控弱口令 https://github.com/scadastrangelove/SCADAPASS
TOP1 万内系列弱口令 https://github.com/danielmiessler/SecLists/tree/master/Passwords
蜜罐 honeypot
Conpot https://github.com/mushorg/conpot
利用小工具
PLC 扫描发现工具 PLCscan https:// ...
ICS_CTF 发现
ICS_CTF 发现工控设备发现工控设备发现是工控比赛的前提,目前针对工控设备扫描中,在 Nmap、Metasploit、Censes 集成了大量的工具,用于挖掘当前在线 PLC、DCS 等 ICS 设备。
工控扫描脚本基于工控端口的信息扫描脚本在大量 IP 中如何发现工控设备, 除了工控特殊端口意外,大量端口都是正常服务,例如 ftp、ssh、telnet、smtp、ntp 等正常网络服务。下面列表列举了当前可以利用开源工控扫描脚本。
端口
协议 / 设备
来源
102(TCP)
siemens s7
nmap –script s7-info.nse -p 102 [host] nmap -sP –script s71200-enumerate-old.nse -p 102 [host]
502(TCP)
modbus
nmap –script modicon-info -p 502 [host]
2404(TCP)
IEC 60870-5-104
nmap -Pn -n -d –script iec-identify.nse –script-args& ...
ICS_CTF 利用
ICS_CTF 利用Exploit 是针对某种漏洞提供的多种利用方法,针对某一种漏洞可以有很多利用方法。 针对工控领域,其实目前多见的利用方式:组态利用、通信劫持、Web 渗透。
组态利用组态是工控场景的核心,是工控编程与实现功能的核心内容,如果你不太懂组态,请自行学习自动化领域工业控制系统组态的相关书籍。 最好的学习方式是拿到相关的产品说明书,针对说明书上的内容一点一点学习。
组态的利用方法:
强制 IO(最管用的一种调试方法)
工程加密与解密(工程加密是 PLC 一种保护措施,但仍存在被破解的可能)
上载下载(基础概念请自行恶补)
PLC 等目标设备的内存分布(基础概念请自行恶补)
其他附加功能(例如 ftp、ntp 等)
通信劫持通信劫持是工控场景中最经典利用方式,例如 ARP 劫持、PLC/HMI 通信劫持、PLC 会话劫持、PLC 命令执行等内容。 通信劫持的方法:
ARP 劫持,ARP 劫持可以阻断 PLC 与其他设备的通信,鉴于工程会存在写死 IP 等交互地址,未必管用,但是值得一试
PLC/HMI 通信劫持,采用旁路设备接入或控制 PLC 设备 ...
ARM的ATPCS调用约定
ARM的ATPCS调用约定ATPCS标准,可以理解为ARM是怎么使用堆栈的。
那么在此之前需要熟悉调用约定的知识。X86的栈操作知识等。
调用约定调用约定分为如下:
cdecl调用约定
该调用约定遵循以下规则
参数入栈顺序是从右向左
栈平衡是调用者来负责
stdcall 调用约定
入栈规则:参数从右向左入栈
栈平衡负责:被调用者负责
fastcall调用约定
参数入栈顺序:函数的第一个第二个参数通过ecx和edx入栈。x64的结构下还有r8 ,r9 (寄存器),剩余的参数则从右向左入栈。
栈平衡:被调用者进行栈平衡。(x64是调用者负责)
返回值的存放:
返回值放在EAX和RAX(x64)中
ARM调用约定ARM函数之间相互调用遵循的规则就是ATPCS(ARM-Thumb Procedure Call Standard)ATPCS主要是定义了函数调用时参数的传递规则以及函数的返回规则。它类似于X64下的fastcall调用。
它们有个共同的特点就是寄存器多,有大量寄存器可以使用。
传参方式
R0~R3是传递函数的第一个到第四个参数的,超出的部分从右向左通过栈传 ...
ARM环境搭建
ARM环境搭建1.安装qemu,multiarch,和依赖库12345apt-get install qemu-userapt-get install qemu-use-binfmt qemu-user-binfmt:i386apt-get install gdb-multiarchapt-get install qemu-user-staticapt install gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu
2.安装对应架构的共享库,使用apt来搜索一下12apt search "libc6-" | grep "arm" # aarch64apt install libc6-arm64-cross
3.交叉编译1234567apt search "gcc-" | grep "arm" # aarch64apt install gcc-arm-linux-gnueabi# arm-linux-gnueabihf-gcc# aarch64-linux-gn ...
ARM汇编指令详解
ARM汇编指令详解ARM的编程模式和七种模式基本设定
架构(32位)
约定
Byte(字节):8bits
Halfword(半字) :16 bits (2 byte)
Word(字):32bits(4 byte)
指令集
ARM指令集(32位)
Thumb指令集(16位)
Thunmb指令集 (16位&32位)
工作模式
种类:七种
非特权模式(Normal:普通模式)
User (用户模式):非特权模式,大部分时候在这个模式下工作
特权模式(privilege:特权模式)
FIQ(快速中断模式):当一个高优先级(fast)中断产生时将会进入这种模式
IRQ(普通中断模式):当一个低优先级(normal)中断产生时会进入这种模式
SVC(管理模式):当复位或软中断指令执行时进入
Abt(数据访问终止模式):当存取异常时进入
und(未定义指令终止模式):当执行未定义指令时进入
sys(系统模式):使用和User模式相同的寄存器的特权模式
Privilege除了System模式外,其他几种为异常模式
各种模式的切换,程序员通过代码切换(CPSR寄存器); ...
ARM架构基本知识
ARM架构基本知识1.ARM架构的诞生1974年IBM提出了精简指令集计算机 (Reduced Instruction Set Computer )旨在通过减少指令的数量和简化指令的格式来提高CPU的指令执行效率。典型的代表有ARM处理器,MIPS处理器和DECAlpha处理器等。以ARM处理器为例子,1985年Acorn推出了基于ARMv1指令集的第一代ARM1处理器,2011年推出的ARMv8将指令集扩展到64位,称为AArch64,继承自ARMv7的指令集称为AArch32。在Linux发行版中,将AArch64称为aarch64,AArch32称为arm。由于RISC较高的执行效率以及较低的资源消耗。当前包括IOS,Android在内的大多数移动操作系统核嵌入式系统都运行在这类处理器上。
长期以来,CISC和RISC都处于你追我赶的竞争中,同时也在不断地相互借鉴对方的优点。从Intel P6系列处理器开始,CISC指令在解码阶段向RISC指令转化。将后端流水线转换成类似RISC的形式,即等长的微操作,弥补了CISC流水线实现上的劣势。同期,ARMv4也引入了代码密度更高的Thu ...
获取以太坊测试币
获取以太坊测试币前言才知道原来搭建环境什么的都需要以太坊测试币进行测试才行,测试币只有一些水龙头网站才能发,于是我们便需要去对于的测试网络的水龙头网站获取
Ethereum Sepoliahttps://www.alchemy.com/faucets/ethereum-sepolia
访问这个网站即可获取,但是获取时候需要注册账号,谷歌账号登录即可
然后写入账户地址,便可获得测试币
MetaMask查看一下发现已经到账了