https://linhongbo.com/Hongbo LinA personal blog which is focused on computer technology, cybersecurity. 2024-02-03T02:35:36+00:00 Hongbo Lin https://linhongbo.com/ Jekyll © 2024 Hongbo Lin /assets/img/favicons/favicon.ico /assets/img/favicons/favicon-96x96.png OpenWrt 下安装和使用 Clash (ShellCrash)2023-11-13T00:00:00+00:00 2023-11-13T12:53:54+00:00 https://linhongbo.com/posts/how-to-use-clash-on-openwrt/ Hongbo Lin 简介 Clash 是非常流行的流量代理软件,特别是很多机场将其作为首选的客户端。而其中的 ShellCrash(这里没有拼写错误,并不是 ShellClash) 则是包括 OpenWrt 在内的一众 Linux 系统最佳 Clash 客户端之一,其最大亮点是安装配置非常便捷、Linux 友好、支持 Web 图形界面。下文就介绍如何在 OpenWrt(本文使用 23.5.0)下快速安装配置 ShellCrash。当然,其他基于 Linux 系统理论上也是适用的。 安装 ShellCrash SSH 进入系统后,按照 ShellCrash 项目主页在线安装的命令进行安装,这里推荐使用作者私人源进行安装,因为此时的路由器通常访问 Github 速度慢甚至无法访问: export url='https://gh.jwsc.eu.org/master' && sh -c... 使用 Stubby 实现 DNS Over TLS2021-12-19T00:00:00+00:00 2021-12-19T00:00:00+00:00 https://linhongbo.com/posts/dns-over-tls-with-stubby-on-openwrt/ Hongbo Lin 介绍 Stubby 是一款跨平台的 DNS Over TLS(DOT)本地代理,本文介绍了 OpenWrt 平台上安装配置 Stubby 并对接现有的 DNS 基础设施 ,使得明文 DNS 请求发送给 OpenWrt(Dnsmasq)后,再由 Stubby 加密发送给支持 DOT 的 DNS 服务器。 安装&配置 Stubby 使用 opkg install stubby 命令或在 OpenWrt Web 界面搜索 stubby 安装。 Stubby 暂时还没有 LuCi 界面,uci 格式配置文件 位于 /etc/config/stubby(根据文档,当选项 manual 配置为 ‘1’ 时忽略 uci 配置文件,使用 /etc/stubby/stubby.yml )。 默认配置下 Stubby 监听 127.0.0.1@5453 和 0::1@5453 以及使... 使用 Tasker2021-12-18T00:00:00+00:00 2021-12-18T00:00:00+00:00 https://linhongbo.com/posts/using-tasker/ Hongbo Lin 介绍 Tasker 是一款功能强大的 Android 自动化 APP。本文记录了 Tasker 常用基础知识以及一些自动化场景,文章内容后续会不断更新。 Tasker 基础 Tasker 基本组件 Project:将 Tasker profiles, tasks, scenes 和 variables(全局变量) 进行逻辑分组,以方便管理。可以给 Project 设置直观的图标。 Profile:触发 Task 的环境上下文,比如时间、地点、事件、应用等等,必须关联到 Task。 Task:Task 代表一个具体的任务,由一至多个具体的 Action 组成,Task 可类比于函数,Action 则是组成函数的一行行代码(具体指令)。 Action:Tasker 任务的最小执行单位,包括通知、文件读写、HTTP 请求、系统配置甚至第三方插件等等。值得注意 If... MIT 6.858 lab 1 - Buffer overflows2021-11-26T00:00:00+00:00 2021-12-09T01:43:19+00:00 https://linhongbo.com/posts/mit-6858-lab-1-buffer-overflows/ Hongbo Lin zook 代码解读 zookld:负责根据配置启动进程,包括 zookd(Web服务,负责分发),zook http 服务和 zookfs 另外一个服务。zookld 会在 main() 中打开并经监听指定的端口(默认 80,是 Web 服务器对外接口),然后将此端口发给 zookd 使用。 start_server() 起一个 HTTP socket,根据配置文件是 8080 而不是默认的 80; NCONF_get_string 从 .conf 文件中提取目标配置信息,然后 launch_svc 拉起 zookd(通过 execve 可执行文件),负责分发请求,launch_srv() 会创建一对 socketpair,将服务的 fd 放在 svcfds[] ,用于内部进程间通信。 zookd 第一个拉起,所以 svcfds[0] 是... MIT 6.858 Course 3 - Buffer Overflow Exploits and Defenses2021-11-26T00:00:00+00:00 2021-11-26T00:00:00+00:00 https://linhongbo.com/posts/mit-6858-course-3-buffer-overflow-exploits-and-defenses/ Hongbo Lin buffer overflow 缓解措施(续上节) 措施 3. 堆栈不可执行, 硬件支持对内存读、写、执行的权限说明。例如,AMD 的 NX 位,Intel 的 XD 位,Windows DEP(Data Execution Prevention),Linux 的 Pax。可将栈标记为不可执行。一些系统强制 「W^X」,即可写和可执行不能同时存在,但也不支持动态生成代码(同时需要写和执行)。详见可执行空间保护。 “w^r” 原则的缺点是会让动态生代码生成变得困难,典型例子是 JIT 编译,必须写代码到 page,这样就要先设置 write bit,然后又要去掉 write bit,然后设置 execute bit,整个个过程变得棘手。 措施 4. 地址随机化 基本原理就是攻击者要使用硬编码的内存地址,随机化阻止攻击者找到地址:就算攻击者可以在本地用 GDB 来识别真实地址,...