3分钟上手API书写规范
最近工作上碰见了需要些api相关的需求,但是作为初出茅庐的菜鸡,对于这种工程性的东西不论是写的格式还是内容都不是那么规范,于是总结学习了一下各个大佬们的书写方法以及网上的很多模板,自己总结了这么一篇文章
文档名称、标题和概述写我们的api文档时,文档的名称和标题尽可能以 XXX项目API文档作为开始标题,示例如下
Sample项目的API文档
并在文档的标题后跟进我们的概述,概述主要声明以下内容:
适用范围
api功能
是否维护
版本以及修改日期
写一个简单的例子的话就是:
1.概述Sample 项目 是用于完成前端与后端
本文档只适用于前端和后端开发使用,API内容可能会发生改变,届时后端将会与前端就具体改动进行探讨,并将最终改动方案提交到本文档。
本文档中有关数据模型的相关陈述已在后端数据文档中详细论述,请参阅后端数据文档。
本文版本,修改日期,修改内容列表如下:
版本
日期
详情
v0.1
xxxx年xx月xx日
本版本为该项目的最初版本
项目的认证信息这一部分是可选的内容,如果你的项目不存在认证,那么这一部分就可以完美跳过了,如果有的话,那么还是建议将 ...
pygments代码高亮库生成图片实现自动换行
最近碰见了这样一个需求,需要使用pyments对代码进行高亮并生成图片,但是存在生成的代码图片没有行数限制的问题,于是我自己重新改写了image formatter规则。
重写的类以下带代码可能在pyright出现报错,但不影响运行
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128class LineBreakFormatter(ImageFormatter): def __init__(self, **options): super().__init__(**optio ...
gdb超全指令教程
GDB 支持的语言Ada,Assembly,C,C++,D,Fortran,Haskell,Go,Objective-C,OpenCL C,Modula-2,Pascal,Rust。
gdb实现原理调试器与进程建立联系使用linux中ptrace()系统调用
使用时会建立ptracer和ptracee关系,从而进行交互。
软断点gdb通过对代码进行修改,将目标代码修改为0xcc程序码,触发一个调试终端,发送sigtrap信号然后程序暂停执行,调试器接收到信号后,把0xcc恢复,然后将pc指针回退一步,等待进一步指令,如果不取消断点,执行完当前命令后,Tracer又会重新插入
基础使用语法规则1${register} #代表使用该寄存器地址
1*{address} #该地址指向的值
1{num}x #16进制数字
1!{command}#在进入路径处执行命令,但不能使用cd等改变gdb目标地址
1# 在‘#’进行注释
gdb启动程序gdb要跟踪程序存在三种方法
gdb中加载优点
简单调试易于使用
可 ...
模糊测试一
笔者今天下午进行了一场二进制研究相关面试,但面试后发现笔者在fuzz方面的原理和概念上并不熟练,并且在深度上严重不足,于是总结归纳,希望系统性的学习以下模糊测试,并决定专开一栏,进行相关的系统深入学习。
了解模糊测试模糊测试概念通过自动化生成并执行大量测试用例来返现目标的未知漏洞
模糊测试原理模型生成随机字符串生成随机字符串是一个比较简陋的方法,可能效果并不好,尤其是协议部分,可能在协议部分就出现问题
基于模板生成这里我们以HTTP协议为例,以下是一个HTTP协议的例子
1234http 1.0GET / HTTP/1.1Host: developer.mozilla.orgAccept-Language: zh
其中我们知道,类似于http这一类的信息是不变的,而像1.0、GET类似的信息是可变的,而下方Host中的操作是资源字符部分。基于以上我们的分析,我们可以生成一个模板,然后根据模板来进行字符串的生成,只有通过这一模板生成的字符串才是有意义的。
基于覆盖式的生成(覆盖制导)我们假设有以下的代码
12345678910if (data[0] > 0){ fu ...
修复ida8.4移植arm等反编译卡死问题(含完整版下载)
本文最早上传于先知社区IDA旧版本插件移植后卡死的研究及修复-先知社区 (aliyun.com)
修复后ida下载地址
通过网盘分享的文件:IDA_Pro_v8.3_Portable.7z链接: https://pan.baidu.com/s/1AWm31qhGrJ1IK5wKPQwJUQ?pwd=ddos 提取码: ddos
如还存在问题可以联系Q :3824970852 笔者抽空时可以研究修复一下
近日在研究异构路由器漏洞时,笔者使用的IDA出现了反编译异构路由器卡死的问题,和身边是师傅们交流后发现,这种问题不在少数,这种工具类的问题严重影响了正常的工作,故进行研究。
出现问题的直接原因在于此前由于IDA 8.3及以后的hexrays并未泄露,无法使用过去IDA 7.7的插件进行反编译,一通操作下通过ida_dll_shim等项目对7.7的hexrays进行了移植。移植完成后虽然可以使用,但部分函数仍出现IDA反编译时出现卡死等情况,导致vulfi等一众扫描类的插件不能以预期状态运行。
不过功夫不负有心人,笔者在搜寻的过程中找到了一篇帖子 在新版IDA中 ...
CVE-2018-16333复现
保护确认12345Arch: arm-32-littleRELRO: No RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x8000)
漏洞点确认function_name:form_fast_setting_wifi_set
1234567src = (char *)sub_2BA8C(a1, "ssid", &unk_E378C);if ( *src ){ strcpy(s, src); strcpy(dest, src); …………}
访问方法
1url:http://ip/goform/fast_setting_wifi_set
并根据一下发送确定数据包
123456789101112131415161718//$("#waiting").removeClass("none");//$("#wifi_setting").addCla ...
御网杯和ISCC——pwn方向wp
打完御网杯和ISCC,发现网络上并没有PWN的解,于是就简单写一下,御网杯和ISCC的所有pwn解
御网杯pwn canary通过覆盖canary后再次生成canary
123456789101112131415161718192021222324252627from pwn import *context.log_level = "debug"io = remote("47.105.113.86",30001)elfs = ELF("./Canary")magic = 0x401579ret = 0x000000000040101a def input_magic(payload): io.recvuntil("your choice") io.sendline(b"1") io.recvuntil("code:") io.sendline(payload)def set_canary(): io.recvuntil(& ...
cve-1873622
环境配置设置主机网络环境本地桥接br0,开放tap0接口
1234567891011121314sudo ip link add name br0 type bridge# 将 eth9(自己选择设备) 加入网桥sudo ip link set eth9 master br0# 设置自己的ipsudo ip addr add 192.168.117.1/24 dev br0sudo ip link set br0 up# 创建 TAP 设备(例如 tap0)sudo ip tuntap add name tap0 mode tap# 启动 TAP 设备sudo ip link set tap0 up# 将 TAP 设备添加到网桥 br0(假设 br0 已存在且配置正确)sudo ip link set tap0 master br0sudo ifconfig tap0 192.168.117.100/24
调整httpd文件由于不能模拟部分环境,需要将httpd的部分判断修改后才能正常运行
*开头表示修改完成后的行
12345678910111213* .text:0002E248 ...
rust-cubecl实现gpu开发
CubeCL Rust GPU计算教程新手也能学会的高性能开发,只需要rust和cubel基础知识即可实现!
CubeCL是一个现代化的Rust GPU计算框架,它让编写高性能、可移植的GPU内核变得简单。通过CubeCL,你可以:
使用熟悉的Rust语法编写GPU代码
无需深入掌握复杂的GPU编程知识
轻松切换不同后端(WGPU/CUDA等)
自动优化SIMD并行计算
为什么选择CubeCL?
简单易用:用Rust写GPU代码,学习曲线平缓
高性能:自动向量化优化,充分利用GPU算力
可移植:同一份代码可运行在WGPU/CUDA等不同后端
类型安全:Rust的类型系统保证代码安全性
提示:即使没有GPU编程经验,通过本教程你也能快速上手CubeCL!
环境配置配置CubeCL非常简单,只需在Cargo.toml中添加依赖:
12[dependencies]cubecl = { version = "0.4.0", features = ["wgpu","default"," ...
CVE-2025-24071-windows资源管理器欺骗漏洞
影响版本
Windows 10 Version 1809 for x64-based Systems
Windows 10 Version 1809 for 32-bit Systems
Windows Server 2025 (Server Core installation)
Windows Server 2025
Windows Server 2012 R2 (Server Core installation)
Windows Server 2012 R2
Windows Server 2016 (Server Core installation)
Windows Server 2016
Windows 10 Version 1607 for x64-based Systems
Windows 10 Version 1607 for 32-bit Systems
Windows 10 for x64-based Systems
Windows 10 for 32-bit Systems
Windows 11 Version 24H2 for x64-based Systems
...