最近使用三方的一个工程, 但是有些逻辑封装成了lib库,关键地方看不到是不是很难受, 所以顺带找了找反编译的方法,反编译出来的代码是汇编代码,比方ANTHOR_MEASURE的代码,但多少能猜的八九不离十吧,知道调用了哪些方法,参数是什么,也就够了,也不算是逆向工程,做了简单记录;
因为它的创新,单片机的使用变得越来越简单了,甚至没接触过硬件的看手册也能很快掌握。它首创的提供了库函数操作所有的寄存器。是NXP,飞思卡尔,51单片机,msp430单片机,Atemel的AVR单片机,MICROCHIP的PIC单片机无法比拟的。
笔者接触嵌入式领域软件开发以来,几乎用的都是 ARM Cortex M 内核系列的微控制器。感谢C语言编译器的存在,让我不用接触汇编即可进行开发,但是彷佛也错过了一些风景,没有领域到编译器之美和CPU之美,所以决定周末无聊的休息时间通过寻找资料、动手实验、得出结论的方法来探索 ARM CPU 架构的美妙,以及C语言编译器的奥秘。(因为我个人实在是不赞同学校中微机原理类课程的教学方法)。
作为过来人,我发现很多程序猿新手,在编写代码的时候,特别喜欢定义很多独立的全局变量,而不是把这些变量封装到一个结构体中,主要原因是图方便,但是要知道,这其实是一个不好的习惯,而且会降低整体代码的性能。
同时,github上面有很多项目用于stm32等cortex 内核的HardFault_Handler故障查找,可以到硬汉电子论坛去看看,我这里记得segger有SEGGER_HardFaultHandler.c和HardFaultHandler.S,硬汉哥已经将做了stm32的移植修改工作。
全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn
两个 S 用于不同的指令,名称相同,但是在不同的指令结合却有不同的作用
返回值优化,是一种属于编译器的技术,它通过转换源代码和对象的创建来加快源代码的执行速度。RVO = return value optimization。 测试平台:STM32F103VG + Keil 5.15 背景: 我们有个MacAddress::ToArray byte* MacAddress::ToArray() const { return (byte*)&Value; } 因为封装需要,打算返回字节数组类ByteArray的对象,于是有 ByteArray MacAddres
博客地址 : http://blog.csdn.net/shulianghan/article/details/42408137
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第1章 初学数字信号处理准备工作 本期教程开始带领大家学习DSP
STM32F1xx官方资料: 《STM32中文参考手册V10》-第9章 中断和事件
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第29章 STM32F429移植汇编定点FFT库(64点
Sourceinsight可以方便的查看函数调用关系,点击图标
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第29章 STM32F407移植汇编定点FFT库(64点
文章目录 🚗 🚗Linux嵌入式开发 | 汇编驱动LED(1) 🚗 🚗初始化IO 🚗 🚗STM32 🚗 🚗使能GPIO时钟 🚗 🚗设置IO复用 🚗 🚗配置GPIO 🚗 🚗使用GPIO 🚗 🚗I.MX6ULL 🚗 🚗使能GPIO时钟 🚗 🚗设置IO复用 🚗 🚗配置GPIO 🚗 🚗配置GPIO功能 🚗 🚗Linux嵌入式开发 | 汇编驱动LED(1) 🚀🚀之前我们一直都是在介绍Linux的使用,接下来就开始进入真正的Linux嵌入式开发了,我们的第一个实验就是来使用汇编代码来驱动我们的LED灯,相信很
(1)如果安装了VMware Tools,则使用CreateToolhelp32Snapshot、Process32Next扫描进程列表,查看是否有VMwareService.exe、VMwareTray.exe和VMwareUser.exe (2)查看网卡地址是否以00:0C:29开头,或查看其它硬件版本 (3)探测内存痕迹,搜索含有VMware的字符串 (4)Red Pill反虚拟机技术->漏洞指令sidt,根据返回的idtr值不同,在多核处理器上无效 (5)No Pill技术->漏洞指令sldt,主机系统上的LDTR值为0,虚拟机中不为0 (6)查看查询I/O通信端口,监视in指令,第二个操作数为VX (7)查看str指令,主机和虚拟机中返回值不一样,str指令用来从任务寄存器中检索段选择子
数据恢复是对数据库进行备份和还原,当数据库因为各种原因被损坏或者无法读取的时候,会造成无法估量的后果,这个时候就需要数据库还原工具,进行还原。
其实很多CPU都同时支持片内和片外ROM,比如老的C51到现在流行的STM32。为啥要划分这两种类型呢,主要片外提取固件基本可以暴力提取,直接把存储芯片焊接下来用相应的读取设备就能读取。
大家好,又见面了,我是你们的朋友全栈君。 完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第29章 ST
这是为了给接下来的Linux下嵌入式开发打好基础,尽快熟悉Linux下c编程,但是在开发stm32的时候,编译工具链要使用gcc-arm-none-eabi,为什么不是gcc呢?这就要说到linux下的交叉编译了,因为我们要在PC机上编译出可以运行在ARM上的程序,使用gcc编译出的是在PC上运行的程序,所以我们要使用gcc-arm-none-eabi进行交叉编译~
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第29章 STM32H7移植汇编定点FFT库(64点,2
我们在平常使用STM32单片机的时候,往往会碰到程序跑飞的情况,出现hard_fulat等错误,而我们在定位错误的时候,采用的方法往往是连上仿真器,一步一步单步调试,定位到具体的错误代码,再去猜测、排除、推敲错误原因,这样一个过程很是痛苦,而且在实际情况中,很多产品真机调试时必须断开仿真器或者说,问题确实存在,但是极难出现,所以在基于这样一个问题背景下,RTT 的大佬armink开发了一个基于 ARM Cortex-M系列的 MCU错误追踪库,用于帮助开发者解决上述问题。
系统安全系列作者将深入研究恶意样本分析、逆向分析、攻防实战和Windows漏洞利用等,通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步。前文普及了IDA Pro反汇编工具的基础用法,并简单讲解一个EXE逆向工程解密实战方法。这篇文章将详细介绍OllyDbg的基础用法和CrakeMe案例,逆向分析的“倚天屠龙”,希望对入门的同学有帮助。
因为基于Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难。为了解决不同的芯片厂商生产的Cortex 微控制器软件 的兼容性问题,ARM 与芯片厂商建立了CMSIS 标准(CortexMicroController Software Interface Standard)。
Windbg是Microsoft公司免费调试器调试集合中的GUI的调试器,支持Source和Assembly两种模式的调试。Windbg不仅可以调试应用程序,还可以进行Kernel Debug。结合Microsoft的Symbol Server,可以获取系统符号文件,便于应用程序和内核的调试。Windbg支持的平台包括X86、IA64、AMD64。
上一篇文章我们详细介绍了 STM32F030 从复位时取得复位向量,系统初始化,然后跳转到 main( ) 函数的过程。下面我们结合一个最简单的例子,对 Cube 库的使用做一个简单的介绍。
在第一章中我们介绍了x64dbg这款强大的调试软件,通过该软件逆向工程师们可以手动完成对特定进程的漏洞挖掘及脱壳等操作,虽然x64dbg支持内置Script脚本执行模块,但脚本引擎通常来说是不够强大的,LyScript 插件的出现填补了这方面的不足,该插件的开发灵感来源于Immunity调试器中的ImmLib库,因Immunity调试器继承自Ollydbg导致该调试器无法支持64位应用的调试,同时该调试器也长期没有开发者进行维护,正是在这种情形之下LyScript诞生。
一般软件都会加壳,所以我们想激活成功教程软件,首先必须知道待激活成功教程的软件所加壳的类型。在这之前,我们需要先了解壳的概念。什么是壳?所谓壳就是一个保护程序,将可执行文件压缩,保护软件版权信息,不让人随意改动。最常见的加壳软件有ASPACK,UPX,PE compact等等。
上一篇博文我介绍了Windbg使用的线性扫描(linear sweep)反汇编算法。本文我将介绍IDA使用的递归下降(recursive descent)反汇编算法。(转载请指明来源于breaksoftware的csdn博客)
参考资料:STM32F103数据手册.pdf、ARM Cortex-M3与Cortex-M4权威指南.pdf、PM0056.pdf
本周分享的工具是IDA Pro 7.0。IDA Pro全称是交互式反汇编器专业版(Interactive Disassembler Professional),简称IDA,它是一种典型的递归下降反汇编器。IDA并非免费软件,但Hex-Rays公司提供了一个功能有限的免费版本。IDA是Windows,Linux或Mac OS X托管的多处理器反汇编程序 和调试程序,它提供了许多功能,是一款很强大的静态反编译工具。支持很多插件和python,利用一些插件可以提供很多方便的功能大大减少工作量,在CTF中,逆向和pwn都少不了它,更多强大的功能等待童鞋们自己去学习挖掘,三言两语讲不完。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。 IDA pro7.0(绿色英文版)和 部分插件+ 《IDAPro权威指南第2版》已经上传至群文件,来源于: 吾爱破解论坛。论坛也有汉化版,英文原版本习惯了都一样。 看雪有一个 IDA pro插件收集区,大家有需要也可以去那找https://bbs.pediy.com/forum-53.htm
因为项目的原因需要将原有的标准库工程升级为基于TencentOS-tiny的RTOS工程,所以花费一点时间记录移植过程,提供一份向基于STM32标准库的老工程中移植TencentOS-tiny的思路。
前言:我将尽量以自己做题时的思考过程来组织本文,所以本文可能不适合阅读,知识点也会比较散碎的出现。
可以理解成一个有意思的问题,假如地址 addr1 上有一个函数func1,长度为len, 将这个函数 整体换一个位置,挪到 addr2, 移动之后的函数成为func2
娜璋AI安全之家于2020年8月18日开通,将专注于Python和安全技术,主要分享Web渗透、系统安全、CVE复现、威胁情报分析、人工智能、大数据分析、恶意代码检测等文章。真心想把自己近十年的所学所做所感分享出来,与大家一起进步。
上篇文章初步认识了STM32,了解了STM32的分类及型号命名规则,本篇内容继续STM32串口编程入门学习。
ARM 指令集是针对ARM体系架构设计的指令。在BootLoader引导的第一阶段以及内核的第一阶段都会有一个使用汇编语言编写的文件,在不跑操作系统的裸板中也有一段用来初始化开发板环境的汇编代码。所以无论是开发带操作系统的板子,还是裸板开发,汇编语言都很有必要学习一番,最少要了解一些常用的汇编指令。要想设计出性能超强的系统,ARM的工作原理是必须掌握的。
行为分析主要是通过系统监控软件,监控系统中各资源或环境的变化,比如监控注册表、监控文件、监控进程,以及监控网络等。当然了,还可以通过 HIPS 软件来监控病毒的行为。各类系统监控工具或者是 HIPS 软件都是在系统的不同层面上进行了不同方式的 HOOK。比如说在内核层进行 HOOK,在应用层进行 HOOK。HOOK 的方式也是多样化的,比如直接 HOOK API 函数,或者 HOOK SSDT 表中的内核函数。
数字信号在我们生活中随处可见,自然而然地就会涉及到对于数字信号的处理,最为典型的一个应用就是示波器,在使用示波器的过程当中,我们会通过示波器测量到信号的频率以及幅值,同时我们也可以通过示波器对测量到的信号进行 FFT ,从而能够观察到待测信号的频谱,方便直观的看出信号的高频分量和低频分量,从而帮助我们去除信号中携带的噪声。而在嵌入式方面的应用,我们可以直接使用 DSP 芯片对信号进行处理,同时, ARM 公司推出的 Cortex-M4F 内核是带有 FPU ,DSP 和 SIMD 单元的,针对于这些单元也增加了专用的指令,指令如下图所示:
发现漏洞的第一步则是需要寻找到可利用的反汇编指令片段,在某些时候远程缓冲区溢出需要通过类似于jmp esp等特定的反汇编指令实现跳转功能,并以此来执行布置好的ShellCode恶意代码片段,LyScript插件则可以很好的完成对当前进程内存中特定函数的检索工作。
OllyDbg是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级调试器,非常容易上手,是当今最为流行的调试解密工具之一。它还支持插件扩展功能,是目前最强大的调试工具之一。
目前左上角的四个 sensor 还没焊接,因为他们是 LGA 封装,打板没有开钢网,手边也没有热风枪,不好焊接。
V5是STM32F407IGT6,V6是STM32F429BIT6,V7是STM32H743XIH6 模板下载: V5-800_uCOS-II实验_程序移植模板(2.93.00).rar (6.01MB) V6-800_uCOS-II实验_程序移植模板(2.93.00).rar (5.84MB) V7-800_uCOS-II实验_程序移植模板(2.93.00).rar (14.99MB) uC/Probe V4.8.0下载: 链接:https://share.weiyun.com/5RkuszI 密码:8t7pqa
上次介绍了一下建立基于固件库的工程模板,这次来介绍一下新建基于寄存器的工程模板,因为两者有许多相似之处,所以就简单介绍一下。
32 位基于 ARM 微控制器 STM32F101xx 与 STM32F103xx
领取专属 10元无门槛券
手把手带您无忧上云