一个注册表软件算法的简单分析

软件的介绍与注册见:[url=http://bbs.7softs.com/read.php?tid=30910]http://bbs.7softs.com/read.php?tid=30910[/url]

这个软件是Delphi写的,Borland Delphi 6.0 - 7.0。
无壳,无论是寻码还是爆破都很简单,只所以写篇文章,是因为这个软件的算法机制:非明码却也与明码无别!

我们先跟一下再说吧,先用PEid的插件分析了一下大概的算法有哪些:

一个木马查杀工具的注册算法分析

在试注册时,我们发现是重启验证型的,并且保存在注册表里:

00731D89     68 70AB4E00          push TrojanDo.004EAB70              ; UNICODE "RegValue"
00731D8E     68 54AB4E00          push TrojanDo.004EAB54              ; UNICODE "WingKavReg"
00731D93     68 E0A54E00          push TrojanDo.004EA5E0              ; UNICODE "Wing"

一个易语言程序的爆破:把注册窗口当NAG去除

用PEid查壳,显示为:RLPack V1.21 (aPlib 0.43) -> ap0x   * Sign.By.fly * 20080504 *
呵呵,一个简单的壳,好了,我们直接用OD载入脱壳:

00423FC2 >  60                 pushad   //载入后OD停在此处
00423FC3    E8 00000000        call 9无密码?00423FC8
00423FC8    8B2C24             mov ebp,dword ptr ss:[esp]

两个VB函数:__vbaInStr和rtcLeftCharVar

今天分析一个VB写的程序时碰到的,虽然顾名思义也能猜测到意思:
__vbaInStr:检测是否含有指定的字符
rtcLeftCharVar:从字符串左边取相应字符,VB中的用法:left("字符串","从左边开始取几个字符")

GG了一下相关的资料,整理记录了下来:
1、InStr/__vbaInStr:

MSN 密码监控器 5.2算法分析

【文章标题】: MSN 密码监控器 5.2算法分析
【软件名称】: MSN 密码监控器 5.2
【保护方式】: 注册码
【编写语言】: C++
--------------------------------------------------------------------------------
【详细过程】
      用OD加载程序,运行,用插件搜索ASCII字符,找到提示信息,双击来到反汇编代码处:

学习了,呵呵,VB下的万能断点

断点:__vbaExitProc
又称VB下的万能断点!
说明:
由于VB的框架性质,用户代码只是由被框架代码所调用的函数组成的。所以,必须有一种机制,用来通知框架,我已经干完活了。
这就是__vbaExitProc

暂时没有示例,以后碰到再补上吧,偶又不会VB,晕啊!