旧版本的Xshell 7免费版在一个窗口内最多只能打开4个标签页,本着学习的目的,尝试去除这个限制
首先打开设置界面,看到最大标签限制输入框是灰色的不可输入的状态,看样子是用的windows自带的控件实现的,单纯去除这种限制很简单,找到控件句柄改一下属性即可

1.启用编辑框.png
修改为允许使用,然后点击确定,尝试新建几个标签,发现神奇的一幕,竟然真的可以打开超过4个了,看来程序没有多次校验。 接着,我们就可以多次修改这个值,用CE找到最大标签页数据的内存地址

2.找到标签页数量地址.png
不过我又发现了一个现象,每次重新打开设置界面,这个值都会被改成4,说明在打开设置界面时,将程序中会有代码将免费版的默认限制数量复制给这个地址,这样一来就更好分析了。我们在CE中右键这个地址,找到是什么修改了这个数据,然后再次打开设置界面,等待出现反汇编语句。

3.分析代码.png
可以看到EAX寄存器中存了限制的数字,再继续往上翻翻,很容易就发现EAX是从一个固定值4赋值而来,不难联想到这应该就是免费版的限制数量了,看起来就像是一个函数中直接定义的一个变量。 最后用X86DBG修改一下这个数字,改成0x99

4.修改反汇编代码.png
保存文件测试一下

5.效果.png
大功告成!
ps:最新版本的XShell7官方已经去除了这个限制