吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 6250|回复: 57

[原创逆向图文] 图片批量下载精灵 1.60算法分析[适合新手]

  [复制链接]
pj2020 发表于 2017-5-2 22:25 | 显示全部楼层 |阅读模式

本帖最后由 pj2020 于 2017-5-2 22:27 编辑
【文章标题】:图片批量下载精灵 1.60算法分析[适合新手]
【文章作者】:pj2020
【软件名称】:图片批量下载精灵 1.60
【软件大小】:957KB
【保护方式】:注册码
【下载地址】:自己搜索
【加壳方式】:无壳
【编写工具】:Borland Delphi 6.0 -7.0
逆向工具】:PEIDOD
【操作平台】:盗版XP3
【作者声明】:只是感兴趣,没有其他目的
【软件简介】:图片批量下载精灵是一款从网站上下载图片的共享软件,它可以把网站上的图片都下载下来。
【思路方法】
1.png
本程序无壳,重启验证。因前面的步骤比较简单,直接进入算法分部:(以机器码“abcde”为例)

[Asm] 纯文本查看 复制代码
005273C0  /$  55            push ebp                              ;  算法部分
005273C1  |.  8BEC          mov ebp,esp
005273C3  |.  51            push ecx
005273C4  |.  B9 04000000   mov ecx,0x4
005273C9  |>  6A 00         /push 0x0
005273CB  |.  6A 00         |push 0x0
005273CD  |.  49            |dec ecx
005273CE  |.^ 75 F9         \jnz short PicDown.005273C9
005273D0  |.  51            push ecx
005273D1  |.  874D FC       xchg [local.1],ecx
005273D4  |.  53            push ebx
005273D5  |.  56            push esi
005273D6  |.  57            push edi
005273D7  |.  8BF9          mov edi,ecx
005273D9  |.  8955 FC       mov [local.1],edx
005273DC  |.  8B45 FC       mov eax,[local.1]
005273DF  |.  E8 00DCEDFF   call PicDown.00404FE4
005273E4  |.  33C0          xor eax,eax
005273E6  |.  55            push ebp
005273E7  |.  68 81755200   push PicDown.00527581
005273EC  |.  64:FF30       push dword ptr fs:[eax]
005273EF  |.  64:8920       mov dword ptr fs:[eax],esp
005273F2  |.  8BC7          mov eax,edi
005273F4  |.  E8 3BD7EDFF   call PicDown.00404B34
005273F9  |.  8B45 FC       mov eax,[local.1]                     ;  机器码abcde
005273FC  |.  E8 F3D9EDFF   call PicDown.00404DF4
00527401  |.  8BF0          mov esi,eax                           ;  机器码长度eax=00000005
00527403  |.  85F6          test esi,esi
00527405  |.  7E 26         jle short PicDown.0052742D
00527407  |.  BB 01000000   mov ebx,0x1                           ;  ebx赋值0x1
0052740C  |>  8D4D EC       /lea ecx,[local.5]
0052740F  |.  8B45 FC       |mov eax,[local.1]                    ;  机器码abcde
00527412  |.  0FB64418 FF   |movzx eax,byte ptr ds:[eax+ebx-0x1]  ;  依次取机器码ASC码:61 ('a')62 ('b')...65 ('e')
00527417  |.  33D2          |xor edx,edx
00527419  |.  E8 1224EEFF   |call PicDown.00409830
0052741E  |.  8B55 EC       |mov edx,[local.5]                    ;  
00527421  |.  8D45 F8       |lea eax,[local.2]
00527424  |.  E8 D3D9EDFF   |call PicDown.00404DFC
00527429  |.  43            |inc ebx
0052742A  |.  4E            |dec esi
0052742B  |.^ 75 DF         \jnz short PicDown.0052740C
0052742D  |>  8B45 F8       mov eax,[local.2]                     ;  机器码ASC码连成新名: "6162636465"
00527430  |.  E8 BFD9EDFF   call PicDown.00404DF4
00527435  |.  8BF0          mov esi,eax                           ;  新名长度eax=0000000A
00527437  |.  85F6          test esi,esi
00527439  |.  7E 2C         jle short PicDown.00527467
0052743B  |.  BB 01000000   mov ebx,0x1                           ;  ebx赋值0x1
00527440  |>  8B45 F8       /mov eax,[local.2]                    ; 
00527443  |.  E8 ACD9EDFF   |call PicDown.00404DF4
00527448  |.  2BC3          |sub eax,ebx                          ;  eax-ebx=A-1
0052744A  |.  8B55 F8       |mov edx,[local.2]
0052744D  |.  8A1402        |mov dl,byte ptr ds:[edx+eax]         ; 倒序取新名ASC码:=35 ('5')36 ('6')34 ('4')...36 ('6')
00527450  |.  8D45 E8       |lea eax,[local.6]
00527453  |.  E8 C4D8EDFF   |call PicDown.00404D1C
00527458  |.  8B55 E8       |mov edx,[local.6]
0052745B  |.  8D45 F4       |lea eax,[local.3]
0052745E  |.  E8 99D9EDFF   |call PicDown.00404DFC
00527463  |.  43            |inc ebx
00527464  |.  4E            |dec esi
00527465  |.^ 75 D9         \jnz short PicDown.00527440
00527467  |>  8D45 F8       lea eax,[local.2]
0052746A  |.  50            push eax
0052746B  |.  B9 04000000   mov ecx,0x4
00527470  |.  BA 01000000   mov edx,0x1
00527475  |.  8B45 F4       mov eax,[local.3]                     ;  新名倒序: "5646362616"
00527478  |.  E8 D7DBEDFF   call PicDown.00405054
0052747D  |.  8D45 F4       lea eax,[local.3]
00527480  |.  50            push eax
00527481  |.  B9 04000000   mov ecx,0x4
00527486  |.  BA 05000000   mov edx,0x5
0052748B  |.  8B45 F4       mov eax,[local.3]
0052748E  |.  E8 C1DBEDFF   call PicDown.00405054
00527493  |.  8B45 F8       mov eax,[local.2]                     ;  新名倒序前四位: "5646"
00527496  |.  E8 59D9EDFF   call PicDown.00404DF4
0052749B  |.  83F8 04       cmp eax,0x4                           ;  是否够4位?
0052749E  |.  7D 2F         jge short PicDown.005274CF            ;  够就跳走
005274A0  |.  8B45 F8       mov eax,[local.2]
005274A3  |.  E8 4CD9EDFF   call PicDown.00404DF4
005274A8  |.  8BD8          mov ebx,eax
005274AA  |.  83FB 03       cmp ebx,0x3
005274AD  |.  7F 20         jg short PicDown.005274CF
005274AF  |>  8D4D E4       /lea ecx,[local.7]
005274B2  |.  8BC3          |mov eax,ebx
005274B4  |.  C1E0 02       |shl eax,0x2                          ;  不够4位,进行位数左移2位
005274B7  |.  33D2          |xor edx,edx
005274B9  |.  E8 7223EEFF   |call PicDown.00409830
005274BE  |.  8B55 E4       |mov edx,[local.7]
005274C1  |.  8D45 F8       |lea eax,[local.2]
005274C4  |.  E8 33D9EDFF   |call PicDown.00404DFC
005274C9  |.  43            |inc ebx
005274CA  |.  83FB 04       |cmp ebx,0x4
005274CD  |.^ 75 E0         \jnz short PicDown.005274AF
005274CF  |>  8B45 F4       mov eax,[local.3]                     ;  取新名倒序第5-8位: "3626"
005274D2  |.  E8 1DD9EDFF   call PicDown.00404DF4
005274D7  |.  83F8 04       cmp eax,0x4                           ;  是否够4位?
005274DA  |.  7D 2F         jge short PicDown.0052750B            ;  够就跳走
005274DC  |.  8B45 F4       mov eax,[local.3]
005274DF  |.  E8 10D9EDFF   call PicDown.00404DF4
005274E4  |.  8BD8          mov ebx,eax
005274E6  |.  83FB 03       cmp ebx,0x3
005274E9  |.  7F 20         jg short PicDown.0052750B
005274EB  |>  8D4D E0       /lea ecx,[local.8]
005274EE  |.  8BC3          |mov eax,ebx
005274F0  |.  C1E0 02       |shl eax,0x2
005274F3  |.  33D2          |xor edx,edx
005274F5  |.  E8 3623EEFF   |call PicDown.00409830
005274FA  |.  8B55 E0       |mov edx,[local.8]
005274FD  |.  8D45 F4       |lea eax,[local.3]
00527500  |.  E8 F7D8EDFF   |call PicDown.00404DFC
00527505  |.  43            |inc ebx
00527506  |.  83FB 04       |cmp ebx,0x4
00527509  |.^ 75 E0         \jnz short PicDown.005274EB
0052750B  |>  8D45 F0       lea eax,[local.4]
0052750E  |.  BA 98755200   mov edx,PicDown.00527598              ;  固定字串:Pic4e985espr
00527513  |.  E8 B4D6EDFF   call PicDown.00404BCC
00527518  |.  8D45 DC       lea eax,[local.9]
0052751B  |.  50            push eax
0052751C  |.  B9 04000000   mov ecx,0x4                           ;  取固定字串四位
00527521  |.  BA 01000000   mov edx,0x1                           ;  从第一位开始取
00527526  |.  8B45 F0       mov eax,[local.4]
00527529  |.  E8 26DBEDFF   call PicDown.00405054
0052752E  |.  FF75 DC       push [local.9]                        ;  固定字串前四位,(ASCII "Pic4")
00527531  |.  68 B0755200   push PicDown.005275B0                 ;  以“-”号连接
00527536  |.  FF75 F8       push [local.2]                        ;  新名倒序前四位: (ASCII "5646")
00527539  |.  8D45 D8       lea eax,[local.10]
0052753C  |.  50            push eax
0052753D  |.  B9 05000000   mov ecx,0x5                           ;  取固定字串五位
00527542  |.  BA 05000000   mov edx,0x5                           ;  从第五位开始取
00527547  |.  8B45 F0       mov eax,[local.4]
0052754A  |.  E8 05DBEDFF   call PicDown.00405054
0052754F  |.  FF75 D8       push [local.10]                       ;  取固定字串第5-9位,(ASCII "e985e")
00527552  |.  68 B0755200   push PicDown.005275B0                 ;  以“-”号连接
00527557  |.  FF75 F4       push [local.3]                        ;  取新名倒序第5-8位:(ASCII "3626")
0052755A  |.  8BC7          mov eax,edi
0052755C  |.  BA 06000000   mov edx,0x6
00527561  |.  E8 4ED9EDFF   call PicDown.00404EB4
00527566  |.  33C0          xor eax,eax
00527568  |.  5A            pop edx                               ;  PicDown.00527588
00527569  |.  59            pop ecx                               ;  PicDown.00527588
0052756A  |.  59            pop ecx                               ;  PicDown.00527588
0052756B  |.  64:8910       mov dword ptr fs:[eax],edx
0052756E  |.  68 88755200   push PicDown.00527588
00527573  |>  8D45 D8       lea eax,[local.10]
00527576  |.  BA 0A000000   mov edx,0xA
0052757B  |.  E8 D8D5EDFF   call PicDown.00404B58
00527580  \.  C3            retn


算法总结:(以机器码“abcde”为例)
游客,如果您要查看本帖隐藏内容请回复

写在后面:
本软件为明码比较,就算小白中的小白也很容易追到注册码并做出内存注册机。至于软件功能如何,并没有去验证,因本文旨在探讨算法,别无其他。对于那些的确需要这个软件的朋友,还是建议去购买正版,支持一下国软!

      另外,本软件的算法跟前面有一个软件的算法几乎一模一样(详见本坛https://www.52hb.com/thread-32305-1-1.html),真有点晕了。所不同的是,本软件所说的机器码关非软件自动生成,而是由用户随便填写均可。所以在做算法注册机时,如果是机器码中含有中文时,就要多考虑一些。

3.png

评分

参与人数 28威望 +1 HB +50 THX +11 收起 理由
白丁老师 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
禽大师 + 1
再来壹瓶 + 1 + 1
我是我是一体 + 1 [吾爱汇编论坛 52HB.COM]- 感谢楼主热心分享,小小评分不成敬意!
文字君 + 1
虚心学习 + 1
一路走来不容易 + 1
消逝的过去 + 1
temp + 1 + 1
yexing + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
ghostxu + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
liugu0hai + 1 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
叶落花开 + 2
lies + 1
hnymsh + 2
mengzhisuoliu1 + 1
mengzhisuoliu + 1
806226268 + 3 + 1 [快捷评语] - 2018,狗年发发发,狗年旺旺旺!
Oneness神 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
panwanpeng + 1 [快捷评语] - 分享精神,是最值得尊敬的!
孤岛丶鱼 + 1 [快捷评语] - 2017,让我们17学破解!
rostamo + 1 [快捷评语] - 2017,让我们17学破解!
wfq21952 + 1 [快捷评语] - 2017,让我们17学破解!
海天一色001 + 1 + 1 [快捷评语] - 吃水不忘打井人,给个评分懂感恩!
耶稣 + 5 [快捷评语] - 2017,让我们17学破解!
xpjlt163 + 1 [快捷评语] - 本站任何内容出于学习研究的目的,禁止用于任何非法途径,否则一切后果请用户自负!
Shark恒 + 1 + 20 + 1 [快捷评语] - 评分=感恩!简单却充满爱!感谢您的作品!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2017-5-2 22:48 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
asdfg 发表于 2017-5-3 00:45 | 显示全部楼层

吃水不忘打井人,给个评分懂感恩!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
957071670 发表于 2017-5-3 06:42 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
byh3025 发表于 2017-5-3 08:26 | 显示全部楼层

膜拜会算法的大牛
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
gxr2016 发表于 2017-5-3 19:15 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
☆邪梦 发表于 2017-5-4 18:33 | 显示全部楼层

算法分析教程,先收藏了,谢谢分享,
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
邪梦 发表于 2017-5-4 18:42 | 显示全部楼层

辛苦了,感谢分享,
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
耶稣 发表于 2017-5-5 18:29 | 显示全部楼层

看看算法   学习思路
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
wfq21952 发表于 2017-5-16 16:57 | 显示全部楼层

支持原创,感谢大牛
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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