首页
社区
课程
招聘
[原创]Better File Rename V5.3.1算法逆向+系列注册机源码
发表于: 2008-11-11 15:49 7962

[原创]Better File Rename V5.3.1算法逆向+系列注册机源码

2008-11-11 15:49
7962

【破文标题】Better File Rename V5.3.1算法逆向+系列注册机源码
【破文作者】Playboysen
【作者邮箱】playboysen@126.com
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件大小】1.6 MB
【软件授权】共享版($19.95)
【软件语言】英文
【原版下载】418K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4m8#2j5X3I4A6j5%4y4H3j5h3y4W2i4K6u0W2L8X3g2@1i4K6u0r3N6$3W2F1k6r3!0%4M7#2)9J5c8V1u0W2N6s2c8W2M7V1k6A6L8r3g2d9k6h3&6S2L8h3g2Q4x3V1k6V1L8%4N6F1L8r3!0S2k6q4)9J5k6h3S2@1L8h3H3`.
【保护方式】注册码
【软件简介】一款WINDOWS资源管理器的扩展外壳, 可以帮助你快速简便地修改文件名和文件修改时间。功能有:强大的命名方式,文字、日期和序列数字的添加、去除、插入和替换;支持数字列表的创建、改变、添加、抽取等;支持文件建立日期、修正日期、EXIF中日期的修改;可以分别处理文件名和扩展名
【破解声明】一点心得,愿与大家分享o(∩_∩)o 版权所有,转载注明作者!
【破解内容】

    昨天整理一些试题材料(一二百份文件)需要修改一下文件名,就找了一款别人推荐的文件重命名的软件,很好用,但是不注册每次只能修改10个文件名,害我折腾了半个多小时才弄完,火气——我只不过是想用一次,就仅仅一次,都不给机会!干脆,拉出来练手!
    Better File Rename V5.3.1(081103更新),无壳,未注册启动有NAG,功能限制,单一注册码保护方式,有错误提示,OD载入查找字符串无果,怀疑是字符串加密或者软件多数功能并不在主程序中,查看软件根目录有同名dll文件——可疑之处。
    踩点完毕,开工。OD载入后运行至出现NAG,下MessageBoxA和MessageBoxW断点(以防万一),随便填写注册码注册后断下,逆跟踪至此:

1000D705  |> \6A 00            push 0                     ;  错误对话框
1000D707  |.  68 00820910      push Bfr_1.10098200        ;  error
1000D70C  |.  68 B4810910      push Bfr_1.100981B4        ;  the registration code is not correct.
1000D711  |.  8B8D 94FEFFFF    mov ecx,dword ptr ss:[ebp-16C]
1000D717  |.  E8 11370600      call Bfr_1.10070E2D
1000D71C  |>  C645 FC 00       mov byte ptr ss:[ebp-4],0
1000D720  |.  8D8D 4CFFFFFF    lea ecx,dword ptr ss:[ebp-B4]
1000D726  |.  E8 5E520600      call Bfr_1.10072989
1000D72B  |>  C745 FC 09000000 mov dword ptr ss:[ebp-4],9
1000D59B  |.  C645 FC 01       mov byte ptr ss:[ebp-4],1
1000D59F  |.  8D8D 4CFFFFFF    lea ecx,dword ptr ss:[ebp-B4]
1000D5A5  |.  E8 FA580600      call Bfr_1.10072EA4                  ;  取注册码
1000D5AA  |.  8D8D 4CFFFFFF    lea ecx,dword ptr ss:[ebp-B4]
1000D5B0  |.  E8 31FC0500      call Bfr_1.1006D1E6
1000D5B5  |.  C785 48FFFFFF 00>mov dword ptr ss:[ebp-B8],0
1000D5BF  |.  EB 0F            jmp short Bfr_1.1000D5D0
1000D5C1  |>  8B8D 48FFFFFF    /mov ecx,dword ptr ss:[ebp-B8]       ;  这一段循环目的是加密所输入的注册码
1000D5C7  |.  83C1 01          |add ecx,1                           ;  每循环一次计数器加1
1000D5CA  |.  898D 48FFFFFF    |mov dword ptr ss:[ebp-B8],ecx
1000D5D0  |>  8B95 4CFFFFFF     mov edx,dword ptr ss:[ebp-B4]       ;  注册码放入
1000D5D6  |.  8B42 F8          |mov eax,dword ptr ds:[edx-8]        ;  注册码长度放入
1000D5D9  |.  8985 9CFEFFFF    |mov dword ptr ss:[ebp-164],eax
1000D5DF  |.  8B8D 48FFFFFF    |mov ecx,dword ptr ss:[ebp-B8]       ;  计数器
1000D5E5  |.  3B8D 9CFEFFFF    |cmp ecx,dword ptr ss:[ebp-164]      ;  比较是否加密完成
1000D5EB  |.  7D 3E            |jge short Bfr_1.1000D62B
1000D5ED  |.  8B95 48FFFFFF    |mov edx,dword ptr ss:[ebp-B8]       ;  计数器的值放入EDX
1000D5F3  |.  8B85 4CFFFFFF    |mov eax,dword ptr ss:[ebp-B4]       ;  加密后的注册码放入EAX
1000D5F9  |.  66:8B0C50        |mov cx,word ptr ds:[eax+edx*2]      ;  从前到后依次取注册码的每一位
1000D5FD  |.  66:898D 98FEFFFF |mov word ptr ss:[ebp-168],cx
1000D604  |.  8B95 98FEFFFF    |mov edx,dword ptr ss:[ebp-168]      ;  取出的每一位单独放入EDX
1000D60A  |.  81E2 FFFF0000    |and edx,0FFFF
1000D610  |.  0395 48FFFFFF    |add edx,dword ptr ss:[ebp-B8]       ;  取出的注册码的每一位+(其所在的位数-1)
1000D616  |.  52               |push edx
1000D617  |.  8B85 48FFFFFF    |mov eax,dword ptr ss:[ebp-B8]       ;  计数器的值放入
1000D61D  |.  50               |push eax
1000D61E  |.  8D8D 4CFFFFFF    |lea ecx,dword ptr ss:[ebp-B4]
1000D624  |.  E8 B1580600      |call Bfr_1.10072EDA
1000D629  |.^ EB 96            \jmp short Bfr_1.1000D5C1
1000D62B  |>  51               push ecx
1000D62C  |.  8BCC             mov ecx,esp
1000D62E  |.  89A5 A0FEFFFF    mov dword ptr ss:[ebp-160],esp
1000D634  |.  8D95 4CFFFFFF    lea edx,dword ptr ss:[ebp-B4]        ;  出现加密后的假码
1000D63A  |.  52               push edx
1000D63B  |.  E8 B6500600      call Bfr_1.100726F6
1000D640  |.  8985 90FEFFFF    mov dword ptr ss:[ebp-170],eax       
1000D646  |.  E8 5549FFFF      call Bfr_1.10001FA0                  ;  跟踪发现此为关键call
1000D64B  |.  83C4 04          add esp,4
1000D64E  |.  8985 8CFEFFFF    mov dword ptr ss:[ebp-174],eax
1000D654  |.  8B85 8CFEFFFF    mov eax,dword ptr ss:[ebp-174]
1000D65A  |.  8985 50FFFFFF    mov dword ptr ss:[ebp-B0],eax
1000D660  |.  83BD 50FFFFFF 00 cmp dword ptr ss:[ebp-B0],0
1000D667  |.  75 2A            jnz short Bfr_1.1000D693             ;  关键跳
1000D669  |.  8D8D 4CFFFFFF    lea ecx,dword ptr ss:[ebp-B4]
1000D66F  |.  51               push ecx
1000D670  |.  8B8D 94FEFFFF    mov ecx,dword ptr ss:[ebp-16C]
1000D676  |.  83C1 5C          add ecx,5C
1000D679  |.  E8 52540600      call Bfr_1.10072AD0
1000D67E  |.  68 21300000      push 3021
1000D683  |.  8B8D 94FEFFFF    mov ecx,dword ptr ss:[ebp-16C]
1000D689  |.  E8 3A1B0600      call Bfr_1.1006F1C8
1000D68E  |.  E9 89000000      jmp Bfr_1.1000D71C
1000D693  |>  83BD 50FFFFFF 00 cmp dword ptr ss:[ebp-B0],0
1000D69A  |.  7E 69            jle short Bfr_1.1000D705             ;  关键跳
......
1000D705  |>  6A 00            push 0                               ; /错误对话框
1000D707  |.  68 00820910      push Bfr_1.10098200                  ; |error
1000D70C  |.  68 B4810910      push Bfr_1.100981B4                  ; |the registration code is not correct.
1000D711  |.  8B8D 94FEFFFF    mov ecx,dword ptr ss:[ebp-16C]       ; |
1000D717  |.  E8 11370600      call Bfr_1.10070E2D                  ; \Bfr_1.10070E2D
10001FB8  |.  81EC A8000000    sub esp,0A8
10001FBE  |.  C745 FC 00000000 mov dword ptr ss:[ebp-4],0
10001FC5  |.  68 14830910      push Bfr_1.10098314                  ;  bgt0exzo5:<ce:ahcj?gink
10001FCA  |.  8D4D EC          lea ecx,dword ptr ss:[ebp-14]
10001FCD  |.  E8 800A0700      call Bfr_1.10072A52
10001FD2  |.  C645 FC 01       mov byte ptr ss:[ebp-4],1
10001FD6  |.  8B45 EC          mov eax,dword ptr ss:[ebp-14]
10001FD9  |.  8945 A0          mov dword ptr ss:[ebp-60],eax
10001FDC  |.  8B4D A0          mov ecx,dword ptr ss:[ebp-60]
10001FDF  |.  51               push ecx
10001FE0  |.  8B55 08          mov edx,dword ptr ss:[ebp+8]
10001FE3  |.  52               push edx
10001FE4  |.  E8 10360400      call Bfr_1.100455F9                  ;  关键处,F7跟进
10001FE9  |.  83C4 08          add esp,8
10001FEC  |.  8945 9C          mov dword ptr ss:[ebp-64],eax        ; 上面call的返回值放入
10001FEF  |.  33C0             xor eax,eax
10001FF1  |.  837D 9C 00       cmp dword ptr ss:[ebp-64],0          ; 其实还是比较上面call的返回值
10001FF5  |.  0F94C0           sete al
10001FF8  |.  25 FF000000      and eax,0FF
10001FFD  |.  85C0             test eax,eax
10001FFF  |.  0F85 E4000000    jnz Bfr_1.100020E9                   ;  如果跳转则提示输入的是v4版本的注册码
10002005  |.  68 FC820910      push Bfr_1.100982FC                  ;  bgv0fxzz5b<be:bbij?gjnk
1000200A  |.  8D4D E4          lea ecx,dword ptr ss:[ebp-1C]
......
10002048  |.  85D2             test edx,edx
1000204A  |.  0F85 99000000    jnz Bfr_1.100020E9                   ;  提示V4版本注册码
10002050  |.  68 E4820910      push Bfr_1.100982E4                  ;  bgt0exzo5;=@b:?ceg?ifnn
10002055  |.  8D4D DC          lea ecx,dword ptr ss:[ebp-24]
......
1000208D  |.  81E1 FF000000    and ecx,0FF
10002093  |.  85C9             test ecx,ecx
10002095  |.  75 52            jnz short Bfr_1.100020E9             ;  提示V4版本注册码
10002097  |.  68 CC820910      push Bfr_1.100982CC                  ;  bgv0fxzz5@>=a:ceii?lgjj
1000209C  |.  8D4D D4          lea ecx,dword ptr ss:[ebp-2C]
......
100020D4  |.  25 FF000000      and eax,0FF
100020D9  |.  85C0             test eax,eax
100020DB  |.  75 0C            jnz short Bfr_1.100020E9             ;  提示V4版本注册码
100020DD  |.  C785 70FFFFFF 00>mov dword ptr ss:[ebp-90],0
100020E7  |.  EB 0A            jmp short Bfr_1.100020F3
100020E9  |>  C785 70FFFFFF 01>mov dword ptr ss:[ebp-90],1
100020F3  |>  8A8D 70FFFFFF    mov cl,byte ptr ss:[ebp-90]
100020F9  |.  884D F0          mov byte ptr ss:[ebp-10],cl
100020FC  |.  C645 FC 00       mov byte ptr ss:[ebp-4],0
10002100  |.  8D4D EC          lea ecx,dword ptr ss:[ebp-14]
10002103  |.  E8 81080700      call Bfr_1.10072989
10002108  |.  8B55 F0          mov edx,dword ptr ss:[ebp-10]
1000210B  |.  81E2 FF000000    and edx,0FF
10002111  |.  85D2             test edx,edx
10002113  |.  74 1E            je short Bfr_1.10002133              ;  如果没有跳,说明是V4注册码
10002115  |.  C745 D0 01000000 mov dword ptr ss:[ebp-30],1
1000211C  |.  C745 FC FFFFFFFF mov dword ptr ss:[ebp-4],-1
10002123  |.  8D4D 08          lea ecx,dword ptr ss:[ebp+8]
10002126  |.  E8 5E080700      call Bfr_1.10072989
1000212B  |.  8B45 D0          mov eax,dword ptr ss:[ebp-30]
1000212E  |.  E9 E3010000      jmp Bfr_1.10002316
10002133  |>  68 B4820910      push Bfr_1.100982B4                  ;  bgt0exlo5=<ce:ahid?lgjl
10002138  |.  8D4D C8          lea ecx,dword ptr ss:[ebp-38]
1000213B  |.  E8 12090700      call Bfr_1.10072A52
10002140  |.  C645 FC 02       mov byte ptr ss:[ebp-4],2
10002144  |.  8B45 C8          mov eax,dword ptr ss:[ebp-38]
10002147  |.  8945 80          mov dword ptr ss:[ebp-80],eax
1000214A  |.  8B4D 80          mov ecx,dword ptr ss:[ebp-80]
1000214D  |.  51               push ecx
1000214E  |.  8B55 08          mov edx,dword ptr ss:[ebp+8]
10002151  |.  52               push edx
10002152  |.  E8 A2340400      call Bfr_1.100455F9                  ;  关键,同上          
10002157  |.  83C4 08          add esp,8
1000215A  |.  8985 7CFFFFFF    mov dword ptr ss:[ebp-84],eax
10002160  |.  33C0             xor eax,eax
10002162  |.  83BD 7CFFFFFF 00 cmp dword ptr ss:[ebp-84],0
10002169  |.  0F94C0           sete al
1000216C  |.  25 FF000000      and eax,0FF
10002171  |.  85C0             test eax,eax
10002173  |.  75 5F            jnz short Bfr_1.100021D4
10002175  |.  68 9C820910      push Bfr_1.1009829C                  ;  bgv0fxlz5<<ae:fhhj?lgnk
1000217A  |.  8D4D C0          lea ecx,dword ptr ss:[ebp-40]
1000217D  |.  E8 D0080700      call Bfr_1.10072A52

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (10)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
传说中的沙发?!
2008-11-11 15:55
0
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习,看看算法
2008-11-12 22:45
0
雪    币: 455
活跃值: (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习..嘿嘿``
2008-11-12 22:58
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错不错,适合新手
2008-11-12 23:05
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习了一下........
2008-11-13 06:58
0
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
7
好东西,学习
2008-11-13 09:32
0
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
8
好文好文,慢慢品尝!!!!
2008-11-13 10:01
0
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
9
楼主介绍的软件很好用
2008-11-16 15:44
0
雪    币: 125
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
跟作者的方法走了一遍~~~~~~~对messageboxa和messageboxw下不了断,不知道是什么原因
2008-11-16 16:45
0
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
11
应该用 bp MessageBoxW 来下断错误提示框
2008-11-16 17:37
0
游客
登录 | 注册 方可回帖
返回