抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

1.准备环境

  • 让开发环境支持telnet,目标机也需要支持telnet
  • Visualgdb 5.3或者以上,旧版本不支持插件
  • 准备base64交叉编译程序(一般没有这个命令都是目标机没有,目标机有则忽略这个)

3.安装与测试telnet

1
sudo apt-get install telnetd

安装完成后可以尝试telnet登陆机子,登陆成功则开发机与目标机都支持telnet

4.下载telnet 的 visualgdb插件

1
git clone  git clone https://github.com/sysprogs/VisualGDBExtensibilityExamples

  • 里面总共3个项目,其中VisualGDBExtensibility项目不可用

5.替代VisualGDBExtensibility项目

就是使用安装目录中的VisualGDBExtensibility.dll替换

6.右击移除无用项目

7.给其他两个项目导入替换VisualGDBExtensibility项目的dll

  • 在项目的引用中右击选用添加引用

  • 浏览选择安装目录的目标VisualGDBExtensibility.dll,进行导入

8.生成TelnetDemo项目使用的TelentTarget.dll,把TelentTarget设为启动项目

9.在项目名字上右击选择生成按钮

10.验证TelentTarget.dll是否能用,把TelnetDemo设为启动项目,编译执行

  • 打开TelnetDemo项目中的Program.cs文件,把下面的参数改成现实可连接的linux主机,当然也可以是虚拟机

  • 执行通过后,查看/tmp目录中是否存在file.txt,并且文件中存在Hello,world内容

  • 如果存在file.txt则插件TelentTarget.dll没有问题,在嵌入式设备可能为空,因为telnet传输过程中需要base64进行转码二进制保存

  • 进入注册表添加为软件注册插件

    • win+r,输入regedit进入注册表
    • 我的注册表路劲是计算机\HKEY_CURRENT_USER\Software\Sysprogs\VisualGDB,找到这个
    • 在VisualGDB上添加新项CustomTargetProviders
    • 在新项CustomTargetProviders上添加字符串值,字符串值为TelentTarget.dll的路径

  • 至此在新建项目的时候就多出了一个telnet选项

11.机子不存在base64命令,则安装命令(file.txt有内容则不需要看)

  • 获取base64命令
1
2
3
wget https://ftp.gnu.org/gnu/coreutils/coreutils-8.30.tar.xz
xz -d coreutils-8.30.tar.xz
tar xvf coreutils-8.30.tar
  • 交叉编译
1
2
3
4
5
6
cd coreutils
#配置是不能使用root用户
./configure --host=这里写上交叉编译器前缀
#如果检测到交叉编译器则使用,否则则用amd64的
make
#这过程可能出现问题但不要紧,目的是base64,所以把src文件夹中的base64的可执行程序放到目标机器的/usr/bin上即可
  • amd64编译
1
2
3
4
5
6
cd coreutils
#配置是不能使用root用户
./configure
#如果检测到交叉编译器则使用,否则则用amd64的
make
#把src文件夹中的base64的可执行程序放到目标机器的/usr/bin上即可

12.附录

评论