指令碼是編譯型的指令碼,雖然沒加密,但不去除錯的話就很難分析。
指令碼第乙個dword是乙個偏移,跳轉到指令碼的那個偏移處的第乙個雙字是指令碼的入口偏移,遊戲從那個偏移處開始對指令碼進行解釋。
下面這段東西就是指令操作的過程。跟vmp那指令解碼的過程很像,嗯。
[quote]
0043f890 > 8b86 1c080000 mov eax, dword ptr [esi+81c] ;當前指令碼的offset
0043f896 . |8b4e 04 mov ecx, dword ptr [esi+4] ;指令碼資料基址
0043f899 . |0fb60c01 movzx ecx, byte ptr [ecx+eax] ;取指令
0043f89d . |0fb6d1 movzx edx, cl
0043f8a0 . |83c0 01 add eax, 1
0043f8a3 . |8986 1c080000 mov dword ptr [esi+81c], eax
0043f8a9 . |8b0495 00bd47>mov eax, dword ptr [edx*4+47bd00] ;取指令的處理過程
0043f8b0 . |8bce mov ecx, esi
0043f8b2 . |ffd0 call eax ;處理指令
0043f8b4 . |80be 10080000>cmp byte ptr [esi+810], 0
0043f8bb .^\74 d3 je short 0043f890
[/quote]
目前我就觀察到0x01到0x26的各個指令(而且還不完全)占用的位元組數,對於各個欄位的作用大概不必深究,只知道幾個跟文字處理有關的指令便可。
目前找到的指令占用空間為:
單位元組指令:
0x08,0x09,0x19,0x1a,0x21,0x22,0x23,0x26
雙位元組指令(第乙個位元組為指令碼,後面乙個位元組為運算元,下同)
0x0c,0x10
三位元組指令:
0x01,0x03,0x0b,0x0f,0x15
雙字指令:
0x16
多位元組指令:
0x07:後面接了13個位元組,不知道自己有沒有看漏眼orz
0x0e:字串指令,後面乙個位元組是字串的長度,假設為n,則接著的n個位元組的內容都是字串的內容。這個字串可以是對白可以是角色名稱可以是資源名可以是……
就這樣,剩下的懶得分析了。
flash 呼叫 指令碼 Flash指令碼 星空效果
flash 呼叫 指令碼 creating a starfield effect is easy to begin,download the sample files here.1.create a small star shape,and convert it to a movie clip.gi...
分析log的簡單perl指令碼01
logasny.pl perl w my logname e tmp ldfs log fw 4 single ok.log my logname e tmp ldfs log fw 12 single lost.log my ionum 0 my lazyionum 0 my lazyionum3...
c 簡單的動態銀河星空繪製(類應用)
話不多說直接貼 1 include 2 include 3 include 4 5 define maxstar 500 星星總數67 class star8 18star star 1926 27void star move 2839 putpixel x,y,color 40 4142 主函式 ...