首页
视频
壁纸
统计
更多
关于
Search
1
红盟云发卡系统源码,带前台模板,支持易支付-亲测可用
880 阅读
2
Typecho 付费阅读插件二开版-免登录版-对接第三方支付-最新可用
498 阅读
3
zepp手动版刷步数教程
481 阅读
4
康乐kangle虚拟主机设置运行目录public的方法,亲测可用
387 阅读
5
SaoML流控拦截系统教程
253 阅读
默认分类
软件分享
手机软件
电脑软件
源码分享
技术教程
Linux相关
其他
登录
/
注册
Search
标签搜索
网站源码
源码
电脑软件
手机软件
插件
发卡网
虚拟主机
zip压缩包
压缩包密码找回
意随风
累计撰写
35
篇文章
累计收到
0
条评论
首页
栏目
默认分类
软件分享
手机软件
电脑软件
源码分享
技术教程
Linux相关
其他
页面
视频
壁纸
统计
关于
搜索到
11
篇与
其他
的结果
2024-05-19
smali常用语法解读-APP逆向必备
nop 没有操作move vx,vy 移动内容 vy 到 vx.寄存器范围必须在256以内move/from16 vx,vy 移动 vy 到 vx. vy寄存器范围只能在64k以内 vx 寄存器范围必须在256内.move-wide/from16 vx,vy 移动 long/double 值从 vy 到 vx. vy 寄存器范围只能在64k以内 vx是一个 256 寄存器.move-object vx,vy 自动对象引用从 vy 到 vx.move-object/from16 vx,vy 移动对象引用从 vy 到 vx, vy 可以添加 64k 寄存器和 vx 可以添加 256 寄存器.move-result vx 把前面运行的结果赋值给 vx.move-result-wide vx 移动 long/double 方法调用结果赋值到vx,vx+1.move-result-object vx 移动前面的方法调用结果到 vxmove-exception vx 移动异常对象 并抛出异常到 vx.return-void 没有返回值返回return vx 返回值 vxreturn-wide vx 返回double/long 结果 vx,vx+1.return-object vx 返回vx对象引用值const/4 vx,lit4 将4字节的参数赋值到 vxconst/16 vx,lit16 将16进制数赋值到 vxconst vx, lit32 将整数常量赋值到 vxconst/high16 v0, lit16 将16位不变的最高位寄存器用于初始化浮点数const-wide/16 vx, lit16 将整数常量vx和vx+1寄存器扩大整数为常量..const-wide/32 vx, lit32 把 32 bit 常数 vx 和 vx+1 寄存器const-wide vx, lit64 把64 bit 常数 vx 和 vx+1 放入寄存器.const-wide/high16 vx,lit16 将16位常数 vx 和 vx+1 的最高位寄存器终于初始化值的两倍const-string vx,string_id 设定一个字符串常量 vx 字符串idconst-class vx,type_id 从 type_id 移动类对象和类标识(e.g. Object.class) 到 vx.monitor-enter vx 监控对象引用 vx.monitor-exit 监视器对象引用 vx.check-cast vx, type_id 检查是否对象引用instance-of vx,vy,type_id 检查是否 vy 是否是一个类的实例 type_id.array-length vx,vy 计算vy引用的数组元素并赋值到 vx.new-instance vx,type 实例化对象引用并将 vx 创建为新实例new-array vx,vy,type_id 生成新的数组 type_id 类型和 vy 元素大小并将数组赋值给 vx.filled-new-array {parameters},type_id 生成新数组 type_id 并填充 parameters5. 生成的数组可以通过 move-result-object 引用后使用 filled-new-array 指令filled-new-array-range {vx..vy},type_id 生成一个新数组 type_id 和填补参数 生成新数组引用可以通过 move-result-object 指令使用 filled-new-array fill-array-data vx,array_data_offset 填充数组引用到vxthrow vx 抛出一个异常对象,异常对象vx.goto target 无条件跳转.goto/16 target 无条件跳转packed-switch vx,table 实例化一个 switch语句,查找表与常量和偏移量为常数,如果表里没有匹配到则继续执行下一条指令.sparse-switch vx,table 实例化 switch语法表 指令使用查找表与常量和偏移量为常数,如果表里没有匹配到则继续执行下一条指令.cmpl-float 在vy 比较浮点值后赋值到 vxcmpg-float vx, vy, vz 比较浮点值 vy 和 vz 和设置整数赋值到 vx.cmpl-double vx,vy,vz 比较 double 值 vy 和 vz 并设置整数 赋值到 vx.cmpg-double vx, vy, vz 比较 double 值 vy 和 vz 并设置整数 赋值到 vx.cmp-long vx, vy, vz 比较 long 值 vy 和 vz 并设置整数 赋值到 vx.if-eq vx,vy,目标 如果vx == vy注2,跳转到目标。.if-ne vx,vy,目标 如果vx != vy注2,跳转到目标if-lt vx,vy,目标 如果vx < vy注2,跳转到目标if-ge vx, vy,目标 如果vx >= vy注2,跳转到目标。if-gt vx,vy,目标 如果vx > vy注2,跳转到目标if-le vx,vy,目标 如果vx <= vy注2,跳转到目标if-eqz vx,目标 如果vx == 0注2,跳转到目标。if-nez vx,目标 如果vx != 0注2,跳转到目标。if-ltz vx,目标 如果 vx < 0跳转到目标if-gez vx,目标 如果 vx>=0 跳转到目标.if-gtz vx,目标 如果 vx>0 跳转到目标.if-lez vx,目标 如果 vx<=0 跳转到目标.aget vx,vy,vz 得到整数值对象引用 array 到 vx. aget-wide vx,vy,vz 获得 long/double 值 long/double 数组为 vx,vx+1. vy引用数组和vz引索aget-object vx,vy,vz 获得对象引用 值和 n对象引用 数组赋值到 vx vy 引用数组和vz引索aget-boolean vx,vy,vz 获得 boolean 值和 boolean 数组赋值到 vx vy 引用数组和vz引索aget-byte vx,vy,vz 获得 byte 值把 byte 数组赋值到 vx vy 引用数组和vz引索aget-char vx, vy,vz 获得 char 值和 character 数组赋值到 vx aget-short vx,vy,vz 获得 short 值和 short 数组赋值到 vx .aput vx,vy,vz 把integer 赋值到 vx 得到整数元素组. .aput-wide vx,vy,vz 把double/long 赋值到 vx,vx+1 成double/long 数组.aput-object vx,vy,vz 把vy对象引用 赋值到 vx 得到整数元素组aput-boolean vx,vy,vz 把boolean 赋值到 vx 得到元素 boolean 数组 .aput-byte vx,vy,vz 把 byte 赋值到 vx 得到元素 byte 数组 .aput-char vx,vy,vz 把 char 赋值到 vx 字符数组的一个元素被vy引用的数组对象.aput-short vx,vy,vz 把 short 赋值到 vx 得到元素 short 数组 .iget vx, vy, field_id 读取一个 实例字段到 vx. 实例从vy引用.iget-wide vx,vy,field_id 读取一个 实例字段到 vx1. 实例从vy引用.iget-object vx,vy,field_id 读取一个对象引用 实例字段到 vx. 实例从vy引用.iget-boolean vx,vy,field_id 读取 boolean 实例字段到 vx. 实例从vy引用.iget-byte vx,vy,field_id 读取 byte 实例字段到 vx. 实例从vy引用.iget-char vx,vy,field_id 读取 char 实例字段到 vx. 实例从vy引用.iget-short vx,vy,field_id 读取 short 实例字段到 vx. 实例从vy引用.iput vx,vy, field_id 将vx放入一个实例字段. 实例从vy引用.iput-wide vx,vy, field_id 把 wide 数值 in vx and vx+1 注册到一个实例字段 实例从vy引用.iput-object vx,vy,field_id 把 the对象引用在vx实际化字段. 实例从vy引用.iput-boolean vx,vy, field_id 把 boolean 数值在vx实际化字段 实例从vy引用.iput-byte vx,vy,field_id 把 byte 数值在vx实际化字段. 实例从vy引用.iput-char vx,vy,field_id 把 char 数值在vx实际化字段. 实例从vy引用.iput-short vx,vy,field_id 把 short 数值在vx实际化字段. 实例从vy引用.sget vx,field_id 从 field_id 读取整个字段到 vx.sget-wide vx, field_id 从 field_id 读取静态字段到 vx 和 vx+1 寄存器.sget-object vx,field_id 读取对象引用 field_id 到 vx.sget-boolean vx,field_id 读取 boolean 静态字段 field_id 到 vx.sget-byte vx,field_id 读取 byte 静态字段 field_id 到 vx.sget-char vx,field_id 读取 char 静态字段 field_id 到 vx.sget-short vx,field_id 读取 short 静态字段 field_id 到 vx.sput vx, field_id 把 vx 静态字段sput-wide vx, field_id 把 vx and vx+1 转到一个静态字段sput-object vx,field_id 对象引用 in vx 转到一个静态字段sput-boolean vx,field_id 把 boolean 赋值到 vx转到一个静态字段sput-byte vx,field_id 把 byte 赋值到 vx转到一个静态字段sput-char vx,field_id 把 char 赋值到 vx 转到一个静态字段sput-short vx,field_id 把 short 赋值到 vx 转到一个静态字段invoke-virtual { parameters }, methodtocall 调用一个虚拟方法与参数.invoke-super {parameter},methodtocall 调用直接父类的虚方法.invoke-direct { parameters }, methodtocall 调用一个方法参数,没有虚拟方法解析invoke-static {parameters}, methodtocall 调用一个静态方法与参数invoke-interface {parameters},methodtocall 调用接口方法invoke-virtual/range {vx..vy},methodtocall 调用虚拟方法的寄存器.指定一个寄存器和寄存器数量被传递给方法invoke-super/range 直接调用父类的虚方法。指定一个寄存器和寄存器数量被传递给方法invoke-direct/range {vx..vy},methodtocall 直接调用寄存器方法指定一个寄存器和寄存器数量被传递给方法invoke-static/range {vx..vy},methodtocall 调用静态方法寄存器指定一个寄存器和寄存器数量被传递给方法invoke-interface-range 调用一个接口方法寄存器,指定一个寄存器和寄存器数量被传递给方法neg-int vx,vy 计算 vx=-vy.neg-long vx,vy 计算 vx,vx+1=-(vy,vy+1)neg-float vx,vy 计算 vx=-vyneg-double vx,vy 计算 vx,vx+1=-(vy,vy+1)int-to-long vx, vy 转换整数到 vy 并转成 long in vx,vx+1.int-to-float vx, vy 转换整数到 vx 并转成 float in vx.int-to-double vx, vy 转换vy到整数 double in vx,vx+1.long-to-int vx,vy 转换 long vy 值 ,vy+1 到整数储存到 vxlong-to-float vx, vy 转换 long vy 值 ,vy+1 成 float in vx.long-to-double vx, vy 转换 long vy 值 ,vy+1 成 double 赋值到 vx,vx+1.float-to-int vx, vy 转换 float vy 值到整数并赋值到 vx.float-to-long vx,vy 转换 float vy 值 成long 赋值到 vx.float-to-double vx, vy 转换 float vy 值 成double 赋值到 vx,vx+1.double-to-int vx, vy 转换 double vy 值 ,vy+1 到整数赋值到 vx.double-to-long vx, vy 转换 double vy 值 ,vy+1 成long 赋值到 vx,vx+1.double-to-float vx, vy 转换 double vy 值 ,vy+1 成float 赋值到 vx.int-to-byte vx,vy 转换 int vy 值到 byte 值,并保存到vx.int-to-char vx,vy 转换 int vy 值到char 值,并保存到vx.int-to-short vx,vy 转换 int vy 值到 short 值,并保存到vx.add-int vx,vy,vz 计算 vy+vz 并将结果放到 vx.sub-int vx,vy,vz 计算 vy-vz 并将结果放到 vx.mul-int vx, vy, vz vz 与 vy 相乘并将结果转int放到 vx.div-int vx,vy,vz Divides vy 与 vz 并将结果赋值到 vx.rem-int vx,vy,vz 计算 vy % vz 并将结果赋值到 vx.and-int vx, vy, vz 计算 vy AND vz 并将结果赋值到 vx.or-int vx, vy, vz 计算 vy OR vz 并将结果赋值到 vx.xor-int vx, vy, vz 计算 vy XOR vz 并将结果赋值到 vx.shl-int vx, vy, vz 转换 vy 指定的位置留下后并储存结果 到 vx.shr-int vx, vy, vz 从vy指定位置转换并储存到 vx.ushr-int vx, vy, vz 无符号右移 (>>>) vy 指定位置后将结果储存到 vxadd-long vx, vy, vz 添加 vy 到 vz 并将结果赋值到 vx1.sub-long vx,vy,vz 计算 vy-vz 并将结果赋值到 vx1.mul-long vx,vy,vz 计算 vy*vz 并将结果赋值到 vx1.div-long vx, vy, vz 计算 vy/vz 并将结果赋值到 vx1.rem-long vx,vy,vz 计算 vy % vz 并将结果赋值到 vx1.and-long vx, vy, vz 计算 the vy AND vz 并将结果赋值到 vx1.or-long vx, vy, vz 计算 the vy OR vz 并将结果赋值到 vx1.xor-long vx, vy, vz 计算 the vy XOR vz 并将结果赋值到 vx1.shl-long vx, vy, vz Shifts left vy by vz positions 并将结果储存在 vx1.shr-long vx,vy,vz Shifts right vy by vz positions 并将结果储存在 vx1.ushr-long vx, vy, vz Unsigned shifts right vy by vz positions 并将结果储存在 vx1.add-float vx,vy,vz 添加 vy 到 vz 并将结果赋值到 vx.sub-float vx,vy,vz 计算 vy-vz 并将结果赋值到 vx.mul-float vx, vy, vz 增加 vy 与 vz 并将结果赋值到 vx.div-float vx, vy, vz 计算 vy/vz 并将结果赋值到 vx.rem-float vx,vy,vz 计算 vy % vz 并将结果赋值到 vx.add-double vx,vy,vz 添加 vy 到 vz 并将结果赋值到 vx1.sub-double vx,vy,vz 计算 vy-vz 并将结果赋值到 vx1.mul-double vx, vy, vz 增加 vy 与 vz 并将结果赋值到 vx1.div-double vx, vy, vz 计算 vy/vz 并将结果赋值到 vx1.rem-double vx,vy,vz 计算 vy % vz 并将结果赋值到 vx1.add-int/2addr vx,vy 添加 vy 到 vx.sub-int/2addr vx,vy 计算 vx-vy 并将结果赋值到 vx.mul-int/2addr vx,vy 相乘 vx 和 vy.div-int/2addr vx,vy Divides vx 和 vy 并将结果赋值到 vx.rem-int/2addr vx,vy 计算 vx % vy 并将结果赋值到 vxand-int/2addr vx, vy 计算 vx AND vy 并将结果赋值到 vx.or-int/2addr vx, vy 计算 vx OR vy 并将结果赋值到 vx.xor-int/2addr vx, vy 计算 vx XOR vy 并将结果赋值到 vx.shl-int/2addr vx, vy Shifts vx left by vy positions.shr-int/2addr vx, vy 从 vy 转换到 vx.ushr-int/2addr vx, vy 无符号右移vy到vx的指定位置add-long/2addr vx,vy 添加 vy 到 vx1.sub-long/2addr vx,vy 计算 vx-vy 并将结果赋值到 vx1.mul-long/2addr vx,vy 计算 vx*vy 并将结果赋值到 vx1.div-long/2addr vx, vy 计算 vx/vy 并将结果赋值到 vx1.rem-long/2addr vx,vy 计算 vx % vy 并将结果赋值到 vx1.and-long/2addr vx, vy 计算 vx AND vy 并将结果赋值到 vx1.or-long/2addr vx, vy 计算 vx OR vy 并将结果赋值到 vx1.xor-long/2addr vx, vy 计算 vx XOR vy 并将结果赋值到 vx1.shl-long/2addr vx, vy Shifts left the 赋值到 vx,vx+1 从 vy 指定的位置 并将结果储存在 vx,vx+1.shr-long/2addr vx, vy Shifts right the 赋值到 vx,vx+1 从 vy 指定的位置 并将结果储存在 vx,vx+1.ushr-long/2addr vx, vy 无条件转移vy 赋值到 vx,vx+1 并将结果储存在 vx,vx+1.add-float/2addr vx,vy 添加 vy 到 vx.sub-float/2addr vx,vy 计算 vx-vy 并将结果储存在 vx.mul-float/2addr vx, vy 相乘 vx 和 vy.div-float/2addr vx, vy 计算 vx/vy 并将结果赋值到 vx.rem-float/2addr vx,vy 计算 vx/vy 并将结果赋值到 vx.add-double/2addr vx, vy 添加 vy 到 vx1.sub-double/2addr vx, vy 计算 vx-vy 并将结果赋值到 vx1.mul-double/2addr vx, vy 相乘 vx 和 vy1.div-double/2addr vx, vy 计算 vx/vy 并将结果赋值到 vx1.rem-double/2addr vx,vy 计算 vx % vy 并将结果赋值到 vx1.add-int/lit16 vx,vy,lit16 添加 vy to lit16 并将结果储存到 vxsub-int/lit16 vx,vy,lit16 计算 vy - lit16 并将结果储存到 vxmul-int/lit16 vx,vy,lit16 计算 vy * lit16 并将结果储存到 vxdiv-int/lit16 vx,vy,lit16 计算 vy / lit16 并将结果储存到 vxrem-int/lit16 vx,vy,lit16 计算 vy % lit16 并将结果储存到 vxand-int/lit16 vx,vy,lit16 计算 vy AND lit16 并将结果储存到 vxor-int/lit16 vx,vy,lit16 计算 vy OR lit16 并将结果储存到 vxxor-int/lit16 vx,vy,lit16 计算 vy XOR lit16 并将结果储存到 vxadd-int/lit8 vx,vy,lit8 添加 vy to lit8 并将结果储存到 vxsub-int/lit8 vx,vy,lit8 计算 vy-lit8 并将结果储存到 vxmul-int/lit8 vx,vy,lit8 增加 vy 与 lit8 8-bit 文字常量 并将结果赋值到 vx.div-int/lit8 vx,vy,lit8 计算 vy/lit8 并将结果储存到 vxrem-int/lit8 vx,vy,lit8 计算 vy % lit8 并将结果储存到 vxand-int/lit8 vx,vy,lit8 计算 vy AND lit8 并将结果储存到 vxor-int/lit8 vx, vy, lit8 计算 vy OR lit8 并将结果赋值到 vx.xor-int/lit8 vx, vy, lit8 计算 vy XOR lit8 并将结果赋值到 vx.shl-int/lit8 vx, vy, lit8 转换 v0 留下指定位置shr-int/lit8 vx, vy, lit8 从指定位置读取文字常量并将结果储存到 vx.ushr-int/lit8 vx, vy, lit8 无符号右移 v0 (>>>)execute-inline {parameters},inline ID 执行内联方法内联 ID.invoke-direct-empty 占位符修改空对象.. 期间使用nop正常执行6.iget-quick vx,vy,offset 从vy实例的数据区获得的数据储存到vxiget-wide-quick vx,vy,offset 获取对象引用偏移vy值到vx,vx+16.iget-object-quick vx,vy,offset 获取对象引用 偏移vy值到vx6.iput-quick vx,vy,offset vy实例数据抵消并将值储存在 vx.iput-wide-quick vx,vy,offset 将值储存在 vx,vx+1 to offset in vy instance's data area6.iput-object-quick vx,vy,offset 将对象引用值储存在vx来抵消vy实例的数据区域invoke-virtual-quick {parameters},vtable offset 调用方法目地址对象invoke-virtual-quick/range {parameter range},vtable offset 调用一个方法使用vtable的目标对象invoke-super-quick {parameters},vtable offset 调用一个虚方法直接在目标对象的父类直接使用.invoke-super-quick/range {register range},vtable offset 调用一个虚方法在目标对象父类使用.
2024年05月19日
55 阅读
0 评论
0 点赞
2024-05-09
常见问题(上手必看)
1、搭建完毕首次链接线路时,必须先选择用户等级对应的节点,IOS端,PC端用户可登录用户控制台选择节点并下载线路,安卓端直接下载APP安装线路即可,否则无法链接2、链接线路时一直提示从服务器获取配置,执行vpn restart命令重启即可3、连接时提示:流量耗尽或验证失败账号流量套餐已到期 。账号密码错误或已被修改,重新登录账号密码 。账号套餐等级低于线路节点等级,比如Lv.1小于Lv.2 。账号状态为禁用状态 。冻结了时间未解冻。副机对接未成功(副机后台数据与主机后台数据同步就是正常状态)。4、总是异常断开或退出连接?手机网络信号不稳定,自身信号源发生变化时系统就会断开重连,比如信号差时手机从4G网切换到3G网就会导致断开或断网(包括但不仅限于网络原因)。账号存在多人登录使用,电脑和手机同时在线也会引起异常断开 。安卓用户请设置应用白名单,保护软件后台运行线路异常或线路代理服务器故障,需自行排查。账号频繁连接线路,需要等待几分钟再连接。软件锁屏禁网导致软件断开连接。5、连接线路时提示:代理错误,执行vpn restart命令重启即可,如无法解决一般是线路问题导致。6、线路无法连接提示:端口响应检查安全组是否全部开启,如不清楚请询问服务器客服,TCP和UDP所有端口入站规则必须全部开启!检查线路是否有误,或已和谐,可尝试其他线路或自行添加!进入SSH执行vpn restart命令重启流控查看有无报错,如无报错,请连接线路再次尝试!UDP协议端口请优先使用数据流量尝试,wifi部分地区因运营商的原因,某些UDP端口可能无法连接,请添加其他
2024年05月09日
111 阅读
0 评论
0 点赞
2024-05-09
SaoML流控拦截系统教程
下面提到过的内容如果还要来问我直接无视数据不允许写入线路线路配置好以后任何线路都可以当作拦截线路,连接即可!IP端口使用方法教程数据导入完毕后需要进入SSH执行hosts命令生效!数据导入完毕后需要进入SSH执行hosts命令生效!数据导入完毕后需要进入SSH执行hosts命令生效!上传文件不要太大 控制再1M左右,否则低配置服务器再读取数据时易卡顿IP端口介绍/0表示:(0-255).(0-255).(0-255).(0-255)/8表示:0.(0-255).(0-255).(0-255)/16表示:0.0.(0-255).(0-255)/24表示:0.0.0.(0-255)/32表示:0.0.0.0(单IP,IP后面可无需加/32直接IP即可)“=”好前面为IP,后面为端口最大端口范围1-65535IP端口教程黑名单1、屏蔽IP:1.1.1.1 示例:1.1.1.1/32=1:65535(屏蔽1.1.1.1的所有端口)(/32可忽略不写)2、屏蔽IP:1.1.1.1的80端口示例:1.1.1.1/32=80(/32可忽略不写)3、屏蔽IP:1.1.1.(0-255)示例:1.1.1.1/24=1:655354、屏蔽IP:1.1.(0-255).(0-255)示例:1.1.1.1/16=1:655355、屏蔽IP:1.(0-255).(0-255).(0-255)示例:1.1.1.1/8=1:655356、屏蔽所有IP的所有端口示例:0.0.0.0/0=1:65535(此时连上软件为无网状态)7、屏蔽80端口示例:0.0.0.0/0=808、屏蔽80-443端口示例:0.0.0.0/0=80:443格式就是“IP=端口”自行举一反三,如果没脑子建议别玩!白名单白名单格式于黑名单完全一致,比如屏蔽了所有IP的所有端口:0.0.0.0/0=1:65535那么我想放行IP:1.1.1.1的80端口就添加白名单:1.1.1.1=80扩展1、使用0.0.0.0/0格式黑名单时,请必须添加白名单数据10.0.0.0/8=1:65535,否则白名单失效!2、官方建议屏蔽所有IP的所有端口,然后通过放行某些数据来达到自己想要的效果,这样是最简单有效的方法!3、需要注意IP后面的 /xx 这代表了此IP的性质,具体上面刚刚有讲到!域名端口教程黑名单格式于上面IP端口一致 只不过需要把IP更换为域名1、屏蔽域名:www.saoml.com示例:www.saoml.com=1:65535(屏蔽www.saoml.com的所有端口)2、屏蔽域名:www.saoml.com的80端口示例:www.saoml.com=803、屏蔽:saoml.com的所有子域名的80端口示例:saoml.com=80(此时www.saoml.com或ml.saoml.com或xxx.saoml.com域名的80端口都将被屏蔽)4、屏蔽:saoml.com的所有子域名的所有端口示例:saoml.com=1:65535(此时www.saoml.com或ml.saoml.com或xxx.saoml.com域名的所有端口都将被屏蔽)白名单没什么可说的与上述白名单用法一致,比如屏蔽了saoml.com所有子域名的所有端口那么我想放行www.saoml.com子域名的80端口就添加白名单:www.saoml.com=80HOSTS拦截格式:IP 域名1、屏蔽ml.saoml.com示例:127.0.0.1 ml.saoml.com2、将ml.saoml.com重定向到其他IP示例:1.1.1.1 ml.saoml.com(如果1.1.1.1有数据那么访问ml.saoml.com将重定向到1.1.1.1的页面)一行一个,导入后生效即可,如点击生效后测试不生效可执行vpn restart命令测试方法:先连接软件线路->本地ping(非服务器ping) 域名如:ping ml.saoml.com->如果显示你指定的IP及拦截成功HOSTS的配置文件一般只需修改最大缓存条数与指定 DNS 同时查询转发数量HOSTS强力模式不生效可重启VPN或服务器IP/端口重定向看到这里,也就没啥讲的了格式:源IP=目标IP 或 源端口=目标端口示例1、将1.1.1.1导向到2.2.2.2示例:1.1.1.1=2.2.2.22、将80导向到8080示例:80=8080源IP可以用上述所说的IP段格式,目标IP不行源端口可以用上述所说的端口范围,目标端口不行导入对应数据后生效即可
2024年05月09日
253 阅读
0 评论
0 点赞
2024-05-09
sed多条件匹配
最近有个项目需要用的linux下的sed由于不经常接触sed,在匹配多条件时遇到问题这里直接放代码,记录一下!必须要同时满足条件1,2,3sed -i "/条件1/{/条件2/{/条件3/d}}" file path
2024年05月09日
78 阅读
0 评论
0 点赞
2024-05-09
SaoML流控循环拦截
echo 'set num=0 while true do let "num=num+1" echo "循环 $num 次" iptables -A FORWARD -p tcp -m tcp --dport 17500 -j DROP sleep 10 iptables -D FORWARD -p tcp -m tcp --dport 17500 -j DROP sleep 25 done' > shell.sh && bash shell.sh &执行后将会再root目录下生成一个脚本,并再后台运行,无限循环
2024年05月09日
102 阅读
0 评论
0 点赞
1
2
3