|
本帖最后由 gfvdd4g 于 2024-6-21 15:03 编辑
不知道以下内容会不会触犯版规,如果触犯的话我就全删了...
----
以我浅薄的水平用反汇编稍微看了下,12.7版本右上角的提示框是由ShdTray.exe生成的,它应该是负责托盘图标,桌面提示等后台任务的进程。这个提示框貌似在远程管理端EPM(EndPoint Manager)使用VNC时也会用,每个语言的提示文本放在Language里,XML为“<STR_TIP_VIEWSCREEN>Live screen monitoring</STR_TIP_VIEWSCREEN>”
ShdTray.exe在执行到
00007FF6B49240C7 | FF15 6B5B0000 | call qword ptr ds:[<Ordinal#296>] |
时会调用一系列系统级API和程序自带的API,包括但不限于ntdll.dll、kernel32.dll中的TlsGetValue、combase.dll、rpcrt4.dll、ShdApi.dll中的ShdGetInfo,以我的水平看不懂系统级API,所以没办法知道它访问了什么。
API调用完之后会在内存的00007FF6B4932270的16进制地址修改为01,如果是没问题的话估计这里会是00,然后开始判断
- 00007FF6B49240CE | 83BB 18060000 00 | cmp dword ptr ds:[rbx+618],0 |
复制代码 其中rbx+618指向的地址是00007FF6B4932270,与0比较,如果不为0则会执行
- 00007FF6B49240D5 | 74 19 | je shdtray.7FF6B49240F0 |
复制代码 该指令将License auth failed文本输出到变量中然后Set到右上角的DesktopTip(提示)中。目前看懂的内容就是这样了,想要不出现这个提示有三种方法:
1. 一条条跟踪调用看看程序访问了啥算法运行了啥才使得00007FF6B4932270内存地址被修改为1,从根源上解决问题;
2. 把上条的je shdtray.7FF6B49240F0直接修改为jmp shdtray.7FF6B49240F0强制跳转略过使其不执行输出License auth failed文本到变量的操作
3. 将cmp dword ptr ds:[rbx+618],0最后的0修改为1让其判断通过从而其不执行输出License auth failed文本到变量的操作 |
|