飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 16766|回复: 34

[原创] 初次接触.NET程序的破解 - BatchDate宝宝特别版 1.2.0.2

[复制链接]

该用户从未签到

发表于 2009-2-18 23:49:37 | 显示全部楼层 |阅读模式
【破文标题】初次接触.NET程序的破解 - BatchDate宝宝特别版 1.2.0.2.
【破文作者】风球[PYG]
【作者主页】http://Bbs.ChinaPYG.Com
【破解日期】2009年02月07日
【破解工具】PEiD0.94、OllyDbg、Hex Workshop、Reflector、DotNet Helper
【原版下载】http://www.littletools.cn/
【软件简介】 BatchDate宝宝特别版 1.2.0.2. -照片日期文字添加器
    “为了保证照片的完整性,现在的数码相机一般都不直接在照片上打印拍摄日期了,而是记录在照片的Exif信息中。即便是能够打印,也有很多限制,比如其日期格式很固定、显示位置不能设置、不能修改字体等,也不能添加拍摄地点等文字说明。 BatchDate是一个专门用来批量往数码照片上添加日期和文字的小软件!”
------------------------------------------
【前言闲语】
初次接触.net程序,这个软件是在霏凡论坛上见到的,当时用OD很容易就破解了但保存不了。于是在网上参考了些相关.net文章后,整理了一下也发篇东东给新手们分享一下。文章中有错漏的地方,请大家多多指出。相信看完下面的小析后,像我一样第一次接触.net新手们也可破解该网站的另一个照片日期文字添加器软件了。有兴趣的朋友可以拿来练习一下

【破解过程】
一开始使用OD试过了解程序可以标志位完成破解,下面将使用.net反编译工具来进行破解:
软件是.NET程序,且加了Xenocode壳。
首先来脱壳,前辈们的文章中提到.NET在内存中会释放原程序的镜像,所以可以将程序在内存 Memory Map 里DUMP出来。
OD载入程序并运行程序,在OD中ALT+M打开 Memory Map 窗口查找原程序窗口标题 BatchDate
image001.jpg
image003.jpg

每查找到一次字符串后,拉动滚动条至最顶端,直到看到文件头MZ时才停下来DUMP保存数据,如果保存出来的数据不能运行,则需继续往下查找直接保存数据能打开为止,(基本上DUMP保存出来的数据文件大小与原程序文件大小接近),多次CTRL+L查找后可以来到:
image004.jpg

保存数据为.EXE 应用程序文件
image005.jpg

程序可正常运行,查过显示如下:
image006.jpg

可能是脱壳方法不对?以后有时间再去理解它,暂时不管,此时DUMP出的程序可以运行。。。

使用.NET工具 Reflector 可以反编译到代码,但 xenocode fox 2007 不能反编译.
image007.jpg


语言选择C#,可以看到关键的字符串:
image008.jpg

可以猜想到:
Label_00C7:
    this._x62b8f9c7fa9f4a85 = xa2dd9459c0cfd046.x705c856c7e57c9cd();   //x705c856c7e57c9cd()会返回一个BOOL标志,点击跟过去看看代码先
    if (this._x62b8f9c7fa9f4a85)
    {
        this.x4b46173fdc94ea2b.Text = "软件已注册,谢谢!";

跟随来到这里可以看到false标志,破解工作将是把下面的 false标志都改为true:
image010.jpg

将 Reflector 语言改为il,代码将变为如下:

.method assembly hidebysig static bool x705c856c7e57c9cd() cil managed
{
    .maxstack 2
    .locals init (
        [0] string str,
        [1] bool flag,
        [2] bool flag2)
    L_0000: call string PhotoBatch.xa2dd9459c0cfd046::x3c7e0b82a80758dc()
    L_0005: stloc.0
    L_0006: br.s L_0022
    L_0008: ldc.i4.0         //破解点:ldc.i4.0   改为ldc.i4.1 机器码16->17
    L_0009: stloc.1
    L_000a: leave.s L_002b
    L_000c: ldc.i4.0         //破解点:ldc.i4.0   改为ldc.i4.1 机器码16->17
    L_000d: brtrue.s L_0019
    L_000f: br.s L_0019
    L_0011: ldloc.0
    L_0012: call bool [mscorlib]System.String::IsNullOrEmpty(string)
    L_0017: brtrue.s L_0008
    L_0019: ldloc.0
    L_001a: call bool PhotoBatch.xa2dd9459c0cfd046::x06838666885a3344(string)
    L_001f: stloc.1
    L_0020: br.s L_0024
    L_0022: br.s L_0011
    L_0024: leave.s L_002b
    L_0026: pop
    L_0027: ldc.i4.0         //破解点:ldc.i4.0   改为ldc.i4.1 机器码16->17
    L_0028: stloc.1
    L_0029: leave.s L_002b
    L_002b: ldloc.1
    L_002c: ret
    .try L_0000 to L_0026 catch object handler L_0026 to L_002b
}


这时我们可以进行修改破解了,使用二进制工具查找二进制代码 0a2b1a160bde (也许新手会问这个怎么得来的,只要你将鼠标在代码上停留一下就可以看到了,当然也有可能会查找重复的,这就需要你的眼睛多注意一下了,见图片)
image013.jpg

下面使用工具 Hex Workshop 来修改吧,先 CTRL+F 查找 0a2b1a160bde 再修改
image014.jpg

将原来的16都改为17,共三处见下面红色字体,保存看看
image015.jpg


运行程序显示已注册,测试功能正常。
image016.jpg

下面也可以说一下另一个修改方法:
先使用 ildasm2.0 反编译工具DUMP出*.IL文件,再使用ilasm来编译回EXE程序。
image017.jpg



用文本工具打开dump.il文件修改,这里我用记事本打修改后保存。
image018.jpg [
刚才已经知道关键了,查找 xa2dd9459c0cfd046::x3c7e0b82a80758dc() 可来到需修改处:
image019.jpg

将上面三处作修改保存即:
ldc.i4.0         //破解点:ldc.i4.0   改为ldc.i4.1 机器码16->17

然后将保存修改好的 dump.il编译,使用工具DotNet Helper 1.4比较方便:
image020.jpg


编译后跟刚才二进制工具修改的效果一样,只是PEID查壳可显示为.net程序了
image021.jpg

至此软件脱壳破解工作完毕!

【版权声明】 本文原创于P.Y.G官方论坛,纯属兴趣交流, 转载请注明作者并保持文章的完整, 谢谢!

[ 本帖最后由 风球 于 2009-2-19 00:17 编辑 ]

BatchDate.CrAcKed.rar

388.69 KB, 下载次数: 77, 下载积分: 飘云币 -2 枚

评分

参与人数 2威望 +124 飘云币 +200 收起 理由
gfjykldd + 4 赞一个!
Luckly + 120 + 200 您发布的主题属于精品!

查看全部评分

PYG19周年生日快乐!

该用户从未签到

发表于 2009-2-19 07:43:37 | 显示全部楼层
看来,研究.NET是大势所趋啊
PYG19周年生日快乐!

该用户从未签到

发表于 2009-2-19 08:09:46 | 显示全部楼层
精彩.学习了.谢谢楼主分享
PYG19周年生日快乐!

该用户从未签到

发表于 2009-2-19 10:48:19 | 显示全部楼层
好样的...
PYG19周年生日快乐!

该用户从未签到

发表于 2009-2-19 10:53:40 | 显示全部楼层
/:good /:good /:good
分析很好,看来也要好好研究学习一下.net程序
PYG19周年生日快乐!

该用户从未签到

发表于 2009-2-19 11:14:31 | 显示全部楼层
很详细啊,学习了
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-15 21:05
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2009-2-19 23:14:49 | 显示全部楼层
    不错,好好学习下
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-22 01:29:20 | 显示全部楼层
    精品呀!
    顶一个再说
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2009-2-22 15:18:24 | 显示全部楼层
    大牛又出现了!!!!!!!!!!!
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2016-1-18 13:29
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2009-2-23 23:52:20 | 显示全部楼层
    没混淆代码? 那就可以做算法注册机了。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表