• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 15
    • 下载费用:30 金币  

    重庆时时彩连续双14期: 一种软件程序的?;し椒ê妥爸?pdf

    关 键 词:
    一种 软件 程序 ?;?方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201210572410.4

    申请日:

    2012.12.25

    公开号:

    CN103902857A

    公开日:

    2014.07.02

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 21/14申请日:20121225|||公开
    IPC分类号: G06F21/14(2013.01)I 主分类号: G06F21/14
    申请人: 深圳市腾讯计算机系统有限公司
    发明人: 钟同圣; 王岳
    地址: 518000 广东省深圳市南山区高新区高新南一路飞亚达大厦5-10楼
    优先权:
    专利代理机构: 北京三高永信知识产权代理有限责任公司 11138 代理人: 滕一斌
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201210572410.4

    授权公告号:

    ||||||

    法律状态公告日:

    2017.11.14|||2015.07.01|||2014.07.02

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种软件程序的?;し椒ê妥爸?,属于网络通信领域。方法包括:获取软件程序的资源文件和代码文件;解析所述代码文件中的类信息;所述类信息包括类名和类方法名;解析所述资源文件中与所述代码文件绑定的类信息,得到所述资源类集合;查询所述代码文件中解析的每个类信息,当查询的类信息不在所述资源类集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换所述类信息。本发明解决了IOS/MacOSX程序编译后的文件包含大量的类信息进而为破解者逆向破解程序提供了导向的问题,大大加大了破解难度,?;ち顺绦虻陌踩?。

    权利要求书

    权利要求书
    1.  一种软件程序的?;し椒?,其特征在于,所述方法包括:
    获取软件程序的资源文件和代码文件;
    解析所述代码文件中的类信息;所述类信息包括类名和类方法名;
    解析所述资源文件中与所述代码文件绑定的类信息,得到所述资源类集合;
    查询所述代码文件中解析的每个类信息,当查询的类信息不在所述资源类集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换所述类信息。

    2.  根据权利要求1所述的方法,其特征在于,所述当所述类信息为类名时,所述方法包括:
    解析所述资源文件中与Objective C指针或其他扩展类指针绑定的资源类名,得到资源类名集合;
    解析所述代码文件中包含字符串的节,得到字符串类名集合;
    查询所述代码文件中解析的每个类名,当查询的类名不在所述资源类名集合中和所述字符串类名集合中、且所述类名不在用户预设的类名白名单中以及所述类名不是代理类名时,随机生成类名字符替换所述类名。

    3.  根据权利要求2所述的方法,其特征在于,所述随机生成类名字符替换所述类名之后,还包括:
    保存所述类名字符以及对应的被替换的类名;
    查询所述软件程序的代码文件中的每个类的成员变量和属性;
    当所述成员变量或所述属性的类型对应的类名为所述被替换的类名时,将所述成员变量或所述属性的类型对应的类名修改为所述类名字符。

    4.  根据权利要求1所述的方法,其特征在于,所述当所述类信息为类方法名时,所述方法包括:
    解析所述资源文件中与Objective C指针或其他扩展类指针绑定的资源类方法名,得到所述资源类方法名集合;
    获取所述代码文件中的导入表,查找所述导入表所导入的类名和其他导入库,解析所述导入的类名和所述其他导入库对应的类方法名,得到导入类方法名集合;
    解析所述代码文件中的每个类,查找类符合的所有协议Protocol,得到所有Protocol要求实现的类方法名集合,得到协议类方法名集合;
    解析所述代码文件中的每个类的成员变量,得到成员变量名集合;
    查询所述代码文件中的每个类的类方法名,当解析的类方法名不在所述资源类方法名集合中、所述导入类方法名集合中、所述协议类方法名集合中、所述成员变量名集合中和用户预设的类方法名白名单中时,随机生成类方法名字符替换所述类方法名。

    5.  一种软件程序的?;ぷ爸?,其特征在于,所述装置包括:
    获取???,用于获取软件程序的资源文件和代码文件;所述软件程序为基于苹果公司开发的系统平台的面向对象的Objective C程序;
    第一解析???,用于解析所述代码文件中的类信息;所述类信息包括类名和类方法名;
    第二解析???,用于解析所述资源文件中与所述代码文件绑定的类信息,得到所述资源类集合;
    替换???,用于查询所述代码文件中解析的每个类信息,当查询的类信息不在所述资源类集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换所述类信息。

    6.  根据权利要求5所述的装置,其特征在于,当所述第一解析??榻馕龅乃隼嘈畔⑽嗝?,
    所述第一解析???,包括:第一解析单元,用于当所述第一解析??榻馕龅乃隼嘈畔⑽嗝?,解析所述代码文件中包含字符串的节,得到字符串类名集合;
    相应地,所述第二解析???,包括:第二解析单元,用于当解析的所述类信息为类名时,解析所述资源文件中与Objective C指针或其他扩展类指针绑定的资源类名,得到资源类名集合;
    相应地,所述替换???,包括:类名替换单元,用于当所述第一解析??榻馕龅乃隼嘈畔⑽嗝?,查询所述代码文件中解析的每个类名,当查询的类名不在所述资源类名集合中和所述字符串类名集合中、且所述类名不在用户预设的类名白名单中以及所述类名不是代理类名时,随机生成类名字符替换所述类名。

    7.  根据权利要求6所述的装置,其特征在于,所述替换???,还包括:
    变量替换单元,用于随机生成类名字符替换所述类名之后,保存所述无意义的类名字符以及对应的被替换的类名;查询所述代码文件中的每个类的成员变量和属性;当所述成员变量或所述属性的类型对应的类名为所述被替换的类名时,将所述成员变量或所述属性的类型对应的类名修改为所述类名字符。

    8.  根据权利要求5所述的装置,其特征在于,所述当所述类信息为类方法名时,
    所述第一解析???,包括:第三解析单元,用于获取所述代码文件中的导入表,查找所述导入表所导入的类名和其他导入库,解析所述导入的类名和所述其他导入库对应的类方法名,得到导入类方法名集合;
    第四解析单元,用于解析所述代码文件中的每个类,查找类符合的所有协议Protocol,得到所有Protocol要求实现的类方法名集合,得到协议类方法名集合;
    第五解析单元,用于解析所述代码文件中的每个类的成员变量,得到成员变量名集合;
    相应地,所述第二解析???,包括:第六解析单元,用于解析所述资源文件中与Objective C指针或其他扩展类指针绑定的资源类方法名,得到所述资源类方法名集合;
    相应地,所述替换???,包括:类方法名替换单元,用于查询所述代码文件中的每个类的类方法名,当解析的类方法名不在所述资源类方法名集合中、所述导入类方法名集合中、所述协议类方法名集合中、所述成员变量名集合中和用户预设的类方法名白名单中时,随机生成类方法名字符替换所述类方法名。

    说明书

    说明书一种软件程序的?;し椒ê妥爸?
    技术领域
    本发明涉及网络通信领域,特别涉及一种软件程序的?;し椒ê妥爸?。
    背景技术
    随着苹果公司推出的各种终端设备的不断增长,基于iOS(iphone Operating System,苹果公司开发的移动设备操作系统)平台和MacOSX(苹果公司开发的个人电脑的操作系统)平台开发的软件程序也越来越多。
    由于IOS/MacOSX程序所使用的Objective-C面向对象的特点,使得IOS/MacOSX程序编译后的最终二进制文件包含大量的类信息,而这些类信息中的类名和类方法名为破解者逆向破解程序提供了很大的帮助,对于?;こ绦虻氖迪衷矸浅2焕?。
    参见图1,IOS上的QQ2012,通过反汇编器IDA(Interactive Disassembler,反汇编器)解析能看到原始的类名和方法名,如图1中“App Setting”指示该类为应用软件选项设置相关的类,这就指示破解者这是一个“App选项设置”相关的类;图1中的“setSharelLocation”指示该类方法名是“设置分享位置”、“save App Setting”指示该类方法名是“保存设置项”,这就为破解者指示了每段程序代码的用途,为破解者提供了方向,对于?;こ绦虬踩浅2焕?。
    发明内容
    为了解决现有技术的问题,本发明实施例提供了一种功能软件程序的?;し椒ê妥爸?。所述技术方案如下:
    一方面,提供了一种软件程序的?;し椒?,所述方法包括:
    获取软件程序的资源文件和代码文件;
    解析所述代码文件中的类信息;所述类信息包括类名和类方法名;
    解析所述资源文件中与所述代码文件绑定的类信息,得到所述资源类集合;
    查询所述代码文件中解析的每个类信息,当查询的类信息不在所述资源类 集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换所述类信息。
    具体地,所述当所述类信息为类名时,所述方法包括:
    解析所述资源文件中与Objective C指针或其他扩展类指针绑定的资源类名,得到资源类名集合;
    解析所述代码文件中包含字符串的节,得到字符串类名集合;
    查询所述代码文件中解析的每个类名,当查询的类名不在所述资源类名集合中和所述字符串类名集合中、且所述类名不在用户预设的类名白名单中以及所述类名不是代理类名时,随机生成类名字符替换所述类名。
    进一步地,所述随机生成类名字符替换所述类名之后,还包括:
    保存所述无意义的类名字符以及对应的被替换的类名;
    查询所述软件程序的代码文件中的每个类的成员变量和属性;
    当所述成员变量或所述属性的类型对应的类名为所述被替换的类名时,将所述成员变量或所述属性的类型对应的类名修改为所述类名字符。
    具体地,所述当所述类信息为类方法名时,所述方法包括:
    解析所述资源文件中与Objective C指针或其他扩展类指针绑定的资源类方法名,得到所述资源类方法名集合;
    获取所述代码文件中的导入表,查找所述导入表所导入的类名和其他导入库,解析所述导入的类名和所述其他导入库对应的类方法名,得到导入类方法名集合;
    解析所述代码文件中的每个类,查找类符合的所有协议Protocol,得到所有Protocol要求实现的类方法名集合,得到协议类方法名集合;
    解析所述代码文件中的每个类的成员变量,得到成员变量名集合;
    查询所述代码文件中的每个类的类方法名,当解析的类方法名不在所述资源类方法名集合中、所述导入类方法名集合中、所述协议类方法名集合中、所述成员变量名集合中和用户预设的类方法名白名单中时,随机生成类方法名字符替换所述类方法名。
    另一方面,提供了一种软件程序的?;ぷ爸?,所述装置包括:
    获取???,用于获取软件程序的资源文件和代码文件;
    第一解析???,用于解析所述代码文件中的类信息;所述类信息包括类名 和类方法名;
    第二解析???,用于解析所述资源文件中与所述代码文件绑定的类信息,得到所述资源类集合;
    替换???,用于查询所述代码文件中解析的每个类信息,当查询的类信息不在所述资源类集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换所述类信息。
    具体地,当所述第一解析??榻馕龅乃隼嘈畔⑽嗝?,
    所述第一解析???,包括:第一解析单元,用于当所述第一解析??榻馕龅乃隼嘈畔⑽嗝?,解析所述代码文件中包含字符串的节,得到字符串类名集合;
    相应地,所述第二解析???,包括:第二解析单元,用于当解析的所述类信息为类名时,解析所述资源文件中与Objective C指针或其他扩展类指针绑定的资源类名,得到资源类名集合;
    相应地,所述替换???,包括:类名替换单元,用于当所述第一解析??榻馕龅乃隼嘈畔⑽嗝?,查询所述代码文件中解析的每个类名,当查询的类名不在所述资源类名集合中和所述字符串类名集合中、且所述类名不在用户预设的类名白名单中以及所述类名不是代理类名时,随机生成类名字符替换所述类名。
    进一步地,所述替换???,还包括:
    变量替换单元,用于随机生成类名字符替换所述类名之后,保存所述无意义的类名字符以及对应的被替换的类名;查询所述代码文件中的每个类的成员变量和属性;当所述成员变量或所述属性的类型对应的类名为所述被替换的类名时,将所述成员变量或所述属性的类型对应的类名修改为所述类名字符。
    具体地,所述当所述类信息为类方法名时,
    所述第一解析???,包括:第三解析单元,用于获取所述代码文件中的导入表,查找所述导入表所导入的类名和其他导入库,解析所述导入的类名和所述其他导入库对应的类方法名,得到导入类方法名集合;
    第四解析单元,用于解析所述代码文件中的每个类,查找类符合的所有协议Protocol,得到所有Protocol要求实现的类方法名集合,得到协议类方法名集合;
    第五解析单元,用于解析所述代码文件中的每个类的成员变量,得到成员变量名集合;
    相应地,所述第二解析???,包括:第六解析单元,用于解析所述资源文件中与Objective C指针或其他扩展类指针绑定的资源类方法名,得到所述资源类方法名集合;
    相应地,所述替换???,包括:类方法名替换单元,用于查询所述代码文件中的每个类的类方法名,当解析的类方法名不在所述资源类方法名集合中、所述导入类方法名集合中、所述协议类方法名集合中、所述成员变量名集合中和用户预设的类方法名白名单中时,随机生成类方法名字符替换所述类方法名。
    本发明实施例提供的技术方案带来的有益效果是:
    通过获取软件程序的资源文件和代码文件,并解析代码文件中的类信息以及资源文件中与代码文件绑定的类信息得到资源类集合,查询代码文件中解析的每个类信息,当查询的类信息不在资源类集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换类信息,解决了IOS/MacOSX程序编译后的文件包含大量的类信息进而为破解者逆向破解程序提供了导向的问题,大大加大了破解难度,?;ち顺绦虻陌踩?。
    附图说明
    为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
    图1是现有技术提供的软件程序反汇编解析后的示意图;
    图2是本发明实施例一提供的软件程序的?;し椒鞒掏?;
    图3是本发明实施例二提供的软件程序的?;し椒鞒掏?;
    图4是本发明实施例二提供的软件程序经过替换?;ず蟮氖疽馔?;
    图5是本发明实施例三提供的软件程序的?;ぷ爸媒峁故疽馔?。
    具体实施方式
    为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 实施方式作进一步地详细描述。
    实施例一
    参见图2,本发明实施例提供了一种软件程序的?;し椒?,该方法包括:
    101、获取软件程序的资源文件和代码文件;其中,该软件程序为基于苹果公司开发的系统平台的面向对象的Objective C程序;
    102、解析代码文件中的类信息;类信息包括类名和类方法名;
    103、解析资源文件中与代码文件绑定的类信息,得到资源类集合;
    104、查询代码文件中解析的每个类信息,当查询的类信息不在资源类集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换类信息。
    具体地,当类信息为类名时,该方法包括:
    解析资源文件中与Objective C指针或其他扩展类指针绑定的资源类名,得到资源类名集合;
    解析代码文件中包含字符串的节,得到字符串类名集合;
    查询代码文件中解析的每个类名,当查询的类名不在资源类名集合中和字符串类名集合中、且类名不在用户预设的类名白名单中以及类名不是代理类名时,随机生成类名字符替换类名。
    进一步地,随机生成类名字符替换类名之后,还包括:
    保存无意义的类名字符以及对应的被替换的类名;
    查询软件程序的代码文件中的每个类的成员变量和属性;
    当成员变量或属性的类型对应的类名为被替换的类名时,将成员变量或属性的类型对应的类名修改为类名字符。
    具体地,当类信息为类方法名时,该方法包括:
    解析资源文件中与Objective C指针或其他扩展类指针绑定的资源类方法名,得到资源类方法名集合;
    获取代码文件中的导入表,查找导入表所导入的类名和其他导入库,解析导入的类名和其他导入库对应的类方法名,得到导入类方法名集合;
    解析代码文件中的每个类,查找类符合的所有协议Protocol,得到所有Protocol要求实现的类方法名集合,得到协议类方法名集合;
    解析代码文件中的每个类的成员变量,得到成员变量名集合;
    查询代码文件中的每个类的类方法名,当解析的类方法名不在资源类方法名集合中、导入类方法名集合中、协议类方法名集合中、成员变量名集合中和用户预设的类方法名白名单中时,随机生成类方法名字符替换类方法名。
    本发明实施例提供的方法,通过获取软件程序的资源文件和代码文件,并解析代码文件中的类信息以及资源文件中与代码文件绑定的类信息得到资源类集合,查询代码文件中解析的每个类信息,当查询的类信息不在资源类集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换类信息,解决了IOS/MacOSX程序编译后的文件包含大量的类信息进而为破解者逆向破解程序提供了导向的问题,大大加大了破解难度,?;ち顺绦虻陌踩?。
    实施例二
    参见图3,本发明实施例提供了一种软件程序的?;し椒?,该方法包括:
    201、获取软件程序的资源文件中的资源类名集合;
    具体地,该软件程序为为基于苹果公司开发的系统平台如苹果公司开发的移动设备操作系统IOS或苹果公司开发的个人电脑的操作系统MacOSX的面向对象的Objective C程序;
    其中,每个iOS/MacOSX程序由代码和资源组成,其中代码包含在Mach-O格式的二进制文件中;Mach-O格式由段和节组成,有部分节Objective-C运行时相关,如_DATA,_objc_classlist节包含所有Objective-C类的指针,_DATA,_objc_catlist节包含所有扩展其它类的类别的指针,通过解析这些节,能得到所有类信息,包括类名、类方法名、类成员变量名等。
    具体地,首先读取软件程序的资源文件,即读入iOS/MacOSX程序对应的Nib文件;然后解析资源文件中与Objective C指针或其他扩展类指针绑定的资源类名,得到资源类名集合。
    202、获取软件程序的代码文件中的字符串类名集合;
    具体地,首先获取软件程序的代码文件,即读入iOS/MacOSX程序对应的Mach-O格式的代码文件;然后解析代码文件中包含字符串的节,得到字符串类名集合;即解析代码文件得到_cfstring节包含的字符串类名集合。
    需要说明的是,步骤201和步骤202的先后顺序可以更改,即也可以先执行步骤202,再执行步骤201。
    203、查询软件程序的代码文件中的所有类名,当查询的类名不在资源类名集合中和字符串类名集合中、且该类名不在用户预设的类名白名单中以及类名不是代理类名时,随机生成类名字符替换类名。
    具体地,遍历代码文件的所有类(在_objc_classlist节中),查询到类对应的类名部分;如果类名满足以下条件,则跳过;否则随机生成一个无意义的类名字符替换原来的类名:
    a、类名在资源类名集合中
    b、类名在字符串类名集合中
    c、类名是代理类名,即以AppDelegate结尾的类名
    d、类名在用户预设的类名白名单中
    其中,随机生成类名字符替换类名之后,还需要保存无意义的类名字符以及对应的被替换的类名。
    204、查询软件程序的代码文件中的每个类的成员变量和属性,当成员变量或属性的类型对应的类名为被替换的类名时,将成员变量或属性的类型对应的类名修改为类名字符。
    具体地,遍历查询代码文件的所有类,解析每个类的成员变量(ivars)和属性(properties),如果变量或属性的类名包含步骤203中被修改的类名,则根据步骤203中保存的无意义的类名字符以及对应的被替换的类名,将变量或属性对应的类名中包含的类名也相应的修改。
    需要说明的是,通过步骤201-204已完成对类信息中的类名的修改,参见图4,“App Setting”指示的应用软件选项设置的类,替换为随机生成类名字符“are6”。下面再继续对类信息中的类方法名修改,以保证程序的安全;当然也可以在修改类名的同时修改类方法名,即修改类名和类方法名同时进行,本发明实施例对于修改类名和类方法名的步骤不做限制。
    205、获取软件程序的资源文件中的资源类方法名集合;软件程序为基于苹果公司开发的系统平台的面向对象的Objective C程序;
    具体地,解析步骤201中获取的资源文件中与Objective C指针或其他扩展类指针绑定的资源类方法名,得到资源类方法名集合;即读入iOS/MacOSX程序对应的Nib文件,解析得到绑定的方法名集合。
    206、获取软件程序的代码文件中的导入类方法名集合;
    具体地,解析步骤202中获取的代码文件中的导入表,查找导入表中导入的类名和其他导入库,解析导入的类名和其他导入库对应的类方法名,得到导入类方法名集合。
    207、获取软件程序的代码文件中的协议类方法名集合;
    具体地,获取代码文件中的所有的类,查找类符合的所有协议Protocol,得到所有Protocol要求实现的类方法名集合,得到协议类方法名集合;即遍历A文件的所有类(在_objc_classlist节中),解析得到所有Protocol结构,再解析得到所有Protocol要求实现的协议类方法名集合。
    上述步骤205-207本发明实施例不限制执行先后顺序,可以根据情况调整先后顺序。
    208、查询代码文件中的每个类的成员变量,得到成员变量名集合;
    具体地,由于步骤205-207得到的资源类方法名集合、导入类方法名集合、协议类方法名集合针对整个程序文件是不变的,而针对每个类的成员变量方法名是不同的,所以每查询一个类的成员变量,得到一个对应类的成员变量名集合。
    209、解析代码文件中的每个类的类方法名,当解析的类方法名不在资源类方法名集合中、导入类方法名集合中、协议类方法名集合中、成员变量名集合中和用户预设的类方法名白名单中时,随机生成类方法名字符替换类方法名。
    具体地,查询解析每个类的类方法名,如果类方法名满足以下条件,则跳过;否则随机生成一个无意义的类方法名字符替换原来的类方法名:
    a’、类方法名在资源类方法名集合中
    b’、类方法名在导入类方法名集合中
    c’、类方法名在协议类方法名集合中
    d’、类方法名在成员变量名集合中
    e’、类方法名在用户预设的类方法名白名单中
    经过上述步骤205-209,即实现了对类信息中的类方法名的修改,保证了程序的进一步安全。参见图4,如图4中的“setSharelLocation”指示“保存设置项”类方法名替换为随机生成无意义的类方法名字符“qt1”,这就混淆了每段程序代码的用途,?;ち顺绦虻陌踩?。
    本发明实施例提供的方法,通过获取软件程序的资源文件和代码文件,并 解析代码文件中的类信息以及资源文件中与代码文件绑定的类信息得到资源类集合,查询代码文件中解析的每个类信息,当查询的类信息不在资源类集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换类信息,解决了IOS/MacOSX程序编译后的文件包含大量的类信息进而为破解者逆向破解程序提供了导向的问题,大大加大了破解难度,?;ち顺绦虻陌踩?。
    实施例三
    参见图5,本发明实施例提供了一种软件程序的?;ぷ爸?,该装置包括:
    获取???01,用于获取软件程序的资源文件和代码文件;其中,该软件程序为基于苹果公司开发的系统平台的面向对象的Objective C程序;
    第一解析???02,用于解析代码文件中的类信息;类信息包括类名和类方法名;
    第二解析???03,用于解析资源文件中与代码文件绑定的类信息,得到资源类集合;
    替换???04,用于查询代码文件中解析的每个类信息,当查询的类信息不在资源类集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换类信息。
    具体地,当第一解析???02解析的类信息为类名时,
    第一解析???02,包括:第一解析单元,用于当第一解析??榻馕龅睦嘈畔⑽嗝?,解析代码文件中包含字符串的节,得到字符串类名集合;
    相应地,第二解析???03,包括:第二解析单元,用于当解析的类信息为类名时,解析资源文件中与Objective C指针或其他扩展类指针绑定的资源类名,得到资源类名集合;
    相应地,替换???04,包括:类名替换单元,用于当第一解析??榻馕龅睦嘈畔⑽嗝?,查询代码文件中解析的每个类名,当查询的类名不在资源类名集合中和字符串类名集合中、且类名不在用户预设的类名白名单中以及类名不是代理类名时,随机生成类名字符替换类名。
    进一步地,替换???04,还包括:
    变量替换单元,用于随机生成类名字符替换类名之后,保存无意义的类名字符以及对应的被替换的类名;查询代码文件中的每个类的成员变量和属性; 当成员变量或属性的类型对应的类名为被替换的类名时,将成员变量或属性的类型对应的类名修改为类名字符。
    具体地,当类信息为类方法名时,
    第一解析???02,包括:第三解析单元,用于获取代码文件中的导入表,查找导入表所导入的类名和其他导入库,解析导入的类名和其他导入库对应的类方法名,得到导入类方法名集合;
    第四解析单元,用于解析代码文件中的每个类,查找类符合的所有协议Protocol,得到所有Protocol要求实现的类方法名集合,得到协议类方法名集合;
    第五解析单元,用于解析代码文件中的每个类的成员变量,得到成员变量名集合;
    相应地,第二解析???03,包括:第六解析单元,用于解析资源文件中与Objective C指针或其他扩展类指针绑定的资源类方法名,得到资源类方法名集合;
    相应地,替换???04,包括:类方法名替换单元,用于查询代码文件中的每个类的类方法名,当解析的类方法名不在资源类方法名集合中、导入类方法名集合中、协议类方法名集合中、成员变量名集合中和用户预设的类方法名白名单中时,随机生成类方法名字符替换类方法名。
    本发明实施例提供的装置,通过获取软件程序的资源文件和代码文件,并解析代码文件中的类信息以及资源文件中与代码文件绑定的类信息得到资源类集合,查询代码文件中解析的每个类信息,当查询的类信息不在资源类集合中且不在用户预设的类信息白名单中时,随机生成类信息字符替换类信息,解决了IOS/MacOSX程序编译后的文件包含大量的类信息进而为破解者逆向破解程序提供了导向的问题,大大加大了破解难度,?;ち顺绦虻陌踩?。
    需要说明的是:上述实施例提供的软件程序的?;ぷ爸迷诒;と砑绦蚴?,仅以上述各功能??榈幕纸芯倮得?,实际应用中,可以根据需要而将上述功能分配由不同的功能??橥瓿?,即将装置的内部结构划分成不同的功能???,以完成以上描述的全部或者部分功能。另外,上述实施例提供的软件程序的?;ぷ爸糜肴砑绦虻谋;し椒ㄊ凳├粲谕还顾?,其具体实现过程详见方法实施例,这里不再赘述。
    上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
    本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
    以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的?;し段е?。

    关于本文
    本文标题:一种软件程序的?;し椒ê妥爸?pdf
    链接地址://www.4mum.com.cn/p-6134230.html

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 全民欢乐捕鱼破解版 捕鱼王子游戏机 河北20选5开奖结果查询结果 福彩免费计划下载 516游戏金蟾捕鱼攻略 天津时时彩计划 七星彩走势图坐标 湖南快乐十分彩票机 河南十一选五开奖走势图百度乐彩网 湖北11选5彩票软件 湖北快三走势图分布图 广西11选5走 7星彩票开奖结果 上下分模式的麻将代理 11选5任何选号 后肖有哪些