zoukankan      html  css  js  c++  java
  • VB程序破解常用函数

    VB程序破解常用函数 分析VB程序最大的困难是它的API是VB特有的,且字符串查找并不是很容易

    这里记录一些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
    8)通过文件大小实现自校验: rtcFileLen 9� 万能断点法: 二进制搜索816C24,然后在所有jmp

    处下断,Ctrl+L来到下一处816C24,接着在jmp下断,直到搜不到816C24为止,因为VB程序是事件驱动

    的程序,每个jmp都会跳到相应事件,我们可以通过修改相应jmp的地址来改变各个事件出现的顺序,

    此方法可用于去掉启动框、neg窗等。 Btw: __vbavartsteq系列的还有__vbavartstne 不等于

    __vbavartstGe,__vbavartstGt,__vbavartstLe,__vbavartstLt等,比较大于或小于 我们可以通

    过以下几个工具来协助查找VB程序字符串 1、GetVBRes 2、VBExplorer 查看->查看字符串 3

    、c32asm 查看->字符串,如果发现全是乱码,到编辑中,修改为unicode c32asm和VBExplorer相

    比我个人习惯用c32asm,因为它可以直接看到程序哪个地址在调用这个字符串。 在 使用GetVBRes

    时,通过查找unicode字符找到我们的目标字符串后,选中该字符串然后用我们惯用的字母或数字替

    换,然后再查找我们替换后的字符 串。这种方法的好处,如果你用数字代替的话,可以解决VB中文

    显示乱码的问题,有时用OD的unicode插件即可找到修改后的字符串。注意 GetVBRes是需要注册的

    ,非注册版是无法修改原文件的。 ……………………………………………………………… VB

    破解快速找事件 ctrl+B搜索816C24 然后分别在他上面的JMP设置F2断点,运行注册模块进行注册

    。 在那个JMP中断就是从这个JMP开始调用注册模块。 在函数中的缩写: 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 Eq ->相等 equal Ne ->不等于 Le ->小于或等于 Lt ->小于 Ge ->大于或等于

    Gt ->大于 对话框: bpx rtcMsgBox ->显示一信息对话框 ****** 窗体常用: bpx

    DestroyWindow ->破坏�即清除�指定的窗口以及它的所有子窗口****** bpx mouseevent ->模

    拟一次鼠标事件(鼠标中断) bpx postquitmessage ->将一条消息投递给应用程序。这条消息由应

    用程序的内部GetMessage循环获得,但不会传给一个特定的窗口 bpx vbaVarTstEq ->检验指定变

    量是否相等 判断是否注册的函数****** 下BPX vbaVarTstEq 下断点后,shift+F9运行N次到出现

    错误提示窗口,然后N-1次shift+F9运行。alt+F9返回,就可以到关键地方。 拦截警告声: bpx

    rtcBeep ->扬声器提示 数据移动: bpx vbaVarCopy ->数据移动将一个变量值串拷贝到内存 bpx

    vbaVarMove ->数据移动变量在内存中移动,或将一个变量值串拷贝到内存 bpx vbaStrMove ->移

    动字符串 bpx vbaStrCopy ->移动字符串 将一个字符串拷贝到内存,类似于 Windows API

    HMEMCPY 数据类型转换: bpx vbaI2Str ->将一个字符串转为8 位�1个字节�的数值形式(范围

    在 0 至 255 之间) 或2 个字节的数值形式(范围在 -32,768 到 32,767 之间)。 bpx vbaI4Str

    ->将一个字符串转为长整型(4个字节)的数值形式(范围从-2,147,483,6482,147,483,647) bpx

    vbar4Str ->将一个字符串转为单精度单精度浮点型(4个字节)的数值形式 bpx vbar8Str ->将一

    个字符串转为双精度单精度浮点型(8个字节)的数值形式 bpx VarCyFromStr ->(仅VB6库. 要调试

    ,则在WINICE.DAT里必须有 OLEAUT32.DLL)字符串到变比型数据类型 bpx VarBstrFromI2 ->(仅

    VB6库. 要调试,则在WINICE.DAT里必须有 OLEAUT32.DLL)整型数据到字符串: 数值运算: bpx

    vbaVarAdd ->两个变量值相加 bpx vbaVarIdiv ->除整,第一个变量除以第二个变量,得到一个整

    数商 bpx vbaVarSub ->第一个变量减去第二个变量 bpx vbaVarMul ->两个变量值相乘 bpx

    vbaVarDiv ->除 bpx vbaVarMod ->求余 bpx vbaVarNeg ->取负 bpx vbaVarPow ->指数 bpx

    vbavarxor ->两个变量值做异或运算 针对变量: bpx vbaVarCompEq ->比较局部变量是否相等

    bpx vbaVarCompNe ->比较局部变量是否不等于 bpx vbaVarCompLe ->比较局部变量小于或等于

    bpx vbaVarCompLt ->比较局部变量小于 bpx vbaVarCompGe ->比较局部变量大于或等于 bpx

    vbaVarCompGt ->比较局部变量大于 VB的指针: THROW 程序结构: bpx vbaVarForInit ->重

    复执行初始化 bpx vbaVarForNext ->重复执行循环结构� For… Next… (Loop) 比较函数:

    bpx vbaStrCmp ->比较字符串是否相等 ****** bpx vbaStrComp ->比较字符串是否相等 ******

    bpx vbaVarTstEq ->检验指定变量是否相等 bpx vbaVarTstNe ->检验指定变量是否不相等 bpx

    vbaVarTstGt ->检验指定变量大于 bpx vbaVarTstGe ->检验指定变量大于或等于 bpx

    vbaVarTstLt ->检验指定变量小于 bpx vbaVarTstLe ->检验指定变量小于或等于

  • 相关阅读:
    前端开发——HTML学习笔记
    前端开发——HTML学习笔记
    前端开发——HTML学习笔记
    日记2018/1/4
    物联网概念
    安卓常见英文缩写的全拼
    快速排序和计数排序API
    Hash表API
    栈/队列API(push和pop)
    链表API实现(插入,删除,查找)
  • 原文地址:https://www.cnblogs.com/laohaozi/p/12537617.html
Copyright © 2011-2022 走看看