首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
ESP-01S固件升级
2024-09-02
ESP-01S刷ESPEasy固件,接入HA
首先下载ESPEasy最新版 https://github.com/letscontrolit/ESPEasy/releases 准备接线从ESP01S到USB-TTL TTL——ESP01S 3.3V——VCC和EN(CH_PD}) TXD——RX RXD——TX GND——GND和GPIO0 图片来自:https://www.domoticz.cn/forum/viewtopic.php?f=17&t=5 USB-TTL插入电脑,已经发现连接到com12口 打开ESPEasy_mega-20
使用Arduino点亮ESP-01S,ESP8266-01S上的板载LED
因为在开发ESP-01s远程控制中觉得接线麻烦,又因为ESP-01s板子上带有LED灯,那就先点亮板载LED, 如图所示: 打开Arduino 把代码copy进去,再编译烧录,就可以看见LED灯每隔1秒亮和熄. 经过测试本代码只实用于ESP-01S,ESP8266-01S. //ESP-01S #include <ESP8266WiFi.h> int ledPin = 2; // GPIO2 of ESP8266-01S void setup() { pinMode(ledPin, OUTP
“破解大牛是怎么炼成的”之壳与ESP定律
文章难易度:★★★ 文章阅读点/知识点:逆向破解 文章作者:Sp4ce 文章来源:i春秋 关键字:网络 信息安全技术 本文参与i春秋社区原创文章奖励计划,未经许可禁止转载! 一.前言 通过前面几篇的学习,我们学会了利用暴力破解达到绕过注册机制和追踪注册码来达到"合法"用软件的方法,但是我们往往会遇到代码经过混淆器混淆的程序,此类混淆器可以称之为壳,壳又可分为压缩壳(常见的有UPX.北斗.ASDPack.Npack.PECompact等)和保护壳(如强壳Safengine.VMpro
函数调用关于从Ring3转到Ring0 ESP堆栈变化
在ring0堆栈获取ring3堆栈方式 第一种方式 [esp+4] == [esp+参数个数*4+4] 如果这里不相等就需要用第二种方式 [[esp+参数个数*4+8]] 这里面的值就是Ring3的堆栈.不含参数.也就是Ring3的esp+参数个数*4的位置 第二种方式 待定.虚拟机突然崩溃了.郁闷!!!等待下次的发生
esp和ebp详解
最近在研究栈帧的结构,但总是有点乱,所以写了一个小程序来看看esp和ebp在栈帧中的作用.这个程序如下: 这个程序很简单,就是求两个数的值,然后输出即可.所以首先把它用gcc编译链接成a.out,进入gdb进行调试. 首先在main和add两处设置断点.运行到第一个断点,查看main的汇编代码: 我们主要是观察调用add后我们的esp和ebp的变化,于是输入命令:c,继续运行到add处,观察add的汇编: 其实也就是运行到了main的call指令处进入add函数了.这时到了观察esp和ebp的时
JLINK固件,JLINK驱动和JLINK硬件版本之间的关系,以及固件升级方法
初学者容易在这几个问题上面犯迷糊,这里简单的说说. 1. JLINK硬件版本首先说JLINK的硬件版本有V7,V8和V9,相信这一点大家应该都没问题,那怎么看自己手头的JLINK是哪个硬件版本呢,可以使用J-Link Commander,我这里的是V8版本: 或者使用MDK里面的option选项也可以查看: 2. JLINK固件每个硬件版本V7,V8和V9都有自己的固件代码,固件代码就是JLINK内部的程序代码.关于固件代码,官方也会进行升级的,但初学者要把固件升级跟JLINK驱动升级区
栈帧%ebp,%esp详解
首先应该明白,栈是从高地址向低地址延伸的.每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息.寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(地址地).下图为典型的存取器安排,观察栈在其中的位置 入栈操作:push eax; 等价于 esp=esp-4,eax->[esp];如下图 出栈操作:pop eax; 等价于 [esp]->eax,esp=esp+4;如下图 我们来看下面这个C程序在执行过程中,栈的变化情况 void func(
EBP的妙用[无法使用ESP定律时]
1.了解EBP寄存器 在寄存器里面有很多寄存器虽然他们的功能和使用没有任何的区别,但是在长期的编程和使用 中,在程序员习惯中已经默认的给每个寄存器赋上了特殊的含义,比如:EAX一般用来做返回值,ECX用于记数等等.在win32的环境下EBP寄存器用与 存放在进入call以后的ESP的值,便于退出的时候回复ESP的值,达到堆栈平衡的目的. 应用以前说过的一段话: 原程序的OEP,通常是一开始以 Push EBP 和MOV Ebp,Esp这两句开始的,不用我多说大家也知道这两句的意思是以EBP代替E
EBP与ESP寄存器的使用
push ebp mov esp,ebp esp是堆栈指针 ebp是基址指针 这两条指令的意思是将栈顶指向ebp的地址 --------------------------------------------------------------- 例如: push ebp ;ebp入栈 mov ebp, esp ;因为esp是堆栈指针,无法暂借使用,所以得用ebp来存取堆栈 sub esp, 4*5 ;下面的wsprintf一共使用了5个参数,每个参数占用4个字节,所以要入栈4*5个字节 p
C++代码反汇编后的堆栈寄存器EBP和ESP
最近在分析一个进程崩溃的严重问题,其中有些过程分析需要对ebp, esp 有清晰的理解,对于ebp 和esp 相信大家都很熟悉了,但是为了使本文自成体系,我还是解释一下. ebp--栈底指针 esp--栈顶指针 如图所示,简化后的代码调用过程如下: void Layer02() { int b = 2; } void Layer01() { int a = 1; Layer02(); } 那么函数执行过程中ebp和esp是如何变化的呢?如下是反汇编后的代码: void Layer02() { 0
堆栈中的EIP EBP ESP
EIP,EBP,ESP都是系统的寄存器,里面存的都是些地址. 为什么要说这三个指针,是因为我们系统中栈的实现上离不开他们三个. 我们DC上讲过栈的数据结构,主要有以下特点: 后进先处.(这个强调过多) 其实它还有以下两个作用: 1.栈是用来存储临时变量,函数传递的中间结果. 2.操作系统维护的,对于程序员是透明的. 我们可能只强调了它的后进先出的特点,至于栈实现的原理,没怎么讲?下面我们就通过一个小例子说说栈的原理. 先写个小程序: void fun(void) { prin
GCC优化选项-fomit-frame-pointer对于esp和ebp优化的作用
我的博客:www.while0.com -fomit-frame-pointer选项是发布产品时经常会用到的优化选项,它可以优化汇编函数中用edp协助获取堆栈中函数参数的部分,不使用edp,而是通过计算,全部使用esp来完成.看下边的例子就明白了: 把一下文件保存为test.c int b(int c){ int d = c; return 0; } 通过一下命令编译: gcc -o test.s -S test.c 不优化,编译为test.s gcc -o test1.s -S -fomi
C++程序在debug模式下遇到Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call问题。
今天遇到一个Access Violation的crash,只看crash call stack没有找到更多的线索,于是在debug模式下又跑了一遍,遇到了如下的一个debug的错误提示框: 这个是什么原因呢?我们来看一个简单的例子来重现这个错误. 假设我们有2个父类,分别是BaseA和BaseB.有一个子类Child,继承自BaseA和BaseB. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class BaseA
iPhone、iPod和iPad离线固件升级的方法
我们知道iOS升级的过程过程超级简单,特别是在线升级只需要点击几个按钮就ok了,但是对于开发者来说,经常升级的iOS固件都是preview版的,需要自己下载好固件之后,手动来更新,我找了一下网上的资料,基本上都是千篇一律针对window系统上itunes软件下iOS固件升级,结果总是没有出现那些界面,害人不浅啦.下面说说离线升级的步骤: 1.首先下载iPhone.iPod和iPad离线固件ipsw文件: 下载地址网上查找或者在官网下载有各版本的iOS官方固件下载地址(注意下载的ipsw文件与你要
STM32 IAP 固件升级设计/U盘升级固件
源:STM32 IAP 固件升级设计/U盘升级固件 固件升级的基本思路是: 将stm32 的flash划分为两个区域: 1.Bootloader区:存放bootloader的代码,bootloader代码完成的主要功能就是,判断外部条件,如果需要更新固件,则从指定位置(外接的U盘?板子上的外置存储器如 SD卡,NandFlash等)读取bin文件,然后写入到stm32 Flash的APP区,完成后跳转到APP区执行更新过的代码: 如果不需要更新,则直接跳转到APP区执行主程序代码. 2.APP区
脱壳第一讲,手工脱壳ASPack2.12的壳.ESP定律
脱壳第一讲,手工脱壳ASPack2.12的壳.ESP定律 一丶什么是ESP定律 首先我们要明白什么是壳.壳的作用就是加密PE的. 而ESP定律就是壳在加密之前,肯定会保存所有寄存器环境,而出来的时候,则会恢复所有寄存器的环境. 这个就成为ESP定律.(当然我个人理解.可能有更好的理解,请下方评论,我会更改) pushad的时候,肯定所有寄存器入栈. 二丶利用工具脱掉ASPACK2.12的壳 首先,我们找一个带壳的工具,利用PEID查壳.查看是什么壳. OD附加进程. 可以看出,一开始就已经pus
寻找真正的入口(OEP)--广义ESP定律
1.前言 在论坛上看到很多朋友,不知道什么是ESP定律,ESP的适用范围是什么,ESP定律的原理是什么,如何使用ESP定律?看到了我在“”调查结果发现,大家对ESP定律很感兴趣,当然因为实在是太好用了,现在我就来告诉大家什么是ESP定律,它的原理是什么!BTW:在看完了手动脱壳入门十八篇了以后,再看这篇文章也许会对你更有帮助!在下面地址下载:http://www.jetdown.com/down/down.asp?id=37350&no=12.准备知识 在我们开始讨论ESP定律之前,我先给你讲解
[ipsec][crypto] 在IPSec ESP使用AES-GCM加密时的IV
IV IV是指初始化向量. 在我们当前讨论的场景中: 在IPSec ESP使用AES-GCM加密 IV有两个含义: 1. ESP报文封装时的IV,RFC中称为 AES-GCM IV +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Initialization Vector | | ( octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
[crypto][ipsec] 简述ESP协议的sequence number机制
预备 首先提及一个概念叫重放攻击,对应的机制叫做:anti-replay https://en.wikipedia.org/wiki/Anti-replay IPsec协议的anti-replay特性就是用来应对重放攻击的一种机制,方法是: 增加两个机制:序列号(seqence number)和收包窗口(sliding window) 发包方从0开始计数,每发一个包就把序号加1. 收包方拥有一个长度为N的滑动窗口,序号在窗口外的包都认为是无效包. 序号在窗口内的重复包,也被认为是无效包.窗口下边
[ipsec][strongswan] 使用wireshark查看strongswan ipsec esp ikev1 ikev2的加密内容
一,编译,启用strongswan的save-keys plugin ./configure --prefix=/root/OUTPUT --exec-prefix=/root/OUTPUT --enable-save-keys CFLAGS="-g -O0" 运行之前验证一下,是否加载了这个插件 [root@T9 OUTPUT]# ./sbin/swanctl --stat |grep save loaded plugins: charon aes save-keys des rc
ESP定律学习
ESP = 堆栈平衡 ESP定理脱壳: (1)开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)(这只是一 般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值) (2)在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX), 按回车 (3)选中下断的地址,断点--->硬件访--->WORD断点 (4)按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP (ESP在OD的寄存器中,我们只要在命令行下ESP的硬
热门专题
cognos 自定义排序
java判断数据的类型
.net abp清页面缓存
qtoolbutton设置图标位置
千人基因组 popvcf格式
maven配置后,输入mvn version没有反应
c# speechlib 语音包
el-cascader 限制选中第三级
ENTERPRISE]SNMP V3攻击
eclipse如何根据java快速定位到class
Splitter1隐藏 delphi
dispatchEvent模拟按下shift
myeclipse-2017-ci-1 下载加破解补丁
怎么彻底卸载sourcetree
java多线程最佳实践
arrow 获取三个月前
poi excel模板填充
jenkins 线上监控
odoo怎么多做一个界面
极光推送 配置小米通道 杀死APP收不到推送