先來了解一下vbscript中的一些結構
vbscript中變數由variant結構體定義,記憶體占用大小為0x10,其結構如下(簡化了union部分):
typedef struct ta**ariant variant;
vartype不同值代表不同型別
vbscript中陣列由safearray和safearraybound結構體定義
safearray:
typedef struct tagsafearray safearray;
safearraybound
typedef struct tagsafearraybound safearraybound, *lpsafearraybound;
通常在**中加入isempty,下斷點vbsisempty來看變數等資訊
除錯附加上面的poc後下斷點:
0:013> bu vbscript!vbsisempty
0:005> g
斷下來後
0:005> dd poi(esp+c) l4
0230acd0 00000002 00000000 00001234 00000000
把上面標籤中的語句換成
dim d
d = 「hello」
isempty(d)
除錯:0:013> bu vbscript!vbsisempty
0:005> g
斷下後:
0:005> dd poi(esp+c) l4
0230acd0 0000004a 00000000 0060f838 00000000
0:005> dd 0060f838 l4
0060f838 00000008 00000000 003ceb74 00000000
0:005> du 003ceb74
003ceb74 「hello」
把上面標籤中的語句換成
dim a(2)
a(0) = &h12345678
a(1) = &h87654321
isempty(a)
除錯:0:013> bu vbscript!vbsisempty
0:005> g
斷下後:
0:005> dd poi(esp+c) l4
0207a5e0 0000600c 00000000 0070fd08 004f9e50
注意此處的儲存位置不同與字串
0:005> dd 004f9e50 l8
004f9e50 08920001 00000010 00000000 004d3c38
004f9e60 00000003 00000000 43797355 8c000000
0:005> dd 0x004d3c38 lc
004d3c38 00000003 00000000 12345678 00000000
004d3c48 00000003 00000000 87654321 00000000
004d3c58 00000000 00000000 00000000 00000000
如果想要檢視具體結構資訊可以使用
dt safearray 004f9e50
關於ie瀏覽器除錯xml檔案
ie瀏覽器真的是好使呀,可以快速的定位出xml檔案中出錯的地方,我也是今天上班時出錯了,領導教我的。嘿嘿嘿!首先,將自己的xml檔案拖到本地的ie瀏覽器中,然後f12開啟控制台,這時,可以很直接的看出自己寫的xml中有哪些錯誤。ie瀏覽器最好是版本越低越好。具體步驟如下 1 將自己寫的xml直接拖到...
IE 瀏覽器修復
ie8 瀏覽器經常出現 網頁上的js指令碼錯誤的提示,大多數不影響正常使用,但在開發中這種現象比較難處理,ie瀏覽器安全效能級別高,js指令碼驗證要求比較嚴格,這是我在做專案時遇到的問題。ie9 ie10 ie11 360 firefox 360 sogou瀏覽器上都能正常執行的程式在ie8上就不行...
js 判斷瀏覽器是否IE瀏覽器
蒐羅各種方法來判斷瀏覽器是否為ie瀏覽器 1.最簡單的 來自 if 1,侷限 本判斷方法經過判斷在ie7 ie8 ie8相容模式 在ie9 ie10 ie11 不起作用 解釋 alert 1,2 相當於alert 1,2 tostring 這在ie與非ie上都相同,都會彈出 1,2 alert 1,...