vb逆向常用函数
1)?數據類型轉換:?
a)?__vbaI2Str????將一個字符串轉為8?位(1個字節)的數值形式(范圍在?0?至?255?之間)?或2?個字節的數值形式(范圍在?-32,768?到?32,767?之間)。
b)__vbaI4Str???將一個字符串轉為長整型(4個字節)的數值形式(范圍從-2,147,483,6482,147,483,647)?
c)__vbar4Str??將一個字符串轉為單精度單精度浮點型(4個字節)的數值形式
d)__vbar8Str???將一個字符串轉為雙精度單精度浮點型(8個字節)的數值形式
e)?VarCyFromStr????(僅VB6庫.?要調試,則在WINICE.DAT里必須有?OLEAUT32.DLL)字符串到變比型數據類型?
f)?VarBstrFromI2??(僅VB6庫.?要調試,則在WINICE.DAT里必須有?OLEAUT32.DLL)整型數據到字符串:
2)?數據移動:?
a)?__vbaStrCopy??????將一個字符串拷貝到內存,類似于?Windows?API?HMEMCPY?
b)?__vbaVarCopy?????將一個變量值串拷貝到內存?
c)?__vbaVarMove????變量在內存中移動,或將一個變量值串拷貝到內存
3)?數學運算:
a)??__vbavaradd??????兩個變量值相加?
b)?__vbavarsub??????第一個變量減去第二個變量
c)?__vbavarmul?????兩個變量值相乘
d)?__vbavaridiv?????第一個變量除以第二個變量,得到一個整數商?
e)?__vbavarxor???????兩個變量值做異或運算
4)?程序設計雜項:?
a)?__vbavarfornext??這是VB程序里的循環結構,?For...?Next...??(Loop)?
b)?__vbafreestr????釋放出字符串所占的內存,也就是把內存某個位置的字符串給抹掉
c)?__vbafreeobj???釋放出VB一個對象(一個窗口,一個對話框)所占的內存,也就是把內存某個位置的一個窗口,一個對話框抹掉
d)?__vbastrvarval??從字符串特點位置上獲取其值?
e)?multibytetowidechar??將數據轉換為寬字符格式,VB在處理數據之都要這樣做,在TRW2000顯示為7.8.7.8.7.8.7.8
f)?rtcMsgBox???調用一個消息框,類似于WINDOWS里的messagebox/a/exa,此之前一定有個PUSH命令將要在消息框中顯示的數據壓入椎棧?
g)?__vbavarcat????將兩個變量值相連,如果是兩個字符串,就連在一起?
h)?__vbafreevar??釋放出變量所占的內存,也就是把內存某個位置的變量給抹掉
i)?__vbaobjset?
j)??__vbaLenBstr???獲得一個字符串的長度,注:VB中一個漢字的長度也為1
k)?rtcInputBox????顯示一個VB標準的輸入窗口,類似window's?API?getwindowtext/a,?GetDlgItemtext/a?
l)?__vbaNew??????調用顯示一個對話框,類似?Windows'?API?Dialogbox?
m)?__vbaNew2????調用顯示一個對話框,類似?Windows'?API?Dialogboxparam/a?
n)?rtcTrimBstr???將字串左右兩邊的空格去掉
5)?比較函數
a)??__vbastrcomp???比較兩個字符串,類似于?Window's?API?lstrcmp?
b)??__vbastrcmp???比較兩個字符串,類似于?Window's?API?lstrcmp?
c)?__vbavartsteq??比較兩個變量值是否相等
d)__vbaFpCmpCy??????????????????-?Compares?Floating?point?to?currency.?sp;????????????Compares?Floating?point?to?currency
6)?在動態跟蹤,分析算法時,尤其要注意的函數:
rtcMidCharVar??從字符串中取相應字符,VB中的MID函數,用法MID("字符串","開始的位置","取幾個字符")
rtcLeftCharVar?從字符串左邊取相應字符,VB中的用法:left("字符串","從左邊開始取幾個字符")
rtcRightCharVar?從字符串右邊取相應字符,VB中的用法:Right("字符串","從右邊開始取幾個字符")
__vbaStrCat??用字符串的操作,就是將兩個字符串合起來,在VB中只有一個&或+
__vbaStrCmp??字符串比較,在VB中只有一個=或<>
ASC()函數????取一個字符的ASC值,在反匯編時,還是有的movsx?操作數
7)?在函數中的縮寫:
bool?布爾型數據(TRUE?或??FALSE)?
str??字符串型數據?STRING
i2???字節型數據或雙字節整型數據??BYTE?or?Integer
ui2??無符號雙字節整型數據??
i4???長整型數據(4字節)??Long
r4???單精度浮點型數據(4字節)??Single?
r8???雙精度浮點型數據(8字節)??Double
cy? (8?個字節)整型的數值形式?Currency
var??變量?????Variant
fp? 浮點數據類型??Float?Point
cmp??比較???compare
comp?比較???compare
?
Btw:
__vbavartsteq系列的還有__vbavartstne?不等于
__vbavartstGe,__vbavartstGt,__vbavartstLe,__vbavartstLt等,比較大于或小于
?
總結