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