1. config.ini 这个文件里躺着什么值得单独拎出来讲前阵子帮一位朋友排查“远程连不上自己家里那台机器”的问题。他图省事把整个软件安装目录打包发给了我里面就夹着一个config.ini。我打开看了两行就让他立刻把那条消息撤回——那个文件里写着设备标识、连接密码、上次连过谁几乎是一份完整的“进门钥匙通讯录”。他当时的反应很典型“这文件我一直以为是安装残留从来没人告诉我要管它。”远程控制类软件本文以 ToDesk 这类工具为代表讨论的其实是整个品类的共性问题真正的安全边界往往不在登录账号也不在主密码框而在这些躺在磁盘角落里、没人正眼瞧过的配置文件上。原因很朴素账号密码是加密传输、有风控、有二次验证的而一份config.ini就是一段纯文本谁拿到文件谁就绕过了前面所有这些环节。攻击者的成本差异就是从“要不要撞库”变成了“要不要解压一个压缩包”。这篇东西写给三类人看把远程控制软件当日常工具用的普通用户、需要给团队/家庭设备做远程维护的技术负责人以及喜欢动手折腾、习惯把配置目录整个打包备份的开发者。不管你是哪一类接下来这套“先看懂文件里有什么再盘清它是怎么漏出去的最后逐项收口”的思路都能直接照搬。不需要你有什么安全背景跟着看就能上手。1.1 一次“帮我看看为什么连不上”引出的自查很多人对安全的理解停留在“我的密码够不够复杂”。这个思路在账号体系里成立因为账号体系里密码存在服务端本地只是个凭据但远程控制软件为了做到“开机就能连、断网也能连、无人值守也能连”必须把一部分认证信息落到本地否则每次连接都要重新输入体验就崩了。这就是矛盾点可用性和安全性在这里是一对直接冲突的指标而绝大多数软件的出厂默认值是往可用性那边偏的。我那台朋友的机器就是这样。他开启了无人值守访问软件为了方便把连接凭据持久化在配置文件里密码字段虽然做过处理但只要文件跟着机器走那层处理就失去了意义——攻击者不需要破解算法他只需要拿到文件、放到同样版本的软件目录下等于把你家的门锁连同钥匙一起搬走了。这不是什么高深的漏洞利用而是文件所有权的边界没画清楚。所以自查的第一步不是去查软件有没有漏洞而是问自己三个问题这台机器上的配置文件除了我之外谁还能读到我有没有在任何场合把这个文件或它所在的目录发出去过这个文件里存的凭据现在还有效吗这三个问题答完你的风险画像基本就出来了比看十篇漏洞通告都管用。1.2 逐项拆解配置文件的四类关键信息不要被.ini这个后缀骗了它只是格式简单信息密度一点都不低。把一份典型的远程控制软件配置文件拆开看能归成四类每一类的泄露后果完全不同处理优先级也不同。信息类别典型内容泄露后果处置优先级设备身份类设备 ID、设备名称、机器标识让攻击者知道你“是谁”是后续所有动作的定位基础中认证凭据类连接密码、临时密码、授权令牌直接获得连接资格等于拿到钥匙极高连接关系类最近连接地址、已授权设备列表暴露你的设备拓扑和信任关系高运行参数类端口、自启设置、画面与传输参数推断网络暴露面与使用习惯中低真正要命的是第二类和第三类的叠加。单独一份设备 ID最多让人知道有这么台机器存在单独一个密码不知道 ID 也没用。可这两样在同一个文件里就构成了完整的“地址钥匙”。更麻烦的是第三类已授权设备列表泄露意味着攻击者可以反向推断出你的其他设备甚至可以伪装成你信任的某一端来做进一步动作。还有一个经常被忽略的点配置目录里通常不止一个文件。除了主配置文件还会有日志、缓存、会话记录。日志里的信息往往比配置文件更“新鲜”因为它记录的是实际发生过的连接行为。很多人清配置不清日志等于把门锁换了但把监控录像留在了门口。1.3 为什么“藏起来的密码”依然会被还原这里必须讲清楚一个常见误解不少用户看到配置文件里的密码字段是一串乱码就认为“已经加密了问题不大”。这个判断只对了一半。软件在本地保存凭据时常见的处理方式是两种一种是可逆的编码或对称加密密钥就打包在程序里另一种是调用系统级的凭据保护机制比如系统账户绑定的加密存储。前者的问题是密钥和密文放在同一台机器上安全性等同于把保险箱和钥匙一起塞进柜子后者安全性好很多但前提是攻击者只拿到了配置文件、没拿到系统账户上下文——如果你的整个用户目录被同步到了网盘那系统级保护也跟着一起被打包走了。所以判断一份配置文件的风险不能只问“密码是不是明文”要问“解密它需要的东西是不是也和它在一起”。如果答案是“在一起”那就按明文处理不要自我安慰。还有一个更隐蔽的细节配置文件里的凭据可能不止一份。除了你当前用的连接密码历史版本、临时密码、授权凭证都可能残留。软件升级换代不一定清理旧字段这些“僵尸凭据”你以为早就作废了实际可能还在生效。我在帮人排查时就遇到过一次用户改了三回密码但配置文件里还留着一个早期的授权字段改完密码依然能连上——他自己都不知道。2. 配置文件是怎么跑到别人手里的四条真实高发路径讲风险不讲路径等于只吓人。配置文件泄露这件事几乎全部发生在日常操作里没有一条需要“黑客技术”。我把自己见过和听过的案例归了归类高频的就四条你对照着回忆一下大概率能对上号。2.1 整包打包分享与网盘备份这是最高发的一条没有之一。场景高度相似软件出问题第一反应是“把安装目录发给懂的人看看”换电脑第一反应是“把整个用户目录拷过去”做备份第一反应是“整个盘同步到网盘”。这三个“第一反应”每一个都会把配置目录带上。问题在于分享和备份的对象通常不是你精心挑选的可信方。发到群里求帮助群里几十号人传到网盘做备份账号一旦被盗或者分享链接权限设错就是公开的拷到新电脑旧电脑再转手文件就多了一处副本。你可能只发过一次但这一份副本会在多少个地方落地你自己都数不清。提示给别人看配置问题时正确做法是只发脱敏后的片段——把设备 ID 和密码字段的值替换成等长的占位字符再发。要看结构就看结构没必要把值一起送出去。2.2 求助截图与远程协助截图这条最容易被低估因为大家觉得“截图又不是文件拿到也没用”。但恰恰是截图里配置信息往往是完整可见的——软件设置页面上通常直接显示设备 ID 和临时密码字体还特别大就是为了方便你念给别人。很多人截图提问的时候连右上角的临时密码一起截进去了甚至还会在图上画个圈标注“这里连不上”。远程协助是同一类风险的升级版。你请人帮忙对方连上你的机器全程能看到你的桌面。这时候如果恰好打开了配置目录、或者浏览器里存着网盘密码等于把钥匙摆在桌上让他顺手拿走。这里不是说帮忙的人一定有问题而是你无法控制对方机器上是否有录屏、是否有恶意软件在同步剪贴板。信任关系是双向的你能保证自己不乱来保证不了对方的运行环境。2.3 二手设备、共享电脑与系统重装残留设备转手前“恢复出厂设置”或者“格式化 D 盘”是很多人心中的标准动作。但配置文件经常不在你以为的位置——它可能在用户目录的隐藏文件夹里可能被软件同步到了别的路径也可能因为软件还在运行、文件句柄被占用而没被删掉。结果就是机器换了主人上一任的设备 ID 和连接凭据还躺在里面。共享电脑的问题更直接一台机器多人用配置文件是按用户隔离的还好如果软件装在公共目录、配置写在公共位置那么任何一个人都能读到其他人的连接凭据。我见过最夸张的情况是一台公共演示机上装了远程控制软件配置目录权限完全开放谁登录都能看而那个设备还开着无人值守——等于这台机器的控制权对所有用过它的人开放。2.4 开发调试与自动化脚本的副产物这条主要针对技术人群。做自动化测试、批量部署、远程运维脚本的时候配置文件经常被当成“参数文件”直接提交进代码仓库。一旦进了 Git 历史就算后来删掉文件历史记录里依然能翻出来。仓库如果是公开的或者团队成员流动性大这份凭据基本等于公网可见。还有一个衍生问题脚本里经常把配置目录的路径写死然后在多台机器之间同步。这意味着一份泄露会横向扩散到所有同步过的机器。我个人的习惯是凡是涉及凭据的配置文件一律走环境变量或者独立的、不进版本库的目录路径用变量拼绝不写死。这个习惯看起来麻烦但省下的是事后全量更换凭据的时间。3. 自查把自己当成攻击面盘一遍说了这么多泄露路径接下来是真正能落地的部分。自查的核心思路是角色转换不要站在“使用者”的角度想“我哪里可能出错”要站在“拿到我文件的人”的角度想“我能从这里得到什么”。下面这套流程一台机器完整走一遍大概十分钟到半小时具体看设备数量。3.1 先定位不同系统下配置文件在哪别凭记忆猜路径不同版本、不同安装方式安装版/绿色版差异很大。最稳的定位方式是三个软件设置里找“打开配置目录/日志目录”这类入口用系统的文件搜索按文件名搜用进程信息反查——软件运行起来后看它的工作目录。下面是常见位置的归纳具体路径以你本地实际版本为准不同版本会有出入系统常见位置说明Windows安装目录下的配置子目录绿色版/免安装版常见跟程序放一起Windows用户目录下的应用数据目录隐藏安装版常见按用户隔离macOS~/Library/Application Support/下对应目录默认隐藏需在访达中显示隐藏文件Linux~/.config/或~/.local/share/下对应目录遵循 XDG 规范也可能在安装目录找到之后先别急着打开看一眼文件大小和修改时间。修改时间如果是最近一次软件启动说明它还在被持续写入如果里面还有*.log、*.bak这类文件一并纳入检查范围——备份文件往往是旧凭据的藏身处。3.2 四步风险分级清单定位到文件之后按下面四步走每一步都对应一个明确的判断结论不要跳步。第一步查权限。看这个文件谁能读。Windows 上用文件属性里的安全选项卡或者命令行icacls 文件路径Linux/macOS 上用ls -l看。如果组用户或所有人可读就要收口。第二步查凭据有效性。打开文件找认证相关的字段对照软件当前设置页——那个密码字段跟你现在实际用的密码是不是同一套如果配置文件里存的是旧的、你以为已经作废的凭据而实测还能连上这就是明确的失效缺陷。第三步查信任列表。有没有“已授权设备”之类的记录。逐条核对凡是你不认识的、或者早就该删的全部清掉。这一步很多人会漏但它的价值很高——它决定了攻击者拿到一份凭据后能不能横向扩到你的其他设备。第四步查日志。看连接记录对照时间线。有没有你没印象的连接有没有大量失败尝试失败的尝试比成功的更值得警惕因为它说明有人在试。四步做完给自己打个分权限开放 凭据有效 信任列表杂乱 日志有陌生尝试这四条全中的建议直接按“已经泄露”来处置别犹豫。3.3 连接日志比密码更能说明问题大多数人自查只改密码不看日志这是本末倒置。密码是“未来”的防线日志是“过去”的真相。你只有先确认过去有没有人进来过才知道要不要做更彻底的处置。看日志有三个要点。一是看时间分布正常使用会有明显的时间规律工作时间、居家时段如果出现凌晨的、密集的、间隔均匀的连接尝试基本可以判定是自动化工具在跑。二是看来源同一来源反复失败后突然成功是典型的撞库成功特征。三是看行为连接建立后持续时长很短、反复重连的可能是探测行为而非真实使用。日志通常不会保留很久有的软件只留最近若干条所以我建议在完成第一次自查后把日志目录纳入定期备份范围备份要加密这点后面讲。等你真需要回溯的时候会发现这几百 KB 的文件比什么都值钱。如果你想让自查更省事一点可以写个本地小脚本只做“读自己机器上的配置文件、检查是否存在明显的明文凭据字段”这件事纯本机运行不涉及任何外部交互import configparser, os, stat CANDIDATES [ rC:\Program Files\SomeRemoteTool\config.ini, os.path.expanduser(~/.config/someremotetool/config.ini), ] SENSITIVE_KEYS (password, passwd, pwd, token, secret, auth) for path in CANDIDATES: if not os.path.exists(path): continue mode os.stat(path).st_mode world_readable bool(mode stat.S_IROTH) print(f[文件] {path}) print(f[权限] 其他用户可读: {world_readable}) cp configparser.ConfigParser() cp.read(path, encodingutf-8, errorsignore) for section in cp.sections(): for key, value in cp.items(section): if any(k in key.lower() for k in SENSITIVE_KEYS) and value.strip(): print(f[疑似凭据] [{section}] {key} {value[:4]}****长度 {len(value)})这个脚本只做提示不做任何自动化处置输出里也刻意只打印前四位避免脚本自己的输出变成新的泄露源。真正要改什么还是得你人工判断。4. 加固让“知道ID也连不上”成为常态自查是止血加固是防复发。加固的思路不是把功能全关掉——那就没法用了——而是在“方便”和“可控”之间重新画一条线。下面这几项按投入产出比从高到低排建议全做做不了的至少做前两项。4.1 密码与临时密码的正确用法连接密码这一块最常见的错误是“一套密码用到底”家里这台、公司那台、临时给同事连的那次全用同一个。这等于把多台设备的安全等级拉齐到最弱的那台。我的做法是分三层。常驻密码只用于自己长期访问的设备长度足够、不与其他任何账号复用、定期更换临时密码只在需要他人接入时开启用完立刻关闭或者刷新绝不长期挂着一次性授权用于临时协作事情办完就撤销授权而不是留着“下次方便”。这三层的核心区别在于有效期的长短而不是复杂度的高低。还有一点很多人没注意改密码之后要验证旧密码是否真的失效。改完用另一台设备试着用旧凭据连一次连不上才算改成功。配置文件里的残留字段可能让旧密码继续有效这一步验证能帮你发现它。注意不要把连接密码写在便签上贴在显示器边也不要用“设备名123”这种可推测的组合。攻击者拿到你的设备 ID 之后第一件事就是拿设备名去拼密码试。4.2 设备白名单与无人值守模式的取舍无人值守是远程控制软件最有价值的功能也是风险最高的功能。它意味着不需要任何人确认连接请求就能建立。这个功能该不该开取决于这台机器“不在的时候”你是否真的需要访问它。如果确实需要务必配合白名单使用只允许指定的设备 ID 接入其他一律拒绝。白名单的价值在于即使密码泄露攻击者还需要一个被你信任的设备身份门槛直接抬高一档。反过来如果这台机器只是偶尔远程看看那就关掉无人值守改成每次连接都需要本机确认——多一步操作少一堆风险。这里有个实操细节白名单要定期清理。设备换新、旧设备淘汰、临时授权过期这些都要从列表里删掉。我见过白名单里躺着十几台早就不用的设备的配置这种列表形同虚设任何一台旧设备被转手你的门就开了。4.3 文件权限与备份加密前面说过配置文件的权限是最后一道物理防线。Windows 上可以用命令行收紧只保留当前用户和系统账户的访问icacls C:\path\to\config.ini /inheritance:r /grant:r %USERNAME%:F /grant:r SYSTEM:F这条命令的意思是断开继承权限只给当前用户和系统账户完全控制。Linux/macOS 上对应的是chmod 600只留属主读写。做完之后用另一个账户登录试一下确认读不到才算生效。备份这一块要单独说。配置文件该不该备份该因为重装系统后重新配置很麻烦。但备份必须加密而且要放在跟原机隔离的位置。我的习惯是用带密码的压缩包密码单独记在密码管理器里不跟备份文件放在同一个地方。备份文件的命名也不要用“配置备份”“密码”这类关键词避免被自动化工具按文件名匹配到。4.4 网络暴露面收口远程控制软件要在公网可用通常需要某种形式的网络可达性。这里的原则很简单能不通就不通能少通就少通。具体做法上优先使用软件自带的连接通道不要自己去做额外的端口映射如果确实需要做端口映射务必限制来源地址并且只映射必要的那一个端口不要在路由器上开一大段。家用网络环境下定期检查路由器的端口映射列表把不认识的、早就没用的条目删掉——很多时候你以为关掉的服务映射还挂在那里。另外提醒一句远程控制软件本身的版本要跟上。旧版本可能存在已知的认证缺陷而你配置文件里的凭据在旧版本上的保护强度可能不如新版本。升级前先备份加密备份升级后重新做一遍 3.2 的四步自查确认字段结构有没有变化。5. 万一已经泄露处置的先后顺序假设最坏的情况已经发生——配置文件被发出去过、或者日志里有陌生连接。这时候最忌讳的是慌乱中乱操作把证据破坏了。处置有固定的先后顺序顺序错了会付出额外代价。5.1 断、改、查、告顺序不能乱第一步是断。先把受影响设备的远程访问能力切断关闭无人值守、关闭软件自启、必要时直接退出软件。目的不是修是止损防止对方在你处置的过程中继续操作或者继续取数据。断的时候不要删文件先把配置目录整个复制一份到隔离位置留作证据。第二步是改。改连接密码、改账号密码、撤销所有授权设备、刷新临时密码。凡是能被那份配置文件影响到的凭据全部换掉不要挑着换。这里要特别注意“关联凭据”——如果这台设备上还登录着其他服务、还保存着其他密码一并纳入更换范围因为对方如果进来过这些也可能已经被看到。第三步是查。在改完之后查日志、查文件修改时间、查有没有新增的账户或计划任务。这一步要在断网或者隔离环境下做避免你正在查的时候对方还在。第四步才是告。如果这台设备涉及多人使用、或者涉及业务数据及时通知相关人员说清楚影响范围和已做的处置。这一步很多人会拖觉得“可能没那么严重”但信息不对称造成的损失往往比事件本身更大。5.2 从痕迹反推影响范围判断影响了多大范围主要看三个维度的痕迹。时间维度第一次异常连接的时间点往前推那之前的凭据都可能已经泄露。范围维度从这台设备出发能连到哪些其他设备那些设备的凭据是否也在这份配置文件里或者同一个备份里。数据维度连接建立期间这台机器上有哪些文件被访问过——文件系统的访问时间可以提供一个粗略的参考。反推的目的是划定边界而不是精确取证。对普通用户来说只要能把“哪些凭据需要换、哪些设备需要查”列清楚就已经足够了。过度追求精确反而会拖延处置时间。5.3 复盘要落到清单上事件处置完之后如果只是心里默念“以后注意点”那这次泄露大概率会重演。有效的复盘是把它变成一份可执行的清单写下来贴在能看到的地方。我的清单一般包含这几条这台设备上装了哪些远程控制软件各自的配置目录在哪谁能读这些目录凭据多久换一次分享配置信息时的脱敏流程是什么备份存在哪、怎么加密这份清单每季度过一遍比任何安全软件都实在。6. 几个被反复误解的判断最后说几个我在交流中反复听到的说法这些判断看起来都很有道理但每一条都藏着一个漏洞。6.1 “密码够复杂就没事”复杂密码防的是暴力破解和撞库防不了“文件被直接拿走”。当攻击者拿到的是包含凭据的配置文件时密码复杂度这个变量几乎不起作用——他不需要猜他只需要用。所以密码策略和文件管理是两条独立的防线不能互相替代。你把密码做到 20 位随机配置文件权限全开风险依然在。6.2 “只在局域网用所以无所谓”局域网不等于安全边界。网络隔离只挡住了外部直接访问挡不住“同一个局域网里的其他设备”。家里的智能设备、访客网络里的手机、合租室友的电脑都在同一个网段。而且配置文件泄露这件事跟网络位置根本无关——文件是被拷走的不是被攻破的。6.3 “公司有IT管着不用我操心”集中管理确实能覆盖大部分场景但覆盖不到“你自己装的那一份”。很多泄露恰恰发生在员工为了临时方便自行安装的客户端上这些客户端不在资产清单里不在统一策略里配置目录也没人管。所以即便是受管环境个人设备上的自查依然有必要尤其是那些“就临时用一下”的场景。我在实际操作中的体会是这类问题的根子不在技术在习惯。软件默认值是为了让你用得顺手不是为了让你用得安全中间那段差距得自己补。补的方式也不复杂知道文件在哪、知道谁能读、知道什么时候该换。这三件事做到绝大部分因为配置文件引起的远程控制风险都能提前挡在门外。
企业数字化 ERP 产品动态
相关推荐
config.ini泄露风险:远程控制工具配置安全自查与加固 1. 一份被忽略的配置文件,为什么能撬开一台电脑远程控制类工具出问题,大多数时候不是被谁"攻破"了,而是自己把钥匙递了出去。这次要聊的主角是config.ini——一个几乎所有桌面软件都会生成的配置文件,很多人从来没打开看… · 2026/11/4 13:05:47
移动端商品页面一致性设计实践与优化 1. 商品页面一致性设计思路解析 在移动端应用开发中,商品添加/修改页面与详情页保持高度一致性是提升用户体验的关键设计策略。这种设计模式源于以下几个核心考量: 认知一致性原则 :用户在不同页面间切换时,相似的布局和交互模式… · 2026/11/4 13:05:47
VISSIM交通仿真数据分析与优化实战指南 1. 交通仿真结果分析的核心价值在智能交通系统规划和优化中,仿真结果分析就像给城市交通做了一次全面的"体检"。我们团队在过去五年处理了37个城市交通改善项目,发现90%的方案优化都依赖于准确的仿真数据分析。VISSIM作为行业标杆工具… · 2026/11/4 13:05:47
80C51裸机计算器:从LED扫描到键盘去抖的硬件协同真相 简介:本资源是一份面向高校电气/自动化专业本科生的单片机课程设计报告,聚焦基于80C51单片机的简易计算器软硬件实现,解决嵌入式系统入门级项目开发中I/O扩展、键盘扫描、LED动态显示与基础运算逻辑整合等核心问题。压缩包为1个2.96MB的Word文… · 2026/11/4 13:45:50
币圈题材创作的市场逻辑与专业细节解析 1. 项目背景与核心主题解析 这个标题"重生之我在币圈当大佬40 王的愤怒"属于典型的网络小说章节命名风格,结合了重生、金融投资、权力斗争等流行元素。从字面拆解来看,核心包含三个关键信息点: 重生设定 :主角带着前世… · 2026/11/4 13:45:50
Spring Boot与Nginx容器化部署中的502错误排查指南 1. 问题现象与初步分析 最近在将Spring Boot应用通过Docker Compose部署时,遇到了经典的502 Bad Gateway错误。这个HTTP状态码通常意味着作为反向代理的服务器(如Nginx)无法从上游服务器(这里是Spring Boot容器)获取有… · 2026/11/4 13:45:50
抖音视频文案提取:无需下载的五种方法与工程化流程 1. 先想清楚:为什么“不下载”这件事值得单独拿出来讲 抖音视频文案提取 这件事,绝大多数人第一次遇到的需求都很朴素——刷到一条口播视频,脚本写得特别顺,想把它变成文字存下来。但真动手的时候,十个人里有八个会先… · 2026/11/4 13:45:50
AI生成视频不清晰怎么救?超分、时序稳定与编码导出全流程 AI 生成视频不清晰,后期能不能变清晰?这个问题我在过去大半年里被问过不下二十次,自己也实打实地折腾过几十段素材。先说结论:能救,但救回来的是“观感清晰”,不是“信息还原”。这两者的差别,决… · 2026/11/4 13:45:50
Paper with Code速览:CV开源项目筛选、代码阅读与复现实战 每天刷一遍 Paper with Code,已经成了我这两年雷打不动的习惯。尤其在 CV 这个领域,开源速度跟发论文的速度几乎同步,你今天看到的 SOTA,可能过两周就有人把权重和训练代码丢出来了。这篇速览面向的读者,一个是想快速跟… · 2026/11/4 13:44:47
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
AI辅助技术栈评估:提升研发决策效率60% 1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17
从生成Token到直接决策:Jev如何重塑AI Agent工程实践 1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17
32G统一内存跑大模型:内存账、TPS实测与端云分流 想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38