吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 16777|回复: 122

[原创逆向图文] 某切图之星的追码过程

  [复制链接]
夏洛魂 发表于 2017-7-13 15:58 | 显示全部楼层 |阅读模式

软件介绍: 1. 可以一次打开多张图片,然后分别对每张图片进行处理。
        2. 裁切框可以任意调整大小和位置,支持用键盘微调;也可以锁定裁切框的大小,这样裁切出来的图片尺寸都是一样大的。
        3. 支持多种常见的图片文件格式,如JPEG、JPG、PNG、GIF、BMP。
        4. 支持 “捕捉屏幕” 功能,并支持热键抓图,这样就可以直接将屏幕上的内容抓下来切图了,免去了先用抓图软件抓下来保存,再打开文件的繁琐操作。
        5. 与 “淘淘图片拼接之星” 软件无缝集成,可以方便快速的将切出来的小图拼接在一起。
        6. 支持将原图片进行向左或向右微量旋转。
首先我们来运行程序看下他的注册流程:
1.png
输入假码,会有错误弹窗
我们来查下壳 :
2.png
一看软件的壳居然是vmp 有木有吓一跳啊。。。。。。。。。。。。 但我们今天就带壳调试他
程序直接拖入OD运行起来 ,先下个弹窗api函数断点 bp MessageBoxW
输入假码 程序自然会断下来
3.png
这时我们就F8单步走 一直找到可以跳过弹窗call的跳转
4.png
在跳转的上面一个call下断,重新载入程序,由于程序带壳 我们的断点自然会被禁止,
5.png
上面可以看到下断点部分还没有解码,此时运行程序,然后激活断点,输入假码,程序就会停在我们之前下断的call处
7.png
F7单步跟进去,这里面有一个简单的算法验证call
这里我把代码粘贴了出来 :
[Asm] 纯文本查看 复制代码
00592AD8    55              push ebp
00592AD9    8BEC            mov ebp,esp
00592ADB    6A 00           push 0x0
00592ADD    6A 00           push 0x0
00592ADF    6A 00           push 0x0
00592AE1    53              push ebx
00592AE2    33C0            xor eax,eax
00592AE4    55              push ebp
00592AE5    68 7D2B5900     push PhotoCro.00592B7D
00592AEA    64:FF30         push dword ptr fs:[eax]
00592AED    64:8920         mov dword ptr fs:[eax],esp
00592AF0    33DB            xor ebx,ebx
00592AF2    A0 902B5900     mov al,byte ptr ds:[0x592B90]
00592AF7    50              push eax
00592AF8    8D45 FC         lea eax,dword ptr ss:[ebp-0x4]
00592AFB    50              push eax
00592AFC    8D45 F8         lea eax,dword ptr ss:[ebp-0x8]
00592AFF    8A15 801F7800   mov dl,byte ptr ds:[0x781F80]
00592B05    E8 8A2AE7FF     call PhotoCro.00405594
00592B0A    8B45 F8         mov eax,dword ptr ss:[ebp-0x8]
00592B0D    50              push eax
00592B0E    8D45 F4         lea eax,dword ptr ss:[ebp-0xC]
00592B11    8B55 08         mov edx,dword ptr ss:[ebp+0x8]
00592B14    E8 CB2AE7FF     call PhotoCro.004055E4
00592B19    8B45 F4         mov eax,dword ptr ss:[ebp-0xC]
00592B1C    8B0D 68287B00   mov ecx,dword ptr ds:[0x7B2868]    ; PhotoCro.007737FC
00592B22    8B09            mov ecx,dword ptr ds:[ecx]
00592B24    5A              pop edx                            ; 0012EEA4
00592B25    E8 0632E8FF     call PhotoCro.00415D30             ; 将假码连接起来,去掉之间的-
00592B2A    8B45 FC         mov eax,dword ptr ss:[ebp-0x4]
00592B2D    E8 662BE7FF     call PhotoCro.00405698             ; 获取假码的位数
00592B32    83F8 02         cmp eax,0x2
00592B35    7C 2B           jl short PhotoCro.00592B62
00592B37    8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
00592B3A    8A5C02 FF       mov bl,byte ptr ds:[edx+eax-0x1]
00592B3E    8D55 FC         lea edx,dword ptr ss:[ebp-0x4]
00592B41    B9 01000000     mov ecx,0x1
00592B46    92              xchg eax,edx
00592B47    E8 EC2DE7FF     call PhotoCro.00405938             ; 这个call的功能就是 取假码最后一位给bl
00592B4C    8B45 FC         mov eax,dword ptr ss:[ebp-0x4]
00592B4F    E8 F862FDFF     call PhotoCro.00568E4C             ; 算法部分
00592B54    83C0 30         add eax,0x30                       ; eax的值加上30
00592B57    33D2            xor edx,edx                        ; 清空edx
00592B59    8AD3            mov dl,bl                          ; 将假码最后一位给 dl
00592B5B    3BC2            cmp eax,edx                        ; 判断eax和 edx的值是否相等,,,这里我们要让他相等(eax 就是刚才的余数加上30的值,而edx就是假码的最后一位)
00592B5D    0f94c0          sete al                                   将z标志位的值给al
00592B60    8BD8            mov ebx,eax
00592B62    33C0            xor eax,eax
00592B64    5A              pop edx                            ; 0012EEA4
00592B65    59              pop ecx                            ; 0012EEA4
00592B66    59              pop ecx                            ; 0012EEA4
00592B67    64:8910         mov dword ptr fs:[eax],edx
00592B6A    68 842B5900     push PhotoCro.00592B84
00592B6F    8D45 F4         lea eax,dword ptr ss:[ebp-0xC]
00592B72    BA 03000000     mov edx,0x3
00592B77    E8 5428E7FF     call PhotoCro.004053D0
00592B7C    C3              retn




看到上面有一个算法call(我注释了) 我们跟进去 看看他干了啥
[Asm] 纯文本查看 复制代码
00568E4A    8BC0            mov eax,eax
00568E4C    53              push ebx
00568E4D    56              push esi
00568E4E    8BF0            mov esi,eax
00568E50    33DB            xor ebx,ebx
00568E52    8BC6            mov eax,esi
00568E54    8B15 68287B00   mov edx,dword ptr ds:[0x7B2868]    ; PhotoCro.007737FC
00568E5A    8B12            mov edx,dword ptr ds:[edx]
00568E5C    E8 83C9E9FF     call PhotoCro.004057E4             ; 取现在的假码位数给eax(刚才上面有一个call把假码最后一位去掉并给了bl)
00568E61    74 28           je short PhotoCro.00568E8B
00568E63    8BC6            mov eax,esi
00568E65    E8 2EC8E9FF     call PhotoCro.00405698
00568E6A    85C0            test eax,eax                       ; 判断假码位数是否为零 为零的话就跳走了
00568E6C    7E 11           jle short PhotoCro.00568E7F
00568E6E    BA 01000000     mov edx,0x1                        ; edx赋值为1
00568E73    33C9            xor ecx,ecx                        ; 清空ecx
00568E75    8A4C16 FF       mov cl,byte ptr ds:[esi+edx-0x1]   ; 假码第一位给 cl
00568E79    03D9            add ebx,ecx                        ; edx+ecx
00568E7B    42              inc edx
00568E7C    48              dec eax
00568E7D  ^ 75 F4           jnz short PhotoCro.00568E73        ; 这个循环总结下就是假码依次相加并将相加的结果放在ebx中
00568E7F    8BC3            mov eax,ebx                        ; 将ebx的值(就是假码依次(除去最后一位)依次相加的结果)给eax
00568E81    B9 09000000     mov ecx,0x9                        ; ecx赋值为9
00568E86    99              cdq                                ; 进行符号为扩展,目前是将edx赋值为0
00568E87    F7F9            idiv ecx                           ; eax除以ecx
00568E89    8BDA            mov ebx,edx                        ; 上述相除的余数给ebx
00568E8B    8BC3            mov eax,ebx                        ; 将ebx的值给eax
00568E8D    5E              pop esi                            ; 
00568E8E    5B              pop ebx                            ; 
00568E8F    C3              retn



这里就总结下,这个程序有两种验证方式, 一种是在线验证,一种是离线验证。
在线验证部分 他会先简单验证下假码是否符合要求,然后再把数据上传至服务器 进行判断,然后把新的激活码发送到你填入的邮箱里面。
我们这里看他的离线验证部分
假码的简单要求就是 必须有25位且其中空格不算(这一部分的代码我没有贴出来,就在上面的那个弹窗call上面),前24位对应于ascll码的16进制数相加的和除以9的余数,这个余数加上30的值必须与假码的最后一位相等 (我这里输入的是12345 56789 90123 34567 78906)
这里我们输入一组符合假码简单要求的一组数据 然后运行程序
游客,如果您要查看本帖隐藏内容请回复


把这个注册码输入,看下程序是否注册成功?

12.png

OK,程序已经注册了。




评分

参与人数 37威望 +1 HB +70 THX +25 收起 理由
longge188 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
六味地黄丸 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
太阳神 + 2 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
bing_mao + 1
sjtkxy + 1 + 1
创客者V2.0 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
消逝的过去 + 1
禽大师 + 1
冷亦飞 + 1
武清一点点 + 1 + 1
上帝的恩赐 + 2 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
h112233h456 + 1
bnjzzheng + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
lies + 1
szj8867 + 1 + 1 [快捷评语]--学破解论坛因为有你,而变得精彩!
方长 + 1 + 1 [快捷评语] - 吃水不忘打井人,给个评分懂感恩!
jack007 + 1 [快捷评语] - 吃水不忘打井人,给个评分懂感恩!
wswwj + 1 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
Oneness神 + 1 + 1 [快捷评语] - 2017,让我们17学破解!
菜鸟中的菜鸟 + 3 + 1 [快捷评语] - 2017,让我们17学破解!
一介书生 + 1 + 1 [快捷评语] - 2017,让我们17学破解!
如痴如梦如癫 + 3 + 1 [快捷评语] - 2017,让我们17学破解!
jiqigouer + 2 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
airushaonian + 1 [快捷评语] - 2017,让我们17学破解!
748680294 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
矿泉水瓶 + 1 [快捷评语] - 吃水不忘打井人,给个评分懂感恩!
海天一色001 + 1 + 1 [快捷评语] - 评分=感恩!简单却充满爱!感谢您的作品!
byh3025 + 1 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
千里冰封 + 3 + 1 [快捷评语] - 2017,让我们17学破解!
sgyz520 + 1 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
zlyqwe456 + 1 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
逍遥枷锁 + 1 + 1 [快捷评语] - 2017,让我们17学破解!
hongf + 1 感恩!简单却充满爱!感谢您的作品!
wb8899 + 1 + 1 [快捷评语] - 分享精神,是最值得尊敬的!
pj2020 + 1 + 1 [快捷评语] - 吃水不忘打井人,给个评分懂感恩!
Shark恒 + 1 + 30 + 1 分析的很细致,精华走一个,再接再厉!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2017-7-13 16:21 | 显示全部楼层

分析的很细致,精华走一个,再接再厉!

你学习也很认真,希望保持下去!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 夏洛魂 发表于 2017-7-13 16:27 | 显示全部楼层

Shark恒 发表于 2017-7-13 16:21
分析的很细致,精华走一个,再接再厉!

你学习也很认真,希望保持下去!

谢谢恒叔
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
pj2020 发表于 2017-7-13 20:05 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
wb8899 发表于 2017-7-13 20:09 | 显示全部楼层

很好,谢谢
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
shizp 发表于 2017-7-13 21:42 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
lzb288 发表于 2017-7-13 22:09 | 显示全部楼层

多谢楼主分享。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
hongf 发表于 2017-7-13 22:27 | 显示全部楼层

多谢分享,写得详细,学习了。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
now刘 发表于 2017-7-13 23:49 | 显示全部楼层

好久没看到追码新帖子了=-=
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
chenjinghappy 发表于 2017-7-14 01:00 | 显示全部楼层

谢谢楼主分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!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

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