- 博客(130)
- 资源 (21)
- 收藏
- 关注
原创 Frida如何获取Vector3(3个float)的返回值
经过我多次尝试和想像,我发现是这可以这样获取的,就是使用replace, 然后返回值定义成一个结构体的数组。在frida的文档里,没有任何描述如何获取这样的返回值。这个也是没有人可以回答。
2024-09-23 13:59:37 146
原创 万能无线航模模拟器加密狗说明书
在对码模式下,按一下按键会切换一个协议,在12个协议不断循环,请一边按一边观察指示颜色和闪烁的摩斯电码,当你观察到对应的协议,就可以停止按键了,如你需要AHDFS2A富斯二代,你看到指示灯两个紫色就可以了。对码成功后,关闭遥控,加密狗重新上电后,长按按键,指示灯会循环切换模式,观察到需要的模式,如模式二,就是看到每三秒闪两下,松开按键,指标灯会自动快闪重启,切换模式就成功了。使用加密狗上的按钮,选择对应的模拟器的工作模式。对码成功后,关掉遥控,观察指标灯的每3秒闪多少下,就是模式几。具体看FAQ第二节。
2024-09-09 23:01:04 1088
原创 USB HID 协议实现详解
但是请求的时候,往往比较当前说明的长,这个没有像之前那先尝试再请求,这里代码直接取两者最小返回即可。要是有多个接口(复合型的设备),IDX就是多个报告的下标索引。bmRequest = 80 -D7 == 方向是设备至主机?wIndex = 00 00 当有多个hid设备,此为下标索引。wValue == 00 01 , 根据表5, 1 为设备描述符。wLenght 09 00 第一次 请求 09 字节,根据report定义,定时或触发性发送数据。收到 9 字节,数据结构如表8,知道长度。
2024-08-25 23:13:46 344
原创 STM32F0XX TIM1 CH2 INPUT CAPTURE 输入捕获PPM信号
按文档的例子和其它例子都很少使用timer1的,不知道为什么,但是我想使用它,方便端口重用,我一开始使用tim1 ch3,死活不工作,搞了几天,没有办法换了一个ch2, 结果同样的代码就工作了。不知道为什么,希望看到的高手告知。(使用f103,timer1 的ch3同样的代码也没有问题。分享PPM的代码如下,是捕捉航模的PPM信号。
2024-08-18 15:36:57 195
翻译 当今最流行的推荐引擎算法有哪些?
但事实上,推荐数据集与通常的计算机视觉数据集有很大不同,这使得使用现有的实现和工具变得更加复杂(例如,TensorFlow 或 PyTorch 等库中的许多优化器不支持稀疏更新动量,这是训练推荐深度模型的基石)。要训练解决项目冷启动(或用户冷启动)的模型,您需要一个数据集,其中包括项目(或用户的)的详细描述,例如电影的类型、预算、持续时间或任何可能有助于推荐的变量。由于推荐是使用用户对商品的反馈数据集计算得出的,因此它们无法推荐没有(或只有少量)反馈的商品,例如新商品。让我们看看每种方法的优点和缺点。
2024-07-02 16:38:20 82 1
原创 MACOS VMWare Fusion无法将“Ethernet0”连接到虚拟网络“/dev/vmnet8”
以为是vmware的,使用上面的命令把vmnet都停了,发现还在。ifconfig 看了一下,发信息多了一个bridge..到 系统偏好设置->共享->互联网共享 这个关掉。各项服务启动也是正常的,但是就是vm没有网络了。想了半天,原来是在wifi上打开了共享互联网。记录一下,备忘和帮忙遇到同样问题的人。一直好端端的,突然打开vm提示这个。启动vmware的那堆服务器。再打开vm, 发现不提示。查了一下,应该是网络有关。这个bridge不见了。开机vm的网络也正常了。
2024-06-21 13:18:24 275
原创 小米poco x3 pro adbd 以root权限启动提供服务
8. 在mout的目录下的apex/com.android.adbd,找到adbd,复制出来,上传到手机的/data/local, 并加上执行权限。4. fastboot flash recoery twrp-3.7.1_12-0-vayu.img, 安装magisk, termux。6. 解压aosp_arm64-img-11718355.zip, 把system.img转成ext2,9.下载system_properties_arm64,上传到/data/local,并加上执行权限,
2024-05-10 10:10:28 386
原创 如何grep excel文件,在excel文件查找到字符串
当我们遇到一堆excel文件,我们想通过关键字去定位一下它在那些excel文件中存在,怎么办?直接grep是肯定不行的。1. 安装 xls2txt或xlsx2csv,把excel转txt再用grep。2. 安装xlsxgrep。
2024-03-22 11:07:49 266
原创 开源BLHELI-S 代码详细解读(五)
总体思想是根据电机运行状态计算前4次换相时间,然后根据前4次换相时间计算15度和7.5度电角度时间,换相之后延时7.5度电角度开始检测过零点,检测到过零点后延时15度电角度进行换相。我们继续来看calc_next_comm_timing, 每次操作完换相之后,这里都会调用,同时会设置timer3去等advance timing.
2024-03-01 13:28:33 356 1
原创 如何编译BLHELI 及BLHELI_S
开头改成SilabsPath和 RaisonancePath你安装所在路径。BLHELI_S目录下,修改一下MakeHesfiles.bat。3. BLHeli目录下修改MakeHesfiles.bat。开头,改成KeilPath你安装 的目录。就可以双击编译BLHELI_S了。下载Ride和RKit-51。就可以双击编译BLHELI了。这里只说silab的两个版本。
2024-02-27 23:58:45 377
原创 开源BLHELI-S 代码详细解读(四)
如Set_Pwm_C, P1SKIP = 37h(00110111b), 即P1.3 P1.6和 P1.7会给外设使用, 根据优先度,PCA0的CEX0会使用P1.3(CpwmFET)输出 CEX1 会在P1.6(CcomFET)输出。这个 wait_before_zc_scan,其实比较简单,就是从把timer3的超时设置为Comm_Period4x_L和Comm_Period4x_H, 只有在STARTUP_PHASE和 SHL INITIAL_RUN_PHASE阶段才会设置。
2024-02-20 10:56:07 662
原创 开源BLHELI-S 代码详细解读(三)
如果不满足,则跳到run_to_wait_for_power_on_fail,这里上一篇有详细读了,是一些失败的检查,最坏会跳回init_no_signal。B. 否则就是在启动的阶段(STARTUP_PHASE),这里会将Startup_Zc_Timeout_Cntd减1(超时次数,wait_before_zc_scan会把它设置成2),要是它还不是0,就跳到comp_check_timeout_extend_timeout,再调用setup_zc_scan_timeout。
2024-02-06 19:36:56 868
原创 开源BLHELI-S 代码详细解读(二)
DIR_CHANGE_BRAKE没有设置的话,就跳到run_to_wait_for_power_on,不是的话,清除DIR_CHANGE_BRAKE的标志,清除PGM_DIR_REV标志,要是RCP_DIR_REV有设置,那么设置PGM_DIR_REV,然后把当前的阶段设置回INITIAL_RUN_PHASE。run_to_wait_for_power_on_fail是由前面的wait_for_comp_out_low和wait_for_comp_out_high的异常读取触发的。
2024-02-04 17:28:14 1735 3
原创 开源BLHELI-S 代码详细解读(一)
Pgm_Beacon_Delay会和Power_On_Wait_Cnt_H相减,要是借位,就会开始beep f4, beep一次Power_On_Wait_Cnt_H会减1,就是Power_On_Wait_Cnt_L是255的时候beep一次了。如果有信号(Rcp_Timeout_Cntd不是零),同时New_Rcp(油门)不是零跳到 wait_for_power_on_nonzero, 再检查一次Rcp_Timeout_Cntd是不是零,要是不是零,那就跳到init_start。这个代码在inc里。
2024-01-29 15:52:24 1921 4
原创 使用GDB动态补丁ARM64的程序 跳转到任意地址
正常的 arm64跳转转令B,BL,BLX只有+-128M, 我们很多时候要跳到大于这个值的地址。我们在arm64下可以选的指令就只有br指令了。原来在ARM/Thumb中使用的 ldr pc, [pc, #?] , 但arm64是不能这样了。但是它也需要给一个寄存器赋值一个64bit的地址, 可是arm的指令是固定的32bit的,即使给一个寄存器赋值一个64bit的值都麻烦。如 set *(int*)0xabc1234 = 0x58000070。补丁就是简单了,就是直接使用set命令就好了。
2024-01-18 13:44:58 559
原创 GDB 调用无符号的任意函数
我们知道有符号的函数调用很简单了,直接像写c语言一样传参调用即可。但是无符号的就不知道怎么弄了,查遍了整个网络我都没有查到怎么做。5. until命令执行完成,说明函数也执行完成了,因为是返回地址设置了。1. 保存好所有的现场,如寄存器,当前pc, 返回地址,堆栈等。例子是调用一个对象转json的无符号函数,然后打印它返回的结果。6. 如果有需要打印一些结果,如p/x x0.4. 使用until 命令到执行到的返回地址。2. 替换返回地址,为当前指令下一个地址。3. 设置pc去执行函数,
2024-01-18 13:18:30 535
原创 LUA 对象转excel
因为是excel, 所以第一层要是数组,否则没有什么意义,这里使用开源的json.lua, 但是开源的,对于数字作下标的,或者是一个数组里,不意类型的key混合的情况无法转换,所以先进行了扫描判断是不是混合的key. 是的话,取消key,把key到结构里作为一个字段处理。
2024-01-17 09:18:43 839
原创 JS 解析RGB控制台终端输出有颜色的LOG
RGB转consolecolor是自己了随便写的,差不多就算了。可以解析一下html的颜色输出log, 在终端打印成相近的颜色。
2024-01-11 17:56:23 410
原创 FRIDA 调用原生函数时使用补丁也生效
即,你补丁了一下函数,你去调用它,发现你使用frida打的补丁和hook不生效。1. 补丁函数必须使用。
2024-01-10 12:39:14 395
原创 如何绕过pairip的防护
签名绕过的第二个办法是不要改dex, 改一下androidmanifest.xml, 把 com.pairip.application.Application改成android.app.Application. 原理很是com.pairip.application.Application继承android.app.Application, 只是多了一些签名验证,刚好我们不需要,使用基类跑就好了。然后libpairip会开线程,开定时检查一些gdb和frida之类的,检查到就会来个异常把进程搞死.
2024-01-06 17:16:08 1395 3
原创 三星galaxy s9 root教程
11. 刷完后因为去掉了auto reboot, 是不会重启的,这个时候按 Volume down + blix + 电源键, 让它重启,这里很重要的一点,就是你必须在关键的一刻,你按键切换成 Volume Up + blix + 电源键, 等到看到三星的logo,你松开电源键, 保持按住 Volume Up + blix, 等几秒就看到twrp的界面。8. 按住音量 减(volume down) + blix + 电源键 , 7秒后,进入刷机模式,按 volume up。
2024-01-06 17:05:06 2505
原创 超简单免费转换ape到flac
4.到ape所在的目录,执行以下命令。3. 设置path到ffmpeg。1. 安装最新版的ffmpeg。2. 安装cywin环境。
2023-09-11 20:24:29 606
原创 使用arduino Nano 自制nRF24LE1 的烧录器进行固件烧录
4.解压program.zip得到一个烧录的命令行工具,执行命令进行write或dump。3. 实质是spi下载来的,接线, nRF24LE1是3.3设备,别接5v。也有专门usb编程器,比较贵,可以买个arduino nano自已做一个。需要自己数一下多少pin的,然后和arduino的脚接起来.2. 使用arduino编译烧录固件。1. 下载arduino的烧录固件。
2023-06-26 23:36:43 768
原创 stm32flash碰到hex文件出错,读取超慢, 占用内存超多的问题解决
这个问题是因为sdcc生成的hex的每行的地址并不是排序的好的,有些高的地址在前面,低的地址在后面,这样的话,stm32flash这个hex.c并不能处理这个情况。里面有一个逻辑是用来填补0xff的,当后面的地址比前面大,一减得负数,但是变量是无符号的,结果就变成了4.2G了,然后一碰到一次就申请4.2G内存,然后填充0xff, 结果读了一个几十k的hex耗时十分钟,还占用超多内存,然后内存还是错的。解决办法,可以使用srec_cat把hex处理一下,输出的文件的地址就是排序好了。
2023-06-24 20:47:22 367
原创 MacOs 下用于性能优化的“perf“命令
MacOs下面没有这个命令,但有类似的,也是非常方便,它就是 Instruments, 是xcode自带一个性能分析和自动化测试的工具。需要安装Xcode.以下使用例子。
2023-06-24 17:00:06 1150
原创 一个TIMER软件模拟输出6个PWM
51单片机的timer很少,往往16bit的timer只有一个,可以硬件输出的channel也不多。只能使用软件模拟了。pwm是1-20ms一个周期,要是设置一个固定的周期,中断间隔就必须比较小,如0.01ms , 这个精度已经不怎么样了,但是每秒还是需要100000次中断,对于51来说,这个压力很大,实测效果很差。1. pwm需要每20ms对pin脚操作两次,周期开始设置它为1,到达指定时间时设置它为0,这个宽度,在航模的信号里,是1-2ms之间。我们将6个通道,每个分时3ms给它做这第一项的两次设置。
2023-06-22 12:36:54 803
原创 高通Qualcomm处理器的手机或设备进EDL 9008模式的办法
由于我们有很多基于 Qualcomm 的设备,其中一些设备可能会古怪地猜测如何进入 EDL 模式,或者如何正确进入。例如,对于 Alcatel,您必须先按住两个音量键,然后再按住其中一个,对于 CAT B35,您必须按住 * 和 #,对于 8110,您必须按住 Up 和 Down,在此期间您必须插入电缆。因此,一个非常简单的电缆模块(一个穷人的夹具)就派上用场了,它根本不需要焊接。1. 拿一根备用的 microUSB 数据线,剥去中间某处的绝缘层。3.将USB端连接到PC,按住剥开的线约5秒钟。
2023-01-18 16:57:40 3438
原创 stm32 硬件spi半双工三线的一些研究心得
这个根据工作原理分析了一下,为什么在这样,主要是因为我们的读的时候,要是这个速度高,我们的mcu还没有去禁用SPI停时钟这个太慢了,上面代码已经在判断到RXNE时马上disable SPI了,但是明显,这个还是不够快。a7105可以使用四线spi,或者3线spi, 但是之前都是使用3线的软件模拟的三线spi的,所以不想改其它代码了,就想可以提高一个spi的读写速度,原来软件方式的读写速度,在48Mhz的03x下面,大约速度是1.6mbs,使用硬件spi之后,最终大约速度为12mbs.
2022-09-04 21:52:42 5891 2
原创 富斯,迈克,天地飞4合1接收机说明书
(上图,飞机用的接收机)(上图,车用的接收机) A: 一 首先遥控器开机进入对码模式, 二 接收机上电, 三 静待45秒,即可自动完成对码。 一 关闭遥控器 二 接收机上电三 静待40秒,直到接收机进入每1秒1亮1灭慢闪四打开遥控器,接收块闪,然后常亮,对码完成A: FLLYSKY,天地飞:一. 关掉原来的摇控器, 二. 关掉接收机电源 三. 打开新的遥控器开机进入对码模式 四. 接收机上电, 五。 静待45秒,即可自动完成对
2022-06-21 11:41:36 11161 2
原创 MC6C迈克/FLYSKY富斯/WFLY2天地飞二代接收机远程刷固件教程
1. 安装ch341的驱动程序CH340/CH341 Windows串口驱动安装 - 南京沁恒微电子股份有限公司CH341SER.EXE - 南京沁恒微电子股份有限公司2.ch341的跳线跳到usb To ttl3.接收机飞线4.连接5v, RX, TX GND 到接收机的+,3, 1 ,G5.下载stm32isp程序安装6. 接上ch341到电脑7. 打开stm32isp程序8.输入密码,密码找卖家要,点击登录9.点击下载10. 拆除接收机飞线........
2022-05-16 16:21:21 3281
原创 富斯/MC6接收机说明书
正面 反面1. PWM输出通道多达6个, 可以自由切换7种模式,自由选择无刷,有刷,差速,炫酷的RGB全彩灯带等,自由玩耍。2. 集成两个5A有刷电调,通过模式选择,可以双发,可差速,支持8250以下的空心杯有刷电机3. 支持16通(MC6/7C 14通)sbus(第15通是RSSI),9通ppm(第9通是RSSI),可以接飞控,飞fpv. 4. 支持Failsafe失控保护,只需要直接在摇控器的Fail...
2022-04-20 15:09:42 10783
原创 自制2.4G ELRS接收机,不需要打板,容易制作
制作难度:中等,主要是器件太小,焊接需要耐心一。硬件材料1.LoRa射频模块,sx1280 : E28-2G4M12S2.MCU Wifi模块:ESP-01F3.各色硅胶软线若干4.1k电阻5. TTL转串口 CH341 (CH340或FTDI随便一个即可。)6. DC-DC3.3v降压模块7. LED灯一个。二。软件:1. EpressLRS Configuratorhttps://github.com/ExpressLRS/ExpressLRS-Configu..
2022-01-03 10:54:52 8622 6
原创 自制2.4G ELRS TX高频头, 内置于富斯i6
制作难度:容易一。硬件材料:1.LoRa射频模块,sx1280 : E28-2G4M27S2.MCU Wifi模块:ESP-WROOM323.各色硅胶软线若干4.1k电阻5.富斯FS I6摇控器6.JLink一个,刷写固件用7. 2.4G天线一个软件:1. EpressLRS Configuratorhttps://github.com/ExpressLRS/ExpressLRS-Configurator2.我写的的FSi6固件, ERFLY6,GitHub...
2022-01-03 10:01:54 7107 31
原创 STM32 LL库使用SPI读写
void Rfchip_Spi_Init(void){ LL_GPIO_ResetOutputPin(GPIOA,LL_GPIO_PIN_5); LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_7); RFChip_Disable;}void Rf_Spi_Write_Byte(uint8_t dat){ LL_GPIO_ResetOutputPin(GPIOA,LL_GPIO_PIN_5); LL_GPIO_Se...
2021-12-31 15:51:02 3118
原创 STM32 LL库 操作FLASH 保存数据
#include "string.h"#include "stm32f1xx_ll_system.h"#define FLASH_PAGE_SIZE ((uint32_t)0x00000400)#define LL_FLASH_GET_FLAG(__FLAG__) (((__FLAG__) == FLASH_FLAG_OPTVERR) ? \ (FLASH->OBR & FLASH_OBR_OPT...
2021-12-31 15:50:09 1766
原创 STM32 使用 LL库进行I2C读写
为什么要使用LL库,因为生成的固件大小可以小很多很多,MCU贵呀,可以省很多成本了。uint8_t i2c_read_len(I2C_TypeDef *I2Cx, uint8_t Addr , uint8_t Reg, uint8_t len,uint8_t *buf);uint8_t i2c_write_len(I2C_TypeDef *I2Cx, uint8_t addr , uint8_t reg, uint8_t len,uint8_t *buf);实现这两个函数,理论上全...
2021-12-31 15:46:45 5635 3
原创 Freescale 飞思卡尔使用UART中断,单线UART
1void setup_crsf_serial_port(uint32_t baud,crsf_read_cb_t read_cb){ if(g_crsf_read_callback==0) { g_crsf_read_callback = read_cb; //uart_single_init(bdrate,DEFAULT_SYSTEM_CLOCK,bdrate);//Set single wire mode. SIM->SCGC4 |= S
2021-12-31 15:46:27 471
2013-2014的MBP的固件427
2020-11-17
com.goplaycn.googleinstall.apk
2020-05-28
MachORuntime.pdf
2020-04-28
twrp-3.3.1-0-shamu.img
2019-11-27
File_DXE_driver_NVMe_mbp114.ffs
2019-11-07
Gigabyte Phoenix X99 SLI +Vega64+Xeon E5 2996V4 EFI.zip
2019-07-03
Clover EFI For MSI X99ARaider E5-2696V4 MacOS High Sierra 10.13
2017-11-12
Geekbench 4.2.0破解补丁
2017-11-12
Synalyze It! Pro 1.20 破解补丁
2017-11-12
Clover_v2.4k_r4114 for x99
2017-07-14
clover+EFI+gtx1080 +msiX99ARaider+i76800k+sm951 NVMe.zip
2017-04-23
Finger Sensing Pad macos x 触模板 驱动源代码
2014-03-04
lzma in as3
2011-12-09
j2me手机游戏之俄罗斯方块
2008-10-11
SharpSniffer
2008-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人