2013-07-10 23 views

回答

2

假設你有XXDNC(netcat的)安裝,可以[執行以下操作:

$ echo '0006303030304e43' | xxd -r -p | nc localhost 9998 
!0000ND007B44AC1DDEE2A94B0007-E000 

命令0006303030304e43被分解如下:

  • 0006 =十六進制的命令長度(即長度爲0000NC
  • 30303030 = 4字節的報頭十六進制
  • 4e43 = 2字節的命令NC十六進制

0000ND007B44AC1DDEE2A94B0007-E000! - 這是從HSM的響應。


如果你沒有XXD,你可以使用Perl的

echo '0006303030304e43' | perl -e 'print pack "H*", <STDIN>' | nc localhost 9998 

更新1:一個更簡單的解決方案:

echo -ne '\x00\x06\x30\x30\x30\x30\x4e\x43' | nc localhost 9998 

更新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;' 

(只是複製並粘貼到您的bash提示符)

相關問題