・元となるコード
↓難読化(実行できます)
pos 10, 10 mes "HELLO WORLD!"
_0x0000 = 0x0000002c, 0x00000024:foreach _0x0000:_0x0001(cnt) = cnvwtos( _0x0000(cnt) ):loop:_0x0002 = "0x48,0x45,0x4c,0x4c,0x4f,0x20,0x57,0x4f,0x52,0x4c,0x44,0x21":_0x0005 = "":split _0x0002, _0x0001, _0x0003:foreach _0x0003:strrep _0x0003(cnt), "0x", "":_0x0004 = int( _0x0001( 0x00000001 ) + _0x0003(cnt) ):_0x0005 = _0x0005 + cnvwtos( _0x0004 ):loop:pos 10, 10:mes _0x0005:stop
自分的には以下のようなものを実装したいです。
・変数、関数の名前の置換
・文字列型の変数の内容を取得
↓「HELLO WORLD!」を変換 平仮名未対応...
code = "HELLO WORLD!" l = strlen(code) d = "" repeat l cnvstow o, strmid( code, cnt, 1 ) d = d + "0x" + strf( "%x", o ) if ( ( l - 1 ) > cnt ) { d = d + "," } await 0 loop cov = {" _0x0000 = 0x0000002c, 0x00000024 foreach _0x0000 _0x0001(cnt) = cnvwtos( _0x0000(cnt) ) loop _0x0002 = ""} + d + {"" _0x0005 = "" split _0x0002, _0x0001, _0x0003 foreach _0x0003 strrep _0x0003(cnt), "0x", "" _0x0004 = int( _0x0001( 0x00000001 ) + _0x0003(cnt) ) _0x0005 = _0x0005 + cnvwtos( _0x0004 ) loop pos 10, 10 mes _0x0005 stop "} strrep cov, "\n", ":" pos 0, 0 mesbox cov, 640, 480, 0 stop
RegExp(HSP版)をマスターすれば実現できる可能性は微レ存...?
文字を一個一個解析するのは面倒くさくて、長いと時間かかりますしおすし...
参考とかになる物はないですかね。ひたすら文字列関数と睨めっこすればいけますけどね。