2017-02-12 6 views
0

私はWireshark用のディセクタを書いています。aesluaを使用して、入ってくるパケットを復号したいと思います。私のディセプターはうまく動作しますが、それをバイトに変換した後にテーブルにパスワードを入れようとしている行に表示されます。問題のルアのテーブルにバイトを変換するのが動作しません.125.4

行はこれです:

local pwBytes = { string.byte(password,1,#password)} 

これは(Wiresharkの2.2.4に含まれている)のLua 5.2.4でnullを返しますが、オンラインデモ(執筆時点では2.3.4)に期待値を返します。

私はそれを変更してみました:

local pwBytes = { password:byte(1, #password) } 

しかし、同じヌル結果を得ました。

参考のために、彼は私がLuaのデモで走ったコードです:

local password = "ABCDEFABCDEFA" 
local pwBytes = {string.byte(password,1,#password)} 
print(pwBytes) 

は、私はこの問題を回避する方法はありますか?

+0

を与えます。 – lhf

+0

@lhf興味深いです。 Wiresharkのバグかもしれない。私はこの会話をAskWiresharkにも引き継ぐ必要があります。 – Grayda

答えて

1

コードは、株式のLua 5.2.4で正常に動作します:

local password = "ABCDEFABCDEFA" 
local pwBytes = {string.byte(password,1,#password)} 
print(pwBytes) 
for k,v in ipairs(pwBytes) do 
    print(k,v) 
end 

は、コードが株式のLua 5.2.4で正常に動作します

table: 0x7fc689d00560 
1 65 
2 66 
3 67 
4 68 
5 69 
6 70 
7 65 
8 66 
9 67 
10 68 
11 69 
12 70 
13 65 
+0

ありがとうございます。また、この質問を[Wireshark Q&Aサイト](https://ask.wireshark.org/questions/59347/converting-bytes-to-table-for-lua-dissector-doesnt-work)に掲載しました。 – Grayda

関連する問題