-
海康威视 R1 开SSH的探索
618买了个海康威视R1,N100 + 8G内存,配置很好,但是看评价说系统很差,我想想再差还能差到哪儿,等了一周多到货了,终于发现,买了一个NAS却感觉设备不是自己的,体验很糟糕。 不想刷黑群晖,所以这个方向不讨论了。 从数据安全角度出发,我需要让设备可以被禁止访问外网,或者限定访问目标和内容,防止数据泄漏。于是设备跑了两天多,我只敢把之前下载的电影动漫放上去,其他资料一个都不敢放,白瞎了4*8T。 已知信息,N100,往上有黑群晖教程并提及优先USB引导。所以搞了个Debian的live usb,启动,点点按按看到了bios的提示,也进了Debian。 系统是装在一个32GB的flash上的,基于debian改造的一个系统。 之前劫持NAS的互联网流量时,抓到了固件更新的接口,但是格式应该是自定义格式,里边能提取一个 histor.img,但是应该是加密或者其他处理过的,没法用。 Debian进去后,逐个分区看,找到了一个 histor.img 和一个 sq.img。整盘dd出来,从 linux 里直接挂载分区,并squashfuse 加载img,一切都正常。期间涉及到的命令为: 两个img,一个是root fs,一个是海康自己的软件,尝试用web 的一些出错,找到了几个文件,里边都加载了完整的server 的逻辑,所以挑了一个出来反编译。而在其他文件里发现了一些跟ssh,跟调试,跟密码有关的脚本或者配置文件。 目前还在进行中,有部分进展不适合发出来,后边再看怎么写 UPDATE 20240812 有人来问进展,搞定了,但是没计划公开。分析过程比较复杂,提root过程用了一些奇怪的技巧。配置没法持久化,每次重启都需要重新开,不必浪费时间了,有需求的请刷其他系统。
-
OpenWRT x86 + Quectel 5G Module
# On PVE Host Create a Linux VM without disk, in my PVE, the new VM id is 115. From VM Hardware, click the newly imported disk, open the dialog and save. Then Change boot order, add the disk. Start OpenWRT VM # On OpenWRT # On PVE Console Load Quectel Module by Adding USB…
-
EdgeRouter 4 Install msd_lite / msd
msd_lite http://www.netlab.linkpc.net/wiki/en:software:msd:lite Deprecated, but recommended!!! You can also use Multi Stream daemon (msd) Steps: 1 Clone code on computer, because my ER-4 reports dpkg errors, due to the outdated debian stretch. Then upload to ER-4 2 On ER-4, install build-essential, cmake For build-essential, read EdgeRouter 4 Build & Install udpxy 3 build on ER-4 4 configure…
-
北京联通猫棒 IPTV
故事背景:家里拉了很多年的千兆,这两年才从 FTTB 换成 FTTH。但是之前买的千兆套餐不送 IPTV 了,而光改的时候,联通的工作人员帮我改了桥接,但是所有口都绑定了 Internet。现在开通IPTV需要初装费,还要月费,所以我就没开通。本来是不想折腾的,因为实在没空,但是被催了好久猫棒的事情,所以就临时下了个单,花了一天做了些实验。
-
EdgeRouter 4 Build & Install udpxy
Please DON’T use udpxy, check msd_lite!!! Source Code: http://gigapxy.com/download/udpxy/ Steps: 1 Configure apt source EdgeOS 2.0 is based on debian stretch, outdated. 2 install build-essential 3 Get source, and build Then you will see error like cc not found. You’ll see This is because the binutils package provided by UBNT is almost empty. Backup your…
-
Windows 目录大小写敏感
用了一个古老的工具 asn1c,结果定义文件里有个 Time 类型,生成了 Time.h,而这个工具自己把所有文件放在一个目录里,不得不把源码目录放到include path里,于是祭出大法。。。 结论,vs工程源码目录要单放,至少 vs2010 工程默认的设置里,有的地方用 Release 有的地方用 release。
-
Windows 下vcpkg 与bindiff
vcpkg 是 微软的一种包管理方式,对于curl之类的库,目前看使用 vcpkg可能是比较好的下载安装方式,比自己编译简单太多。 遇到了一个需要逆向的程序,经过人肉特征分析,程序里发现使用了 curl 的一个老版本,这个版本的二进制已经不提供下载了,虽然通过 web.archive.org 拿到了要的版本,但是是 mingw 的,而且没有调试信息用起来不方便。 于是,记录一下 vcpkg 操作的过程。 下载不提了,假设安装完 vcpkg 后,在一个空白的工作目录,建立 vcpkg.json 然后在这个目录执行 (我要分析的程序静态链接了curl,而且是32位的) 上边这个配置文件的例子其实是成功不了的,错误提示是 我没找到正确姿势,但是看到这个baseline 跟git版本疑似有关,偷懒但是生效了 第一步,加一个 “builtin-baseline”:”HEAD”,再次执行,报错变成了 直接改json。 接下来,bindiff的问题。 一般程序不可能静态链接一个 debug 版本的库,所以直接用 ida pro分析 release 版本的二进制,而 vcpkg 的目录里带了调试信息,在 match的时候会比较简单。 #EOF
-
记录一个软件 API Monitor
http://www.rohitab.com/apimonitor 找了好长时间,终于找到了。 需求是找一个工具记录软件的 DeviceIOControl 的调用,用来查设备驱动被哪个用户软件调用,且最好能找到调用的参数或者内容。 在找到这个之前,试过了nirsoft / deviceioview、MartinDrab / IRPMon、zodiacon / DriverMon、Fyyre / DrvMon、DynamoRIO / drmemory,很遗憾,各种问题都用不了。 而这个工具能记录目标程序的具体哪个DLL、哪个线程调用了哪些调用,相当神器。 遇到的问题:记录数据不全,设置限制了最大的数据抓取4096字节,且输入长度最大4个字符。 解决的方案:半解决吧,patch了程序。用 4096 搜立即数,找到了限制最大值的代码,逐个改成 0x400000;搜 EM_SETLIMITTEXT,看到定义是 0xC5,当立即数搜索,查找 SendMessageW 的调用,定位了两个框的限制,改成了8。