上一次我们聊到了 NoLSP.exe 时结束了,现在让我们继续这个话题,顺带回顾一下 cutter
本篇已完结,列出目录方便查阅
本文是第二部分
我们没有 NoLSP.exe 的代码,但是又想知道它做了什么,那么很显然,cutter 要登场了!
函数拉到最下面,我们就能看到贴心的 main 函数, 更贴心的是 Ghidra 反编译出来的结果也很容易把握:
我们也不是第一次玩 cutter 了,根据我们以往的经验,快速看清程序结构才是最重要的,
所以很快找到最大的 if else
:
很明显这个是判断输入参数是不是两个,如果不是就打印一下用法。
所以重点就是这个 if
之内做的事情,看上去最值得怀疑的是
fcn.00487ac3
和 fcn.0048c195
,前者传入了文件的路径参数,
后者传入的值很像是写入注册表的键值。不过事实上这两个都没有做什么特别的事情,
真正做代志的是 fcn.00487a78(uVar1)
:
根据 API
这个函数是需要传参的,但是 Ghidra 没有认出来,
所以上面几个函数应该就是为调用 WS2_32.dll_WSCSetApplicationCategory
准备参数。
这个其实和 proxifier 开发者的说法一样:
The easiest solution is to use WSCSetApplicationCategory WinAPI call for wsl.exe to prevent this.
好了,NoLSP.exe 的案子我们先破到这里,不过我们看得很粗略,
还是推荐使用脚本的方法来修改注册表。但是我的兴趣也随之转移到了
WSCSetApplicationCategory
:它是怎么修改的注册表呢?