mac下mybese个人知识管理软件破解分析

mac下mybese个人知识管理软件破解分析

myBase Desktop (Linux/MacOSX/Windows)
有的时候整理个人收集的资料是一件很麻烦的事情,进行各种的分类,关键字的管理,搜索等都是很麻烦,放在云笔记中,总觉得不是那么的安全,更何况涉及一些隐私文件的话更是如此!后来发现这款软件,确实还是不错的,唯一缺点就是不能网络同步,不过这个不是大问题!以下是官网的接受。
myBase 是一款用于分类存储管理任意格式资料的小型个人数据库软件,有助于个人用户在( Linux/MacOSX/Windows )桌面电脑系统上实施文档、知识、笔记、日记、图片和网页的分类存储和管理。借助软件提供的各项功能,创建和维护一个专属于自己的个人知识库将变的相对简单快捷。              传统意义上的数据库软件不同,myBase 提供了更好的方式使知识/资料/信息的捕获、编辑、组织、查看、索引、搜索和分享变得更快捷、更容易,且无需任何 SQL 数据库编程技能;
myBase 通过内置的富文本编辑器接受图文信息的输入,并按树形大纲分门别类保存,同时接受任意磁盘文件作为树形大纲条目的附件,可以方便建立条目关联、加贴内容标签、关联日历日期和添加超链接引用等,可以很方便的构建出多层次、多维度、带交叉引用、支持快速查询、层次分明、一目了然的个人知识库。
目前专业版与标准版的区别在于,专业版内含AES高级加密标准算法,其他方面功能基本相同;如果您需要创建含有个人隐私或商业机密等保密信息的数据库,建议下载专业版,以加强数据保密性,其他情况下,则只需下载标准版即可。                
专业版下载地址:http://www.wjjsoft.com/downloads/myBase-Desktop-Ver700b26-Pro-MacOSX.dmg
 
界面就是这样子,还是能很快上手的!
老办法,先注册看看,有什么提示!
 
接下来,hopper载入二进制文件!找找看有没有类似的字符串!
 
继续来到3的位置,看看有什么!
 
很明显的跳转,提示注册信息的错误!往上看看是什么!
 
有注册成功的信息,往上也是跳转,看样子进行比较的关键还在上面。继续往上看看!其实我们可以直接在hopeer中,看看流程图更加方便!
 
流程图非常方便,整个验证流程非常清晰,注册码合法,就提示注册成功1,否则提示注册码不合法2,而进行判断的位置就是3,进行了al的比较,也就是al如果为1的话,就注册成功了,4的位置,很明显,程序进行重启的时候也会进行检查eax是否为1,否则就是未注册版本,那么我们
直接jmp到成功的流程?或者把比较的为0时跳转?这样确实也可以显示成功,软件调用eax是否为1,肯定不指这一处,功能上还有限制,比如显示注册信息还是试用版,试用日期还是30天等等,得想办法使eax开始就为1,继续往上看看关键call。
00000001001c5a52         mov        rax, qword [rbp+var_48]
00000001001c5a56         mov        qword [rbp+var_78], rax
00000001001c5a5a         lock inc   dword [rax]
00000001001c5a5d         setne      byte [rbp+var_19]
00000001001c5a61         mov        rax, qword [rbp+var_40]
00000001001c5a65         mov        qword [rbp+var_80], rax
00000001001c5a69         lock inc   dword [rax]
00000001001c5a6c         setne      byte [rbp+var_19]
00000001001c5a70         lea        rdi, qword [0x1004d52c8]                    ; argument #1 for method sub_100170cc0
00000001001c5a77         lea        rsi, qword [rbp+var_78]                     ; argument #2 for method sub_100170cc0
00000001001c5a7b         lea        rdx, qword [rbp+var_80]                     ; argument #3 for method sub_100170cc0
00000001001c5a7f         call       sub_100170cc0
00000001001c5a84         test       al, al
00000001001c5a86         je         loc_1001c5bfd
关键call 100170cc0,这里面是什么
                     sub_100170cc0:
0000000100170cc0         push       rbp                                         ; CODE XREF=sub_1001c5a20+95
0000000100170cc1         mov        rbp, rsp
0000000100170cc4         push       r15
0000000100170cc6         push       r14
0000000100170cc8         push       r12
0000000100170cca         push       rbx
0000000100170ccb         sub        rsp, 0x30
0000000100170ccf         mov        r12, rdx
0000000100170cd2         mov        rbx, rsi
0000000100170cd5         mov        r15, rdi
0000000100170cd8         call       sub_100170940
0000000100170cdd         test       al, al
0000000100170cdf         je         loc_100170ded
此处又进行了一次比较,并跳到这里:
0000000100170ded         xor        eax, eax                                    ; CODE XREF=sub_100170cc0+31

                     loc_100170def:
0000000100170def         add        rsp, 0x30                                   ; CODE XREF=sub_100170cc0+299
0000000100170df3         pop        rbx
0000000100170df4         pop        r12
0000000100170df6         pop        r14
0000000100170df8         pop        r15
0000000100170dfa         pop        rbp
0000000100170dfb         ret
可以看到,对eax进行了异或,使eax为0,并跳出这个函数,因此这个地方nop掉应该也是行的,说明还是不是关键call,我们看看流程是怎样的
 
那我们进行跟进1处test上面的call       sub_100170940,看看这个是什么!
进入后发现一大堆的跳转,估计是对注册码的计算,我们有流程图看看,是怎样的
 
跳一大堆,最后还是负值给了al
0000000100170a13         mov        al, bl                                      ; CODE XREF=sub_100170940+234, sub_100170940+245
0000000100170a15         add        rsp, 0x40
0000000100170a19         pop        rbx
0000000100170a1a         pop        r14
0000000100170a1c         pop        rbp
0000000100170a1d         ret
因此,改为 mov al,1看看,选择这行,点菜单的modify-assemble..编辑好后导出看看!
 
时间调整到试用期后也没问题!


回复列表



回复操作

正在加载验证码......

请先拖动验证码到相应位置

发布时间:2016-12-14 10:42:32

修改时间:2016-12-14 10:42:32

查看次数:79

评论次数:0

TA的文章总数

155