OD学习笔记10:一个VB程序的加密和解密思路
2015-03-14 23:25
288 查看
前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路。
Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程语言。
VB是由事件驱动的编程语言:就是在可视化编程环境下我们可以绘制一些窗体,按钮,编辑框等控件,然后为这些控件所可能引发的事件如按钮被单击或者被双击编写对应的处理代码。
所有的VB程序几乎都是依赖于一个外部的动态链接库。这个动态链接库的名字是:MSVBVM60.dll(可能有多个版本,但名字都差不多~) 然而正是因为VB中所有的API函数都在DLL中去实现,所以导致我们在跟踪程序的执行代码时灰常频繁地在DLL领空和程序领空跳来跳去。。。 API函数的作用有很多,例如作为中介让我们的程序和指定设备进行沟通。
试验软件:PC 2 Answering Machine Pro
用查壳工具PEID查看后,信息如下图:
显示出了该软件的编写语言是Virtual BASIC。
Virtual BASIC编写的软件用OD调试时,由于VB的一些特性,会很麻烦。但是也会有捷径可寻,如下。
VB破解的关键:
针对变量: __vbaVarTstEq __vbaVarTstNe __vbaVarCompEq __vbaVarCompLe __vbaVarCompLt __vbaVarCompGe __vbaVarCompGt __vbaVarCompNe
针对字符串: __vbaStrCmp __vbaStrComp __vbaStrCompVar __vbaStrLike __vbaStrTextComp __vbaStrTextLike
(加黑的是比较常见的)
在OD中针对以上API函数去跟踪分析,找到程序是否正在匹配、比较验证码之类的东西,会便捷不少,省去不必要的麻烦。
第一次安装此软件时,它会通过分析本机网卡的mac地址,或者硬盘的编号生成一个独一无二的key,将其保存在系统里,那么我们就可以通过上面的函数来找到key。
Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程语言。
VB是由事件驱动的编程语言:就是在可视化编程环境下我们可以绘制一些窗体,按钮,编辑框等控件,然后为这些控件所可能引发的事件如按钮被单击或者被双击编写对应的处理代码。
所有的VB程序几乎都是依赖于一个外部的动态链接库。这个动态链接库的名字是:MSVBVM60.dll(可能有多个版本,但名字都差不多~) 然而正是因为VB中所有的API函数都在DLL中去实现,所以导致我们在跟踪程序的执行代码时灰常频繁地在DLL领空和程序领空跳来跳去。。。 API函数的作用有很多,例如作为中介让我们的程序和指定设备进行沟通。
试验软件:PC 2 Answering Machine Pro
用查壳工具PEID查看后,信息如下图:
显示出了该软件的编写语言是Virtual BASIC。
Virtual BASIC编写的软件用OD调试时,由于VB的一些特性,会很麻烦。但是也会有捷径可寻,如下。
VB破解的关键:
针对变量: __vbaVarTstEq __vbaVarTstNe __vbaVarCompEq __vbaVarCompLe __vbaVarCompLt __vbaVarCompGe __vbaVarCompGt __vbaVarCompNe
针对字符串: __vbaStrCmp __vbaStrComp __vbaStrCompVar __vbaStrLike __vbaStrTextComp __vbaStrTextLike
(加黑的是比较常见的)
在OD中针对以上API函数去跟踪分析,找到程序是否正在匹配、比较验证码之类的东西,会便捷不少,省去不必要的麻烦。
第一次安装此软件时,它会通过分析本机网卡的mac地址,或者硬盘的编号生成一个独一无二的key,将其保存在系统里,那么我们就可以通过上面的函数来找到key。
相关文章推荐
- 孙鑫VC学习笔记:第十五讲 编写一个基于MFC对话框的聊天程序
- 【Rebol 学习笔记】第一篇:编写一个简单的 CGI 程序
- 一个简单的加密和解密程序——凯撒密码
- 一个用java写的加密解密程序
- linux0.11学习笔记-技术铺垫-简单AB任务切换程序(1)-实现一个简单的bootloader
- 学习android开发的小笔记(1)-------- 一个检查android网络状态的程序
- 黑马程序员--学习笔记--一个WinForm简单加法练习程序
- java学习笔记---第一个applet程序以及一个小问题的解决
- MD5和一个可逆加密算法相接合的加密和解密程序
- Effective c++学习笔记——条款10:令operator=返回一个*this的引用
- Jsp&Servelet 学习笔记- 在tomcat上部署一个单独的servlet的程序(Ant)
- 学习笔记:一个Qt小程序,在开发板上运行成功
- Jsp&Servelet 学习笔记-写出一个 servelet 程序
- 黑马程序员_O‘Reilly java nio学习笔记之选择器_通过一个程序初识选择器
- openSSL学习笔记 Base64 加密解密
- 一个用java写的加密解密程序
- 收集java的常用方法代码-MD5和一个可逆加密算法相接合的加密和解密程序
- 一个简单的加密解密程序
- 微软企业库4.1学习笔记(二十二)加解密模块2 在应用中使用加密解密
- 微软企业库4.1学习笔记(二十二)加解密模块2 在应用中使用加密解密