如何从 linux/cygwin 控制台运行 Thales“NC”诊断主机命令

Chr*_*now 0 linux cygwin hsm

我想直接从 linux/cygwin 控制台运行 Thales NC(执行诊断)主机命令。

如何才能做到这一点?

Chr*_*now 5

假设您安装了xxdnc (netcat),您可以执行以下操作:

$ echo '0006303030304e43' | xxd -r -p | nc localhost 9998
!0000ND007B44AC1DDEE2A94B0007-E000
Run Code Online (Sandbox Code Playgroud)

命令0006303030304e43分解如下:

  • 0006 = 十六进制命令长度(即0000NC 的长度)
  • 30303030 = 4 字节报头0000十六进制
  • 4e43 =十六进制的 2 字节命令NC

!0000ND007B44AC1DDEE2A94B0007-E000 - 这是来自 HSM 的响应。


如果你没有xxd,你可以使用Perl

echo '0006303030304e43' | perl -e 'print pack "H*", <STDIN>' | nc localhost 9998
Run Code Online (Sandbox Code Playgroud)

更新 1:一个更简单的解决方案:

echo -ne '\x00\x06\x30\x30\x30\x30\x4e\x43' | nc localhost 9998
Run Code Online (Sandbox Code Playgroud)

更新 2:纯 perl 解决方案:

perl -e 'use IO::Socket::INET; 
my $sock = new IO::Socket::INET(PeerAddr=>"localhost:9998") or die; 
$sock->send(pack "H*","0006303030304e43"); 
$sock->recv($data, 1024); print $data;'
Run Code Online (Sandbox Code Playgroud)

(只需复制并粘贴到您的 bash 提示符中)