申请会员ID:swju【申请通过】
申请会员ID:swju个人邮箱:1453950405@qq.com原创技术文章:vb程序的反汇编反汇编一个简单的vb程序,首先运行
程序主界面如图所示。首先用VB Decompiler Pro 打开crackme.exe 文件,完成静态反汇编。可以获得如下有用信息:
Type=Exe
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\WINDOWS\SYSTEM32\STDOLE2.TLB#OLE Automation
Form=Form1.frm
Startup="Form1"
IconForm="Form1"
VersionCompanyName="#learn2crack"
MajorVer=1
MinorVer=00
RevisionVer=0
Command32 = ""
HelpContextID = "0"
CompatibleMode = "0"
AutoIncrementVer = 0
ServerSupportFiles = 0
CompilationType = 0
OptimizationType = 0
FavorPentiumPro(tm) = 0
CodeViewDebugInfo = 0
NoAliasing = 0
BoundsCheck = 0
OverflowCheck = -1
FlPointCheck = 0
FDIVCheck = 0
UnroundedFP = 0
StartMode = 0
Unattended = 0
Retained = 0
ThreadPerObject = 0
MaxNumberOfThreads = 1
AutoRefresh = 1
Build = 9.8.5389.64863
Date = 2016/3/21
最重要是获得三个按钮的反汇编的伪代码,以check 按钮为例:从反汇编出的代码很容易就知道loc_004033DD 处的代码是输入文本框信息正确时的提示信息。真正核对信息真伪的地址为:loc_00403329,其2 个参数地址在其上方。要获得正确的序列号,只要知道这两个参数的值就可以了。接下来进行爆破,使用Ollydbg 打开,在地址00403329 处设置断点
loc_00403327: push edxloc_00403328: push eaxloc_00403329: call ; @ (%StkVar2 = %Stk-Var1) '__vbaVarTstEqloc_0040332F: test ax, axloc_00403332: jz 00403408h由以上代码可知,如果核对信息不正确,就会执行地址:loc_00403332,即修改此处代码为NOP,就可以破
解。在Ollydbg 中,goto 00403332,修改为NOP 。采用同样的方法,可以破解该软件的加密方法,关键代码地址为:loc_0040318B~ loc_0040329A。
这个爆破分析太简单了,把程序算法分析一下吧。 loc_00403130: If (var_9C < 4) <> 0 Then GoTo loc_004034F3
这个CrackMe大致算法是:
1.取NAME前4位,转化为ASCll码值作为有效值。
2.将其分别加上100后转化为的16进制数连接起来,得到注册码。
使用Delphi 大致还原了一下算法:
procedure TForm1.Button1Click(Sender: TObject);
var
str1:string;
s:string;
i:integer;
begin
str1 :=edit1.Text;
for i:=1 to 4 do begin
s := s + InttoHex(Integer(str1)+100,2);
end;
edit2.Text :=s;
end;
end. ID:swju
邮箱:1453950405@qq.com
申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。
PS:虽然过程简单了些,但vbpcode分析文章较少,所以给予通过,希望有更多分析分享,登录成功后把文章整理一下发脱壳破解区吧。 大家好,我是swju。
希望以后在吾爱破解论坛里同大家积极交流分享,学习更多的知识,提高自身水平。共同进步。
{:1_918:}大家好,
希望以后在吾爱破解论坛里同大家积极交流分享,学习更多的知识,提高自身水平。共同进步。
页:
[1]