注:文章最后有解决方法。
之前一直写的都是VBS的CRT脚本,但是这个语言应用平台太窄了,最主要很多语法总是让我摸不着脑壳,也没啥文档给我参考,所以换了python写CRT脚本。
毕竟做网络工作,很多时候需要在交换机上查东西,做个自动查询接入交换机各个接口对应用户的MAC,IP及HostName还是极好的。当然查好了自动保存在excel文件中就更好了。
经过一番奋斗,大体代码写好,看着逻辑也没啥问题,可惜了代码跑不起来!!???
官网查了一波资料,没看出啥问题。算了算了,还是调试器伺候吧。
比较幸运,没有反调试,也没什么花(难怪注册机到处都是,我听别人说的),调试器打开CRT,忽略所有异常,一路F9,在CRT中开启脚本,到达上述脚本异常位置。然后别点确定
就用最简单的方法开搞吧,暴力搜索内存中所有模块中的字符串。搜索上述异常中的ImportError字符串。
这么容易就找到了...好吧,通过前面的内存地址跳转至反汇编窗口。
看起来应该就是这里。再去内存里定位一下这是谁的代码。
python2.7???先确认一下吧。下内存访问断点。重新跑脚本。
由于之前我一直以为在CRT中跑python脚本需要先***python环境,所以我之前有装3.6的环境,每次跑脚本也都以为调用的是这个环境,而且所有的代码,每个模块都是在3.6中测试的。
拆了3.6的环境,重建个2.7的环境(我用的是2.7.15),删除crt***目录下的python27.dll和python27.zip,修改代码使其可以在2.7环境中通过测试。问题解决
注意:如果2.7的python环境没有建好(检查环境变量),就删掉了crt***目录下的python27的两个文件,crt将无法启动。至于为啥要删掉***目录下的python文件,而不是直接使用?难道你不用其他包?我尝试了给python27.zip目录添加制作好的.pyc文件,很可惜,是不行的(我猜测,可能是环境的版本问题,但如果有新的环境,还留着crt自带的干嘛?)
用过串口加网线升级主板程序的朋友们都知道,要在SecureCRT中输入很多字符命令,各个机型的命令又都不是完全相同,我们要背下来很多的字符命令,而且我们在输入的时候不能有一点错,那么有没有一种方法既简单又不用去死记硬背的方法呢?***是肯定的,那就是利用SecureCRT软件的脚本功能,实现一次录入,以后一键操作的快捷方法。
第一步:将USB串口升级版与电脑连接起来。此时电脑会识别串口板。
第二步:找到串口板在电脑上的串口号;“右键“我的电脑,点击“管理”
选择“设备管理器”---“端口(COM和LTP)”,可以看到此时COM口为COM14,记住后卫配置要用到。(注意:不同的机器该数字不相同,一定要确认该数值。此处的COM14只是一个范例)
选择Serial后的配置如下:其中的端口是连接USB工具后USB的串口端口、流控制中所有的勾都要去掉!
2、网络的配置: 使用一根网线将电脑和电视直接连接起来,然后配置计算机的IP地址。
本地连接中的IP地址需要重新配置,请按如下配置:(LAN为本地连接)
3、FTP的配置,打开Tftpd32.exe后,点击Browse选择升级程序所在文件夹,如下图所示。配置完后,该软件不要关闭。(本教程以TCL MS28机芯为例)
1、将串口与网线连接好机器,打开SecreCRT.exe,机器上电的同时按紧回车键,(如果电视是上电待机,需要将电视使用遥控器开机时,也要一直按着回车键不放)会出现<<MStar>># 的命令行
这个时候就进入到我们最关键的时候了,前面的内容有些课件已经介绍过,现在进入正题:当出现<<MStar>># 的命令行后,我们点击“脚本---开始录制脚本”
接着就是按照正常的方法输入各条命令 设置IP地址,在串口命令中输入:
设置FLASH,在串口命令中输入:
输入完命令以后程序自动执行抄写命令,如下图
我们已经执行完所有的手动操作命令了,这时我们就可以停止录制脚本了,具体方法是点击“脚本---停止录制脚本” 如下图:
点击完“停止录制脚本”时,会弹出一个“另存为”对话框,是询问我们把录制的脚本存储的位置以及名称(我个人认为不要存储在C盘以及名称最好按机芯名称存储)。
以后我们再用到串口加网线的时候,我们用下面的方法加载脚本就可以了 点击“脚本---执行”
这时会弹出一个让你选择脚本所在位置的对话框,我们选择我们所需要的脚本文件,点击“执行”
点击完“执行”以后,所有需要手动输入的命令就会自动输入了,如下图
我们在使用过一次脚本命令之后,就会在脚本菜单里里有使用记录,以后我们只要点击这个使用记录就可以了,使用就更加简单了
我们把制作好的脚本文件放在一个安全的位置,只要不被删除,我们就一直可以使用,而不用去死记硬背那些命令了,是不是一劳永逸呢!!