【破解方法】可用ESP定律脱的16种壳

本文介绍了ESP定律的应用及十六种不同加壳方法的特点,包括Aspcak、UPX、PECompact等,帮助读者了解如何通过ESP的变化来定位程序入口点。
ESP 定律:就是加载程序后 F8单步运行 第一个变化的 ESP 值,右击寄存器上 ESP 在转存中跟随,在内存地址上 选中前四个,右击,断点,硬件访问,word F9,中断,….返回。
(D 12ffc0 选四个下硬件写入 dword) 我的其它小记
1. Aspcak 方法:
ESP+6175(Sb) POPAD JMP
2. UPX 方法:
S 0000 The First JMP
变种
ESP+S (60E9)
0040EA0E 60 PUSHAD
0040EA0F – E9 B826FFFF JMP chap702.004010CC
3. PECompact 1.68 – 1.84
ESP
Or 注意 第一个 PUSH XXXX XXXX+基址(400000)=EOP
4. EZIP 1.0 方法:
ESP
5. JDPack 1.x / JDProtect 0.9
ESP+S(6150)
0040E3F8 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
0040E3FC 61 POPAD
0040E3FD 50 PUSH EAX
0040E3FE C3 RETN
0040E3FF 23E8 AND EBP,EAX
6. PE Pack 1.0
ESP+S (61ff)
0040D26F 61 POPAD
0040D270 FFE0 JMP EAX
7. WWPack32 1.x
ESP
8. PEDiminisher 0.1
ESP+S(FFE0) or S(JMP EAX)
0041708D 5D POP EBP
0041708E 5F POP EDI
0041708F 5E POP ESI
00417090 5A POP EDX
00417091 59 POP ECX
00417092 5B POP EBX
00417093 – FFE0 JMP EAX
9. DxPACK V0.86
ESP+S(JMP EAX or 61ffe0)
0040D163 61 POPAD
0040D164 – FFE0 JMP EAX
10. PKLITE32 1.1
F8 5 次来到 EOP
11. 32Lite 0.03a
ESP 往下找到
PUSH EAX
50c3 or PUSH EAX
003780F4 50 PUSH EAX
003780F5 C3 RETN
来到
0041C53C FF96 84B50100 CALL DWORD PTR DS:[ESI+1B584]
0041C542 61 POPAD
0041C543 – E9 0848FFFF JMP QEDITOR.00410D50
注意:先用 LoadPE 转存 Olldbg 加载的那个加壳文件,退出,运行加壳后的文件,RecImport 修正 EOP 修复抓取文件到 DUMP 的那个文件。
12. VGCrypt PE Encryptor V0.75
ESP 安 F9(断点开始),地址-1=EOP
13. PC Shrinker 0.71
ESP
00142BA8 BA CC104000 MOV EDX,4010CC
00142BAD FFE2 JMP EDX
14. Petite2.2
1. D 12ffa0
3 下 F9
来到 EOP=地址-1
2. ESP 两下 同上
15. EXE Stealth2.72
ESP+S()
0040D49F 8B9D B62F4000 MOV EBX,DWORD PTR SS:[EBP+402FB6]
0040D4A5 039D BA2F4000 ADD EBX,DWORD PTR SS:[EBP+402FBA]
将堆栈中值10cc+400000=4010cc 得出记事本的Oep. 加壳软件的oep.
0040D4AB C1CB 07 ROR EBX,7
ESP 定律:就是加载程序后 F8单步运行 第一个变化的 ESP 值,右击寄存器上 ESP 在转存中跟随,在内存地址上 选中前四个,右击,断点,硬件访问,word F9,中断,….返回。 (D 12ffc0 选四个下硬件写入 dword) 我的其它小记

1. Aspcak 方法: ESP+6175(Sb) POPAD JMP
2. UPX 方法: S 0000 The First JMP 变种 ESP+S (60E9) 0040EA0E 60 PUSHAD 0040EA0F – E9 B826FFFF JMP chap702.004010CC
3. PECompact 1.68 – 1.84 ESP Or 注意 第一个 PUSH XXXX XXXX+基址(400000)=EOP
4. EZIP 1.0 方法: ESP
5. JDPack 1.x / JDProtect 0.9 ESP+S(6150) 0040E3F8 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX 0040E3FC 61 POPAD 0040E3FD 50 PUSH EAX 0040E3FE C3 RETN 0040E3FF 23E8 AND EBP,EAX
6. PE Pack 1.0 ESP+S (61ff) 0040D26F 61 POPAD 0040D270 FFE0 JMP EAX
7. WWPack32 1.x ESP
8. PEDiminisher 0.1 ESP+S(FFE0) or S(JMP EAX) 0041708D 5D POP EBP 0041708E 5F POP EDI 0041708F 5E POP ESI 00417090 5A POP EDX 00417091 59 POP ECX 00417092 5B POP EBX 00417093 – FFE0 JMP EAX
9. DxPACK V0.86 ESP+S(JMP EAX or 61ffe0) 0040D163 61 POPAD 0040D164 – FFE0 JMP EAX
10. PKLITE32 1.1 F8 5 次来到 EOP
11. 32Lite 0.03a ESP 往下找到 PUSH EAX 50c3 or PUSH EAX 003780F4 50 PUSH EAX 003780F5 C3 RETN 来到 0041C53C FF96 84B50100 CALL DWORD PTR DS:[ESI+1B584] 0041C542 61 POPAD 0041C543 – E9 0848FFFF JMP QEDITOR.00410D50 注意:先用 LoadPE 转存 Olldbg 加载的那个加壳文件,退出,运行加壳后的文件,RecImport 修正 EOP 修复抓取文件到 DUMP 的那个文件。
12. VGCrypt PE Encryptor V0.75 ESP 安 F9(断点开始),地址-1=EOP
13. PC Shrinker 0.71 ESP 00142BA8 BA CC104000 MOV EDX,4010CC 00142BAD FFE2 JMP EDX
14. Petite2.2 1. D 12ffa0 3 下 F9 来到 EOP=地址-1 2. ESP 两下 同上
15. EXE Stealth2.72 ESP+S() 0040D49F 8B9D B62F4000 MOV EBX,DWORD PTR SS:[EBP+402FB6] 0040D4A5 039D BA2F4000 ADD EBX,DWORD PTR SS:[EBP+402FBA] 将堆栈中值10cc+400000=4010cc 得出记事本的Oep. 加壳软件的oep. 0040D4AB C1CB 07 ROR EBX,7

来源: http://fcjblog.com/method-break-laws-off-of-16-shells-available-esp

<think>嗯,用户想知道基于ESP32单片机实现电流电压采集所需的硬件模块和方案。首先,我需要回忆一下ESP32的ADC特性和常见的电流电压测量方法ESP32本身有ADC引脚,但精度可能不够高,尤其是在测量小电压或需要高精度的时候。所以可能需要外部的ADC模块,比如ADS1115这样的16位ADC,来提高测量精度。 然后,电流测量通常有两种方法:直接采样和间接采样。直接采样可能需要用到分流电阻,结合运放电路来测量电压降,再根据欧姆定律计算电流。间接的话,霍尔效应传感器比如ACS712可能更常见,这类模块是非接触式的,适合测量较大的电流,而且隔离性好,但可能需要校准。 用户提供的引用里提到了ACS712模块和INA3221模块。ACS712适合单通道电流测量,而INA3221可以同时监测三个通道的电压和电流,这对于多路监测来说很方便。不过INA3221需要I²C接口,ESP32有多个I²C接口,应该没问题。另外,引用3里提到了使用水位传感器和继电器控制,可能用户的应用场景还涉及到水流监测或其他传感器,但当前问题主要集中在电流电压采集,所以暂时不需要考虑那些部分。 接下来,电压测量的话,如果被测电压在ESP32的ADC输入范围内(0-3.3V),可以直接连接,但若电压更高,就需要分压电路。例如,测量12V电压,可以用电阻分压将电压降到3.3V以下。分压电阻的选择需要考虑阻抗匹配和功耗,可能需要加滤波电容来稳定信号。 然后,硬件方案部分,可能需要分情况讨论:单路还是多路,精度要求高低。比如,如果只是简单的单路测量,ACS712加上分压电路可能足够。但如果是多通道高精度,就需要INA3221或者ADS1115配合分流电阻的方案。 软件部分,ESP32需要读取ADC的值,可能需要校准,尤其是使用内部ADC时,因为其非线性问题。对于I²C设备如INA3221,需要编写驱动代码,配置寄存器,读取数据。同时,电流计算要考虑传感器的灵敏度,比如ACS712的灵敏度是185mV/A,需要将电压读数转换为电流值。 还需要考虑隔离和保护电路,特别是在高电压或大电流场合,避免损坏ESP32。光耦隔离或者保险丝可能有用。 用户提供的引用中有提到MicroPython使用ACS712的例子,以及STM32与INA3221的结合,但用户问的是ESP32,所以需要调整到ESP32的GPIO和库支持。例如,ESP32的MicroPython或Arduino框架下如何读取这些传感器。 可能的相关问题会涉及具体模块的选择、电路连接方法、代码示例、校准方法以及多通道同步采集等。需要确保回答覆盖这些方面,并且引用提供的资料中的模块作为例子,比如INA3221和ACS712。</think>### 基于ESP32的电流电压采集方案 #### 一、硬件模块选择 1. **电压采集模块** - **分压电路**:若被测电压高于ESP32的ADC输入范围(0-3.3V),需使用电阻分压电路。例如,测量12V电压时,可用$R1=10k\Omega$和$R2=2.2k\Omega$组成分压电路,输出$V_{out} = V_{in} \cdot \frac{R2}{R1+R2}$[^1]。 - **高精度ADC模块**:ESP32内部ADC精度较低(约12位),若需高精度测量,可外接ADS1115(16位ADC),通过I²C接口与ESP32通信[^2]。 2. **电流采集模块** - **霍尔效应传感器(ACS712)**:基于霍尔效应,输出与电流成正比的模拟电压。例如,ACS712-20A模块灵敏度为$100mV/A$,需注意其输出为$V_{offset}=V_{CC}/2$,计算公式为$I = \frac{V_{out}-V_{offset}}{0.1}$。 - **分流电阻+运放方案**:通过测量分流电阻两端压降计算电流,公式为$I = \frac{V_{sense}}{R_{shunt}}$。需配合运放(如INA219)放大微小电压信号。 3. **集成模块(INA3221)** - **三通道监测**:INA3221可同时测量三路电压和电流,通过I²C接口输出数据,适合多电源系统监测。其电流测量基于分流电阻,电压测量直接输入。 #### 二、典型硬件方案 1. **单路低精度方案** - 使用ESP32内部ADC + 分压电路(电压) + ACS712(电流)。 - 成本低,适用于对精度要求不高的场景(如电池电量监测)。 2. **多路高精度方案** - 外接ADS1115(电压) + INA3221(电流)。 - 支持多通道同步采集,精度可达0.1%,适合工业控制系统。 #### 三、电路设计要点 1. **信号调理** - 添加RC低通滤波器(如$R=1k\Omega$, $C=0.1\mu F$)抑制高频噪声。 - 使用电压跟随器(运放)降低输出阻抗,避免ADC采样误差。 2. **隔离保护** - 在高电压场景中,使用光耦隔离(如PC817)或TVS二极管保护ESP32引脚。 - 电流测量回路串联自恢复保险丝(如500mA PTC)。 #### 四、软件实现 1. **ADC校准** ```python # MicroPython示例(电压测量) from machine import ADC, Pin adc = ADC(Pin(34)) adc.atten(ADC.ATTN_11DB) # 设置量程为0-3.3V voltage = adc.read() * 3.3 / 4095 # 12位分辨率 ``` 2. **INA3221驱动** ```python # INA3221数据读取(I²C接口) from machine import I2C, Pin i2c = I2C(scl=Pin(22), sda=Pin(21)) addr = 0x40 # INA3221默认地址 i2c.writeto(addr, b'\x01') # 配置寄存器 data = i2c.readfrom(addr, 2) # 读取电压值 ``` 3. **电流计算** - 对ACS712,需消除零点偏移: $$I = \frac{(ADC_{raw} \cdot 3.3/4095) - 1.65}{0.1}$$ - 对INA3221,需结合分流电阻值$R_{shunt}$: $$I = \frac{V_{shunt}}{R_{shunt}}$$ #### 五、应用场景 1. 智能家居(如插座功率监测) 2. 太阳能系统(多路电池组监测)[^2] 3. 工业设备(电机电流保护)[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值