delphi10下载经过几个月的断断续续的研究 【适合破解新

电脑杂谈  发布时间:2018-01-14 00:07:12  来源:网络整理

delphi10下载_delphi xe12新功能_delphi2010怎么下载

经过几个月的断断续续的研究 【适合破解新手的160个crackme练手】已经进行到第80个,正好是一半,现在的速度已经比开始时快了好几倍,这期间C++的语法和应用也熟练了不少,今天用这个例程来介绍一下Delphi程序快速分析定位关键代码找出算法的一点心得,也可以说是相关工具综合应用的心得。

【crackme简介】

下载地址:?shareid=541269&uk=4146939145

Delphi编写,有壳,是一个用户名+序列号验证方式,界面两个文本框,一个底图。

【初试】在Crackme中输入任意用户名和序列号,没有按钮,点任何地方没有反应,脱壳就不介绍了,专用工具或调试器脱都行。delphi10下载

分析工具:Ldr + IDA + X64dbg

【crackme截图】

Image 001.png

【算法分析过程】

这个fireworx是一个系列的Crackme,都是Delphi语言编写,这个079,应该是系统里比较典型的一个例子。综合运用Ldr + IDA + X64dbg三大杀器,将会快速搞定他。

delphi10下载_delphi xe12新功能_delphi2010怎么下载

【步骤1:Ldr静态分析】:将程序拖入Crackme中,显示为Delphi-4语言。

Image 002.png

Forms(f5)页面,Form选项下,程序总共有两个窗体,双击Form1,我们看到了注册窗口,Form2应该是注册成功窗口了,看起来有点恐怖,右下角有succed字样,应该是注册成功会出现这个窗口。在Form1中找到唯一的事件Unit1.TForm1.Image1Click,看来关键代码就在这里了。

还有三个标签,应该被设置了隐藏属性,运行界面上看不到。查看窗体代码方法:选Forms(f5)页面,Text选项后双击来查看窗体属性代码, object Label1: TLabel。。。Caption = 'Wrong Serial' object Label2: TLabel。。。 Caption = 'VL -3585903..46119.-208490.'object Label3: TLabel。。。delphi10下载 Caption = 'VL -',看来这些标签应该是作者编写时用来测试的,在发布的时修将属性Visble设为False了。VL -3585903..46119.-208490.看起来像注册码,尝试无效,'Wrong Serial'为注册错误提示,因为是标签的属性文字,在调试器里可能搜索不到。还是看一下关键事件Unit1.TForm1.Image1Click代码吧,点击CodeViewer(F6)窗口下方的“Src”按钮,SourceCode(F10)页会显示反编译的Delphi代码,将代码复制到NotePad++中,对流程进行分析:

经分析发现,Edit1(用户名)文本框未被引用,也就是说这个文本框与注册算法无关,最终注册码是 lvar_20 := lvar_24 + ' -' + lvar_8 + '..' + lvar_C + '.-' + lvar_10 + '.';这些字符连接组成最终注册码,而lvar_24 := Label3.GetText{Caption};,也就是lvar_24=“VL -”,而 lvar_8 、lvar_C 、 lvar_10是上面的算法中生成的,这里代码看来有些乱,还是看看IDA中分析的结果。

【步骤2:IDA静态分析】

在IDA中打开程序,按G转到Unit1.TForm1.Image1Click事件地址:00455504,F5分析伪代码,在这段代码中找到关键算法部分:

根据IDA中的伪代码可以分析出:

v4<即lvar_8> = (v3<循环变量> ^ (v3 >> 14)) + 3585902;

v18<即lvar_C> = v4 / 73 - 3002;

delphi10下载_delphi2010怎么下载_delphi xe12新功能

lvar_10=(v18 ^ 20 * (v4 / 304)) + 271;

不得不说,IDA真的很强大,通过对LDR和IDA中的代码进行分析,加上在X64DBG中的动态验证:程序的循环流程是:取TForm1的Name属性('Form1')字符串长度为循环次数,计数器从0开始循环到5,最后一个循环生成的值拼接后为真正注册码。

【步骤3:X64DBG动态验证】

动态验证的过程就不详写了,提供一个窍门,可以在LDR中的Tools菜单下,点击 MAP Generator生成MAP文件,然后在X64DBG中用插件导入。这样代码会一目了然。

附添加MAP数据后的对比图:

未导入MAP文件:

Image 004.png

导入MAP文件后:

Image 003.png

这个CRACKME的算法就分析完成了,注册机的C++代码如下:

注册码为:VL - -3585907..46120.-208483.

对于这一系列CRACKME(071-080)都适用于本方法快速破解,当然也同样用于其它DELPHI(代码无加密混淆)的程序,教程未尽之处或不对的地方,还请路过的大神指正。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-60049-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...