应用程序软件生成方法、系统、设备及存储介质与流程
未命名
09-07
阅读:97
评论:0
1.本技术属于软件传输技术领域,具体涉及程序软件开发处理技术,尤其涉及一种应用程序软件生成方法、系统、设备及存储介质。
背景技术:
2.随着计算机网络应用技术领域的发展,不同的场合、渠道及用户对应用程序大多需要符合自己需求功能的定制化程序、开发软件。例如,在面向工业软件经营管理领域企业资源管理计划(erp)、供应链管理(scm)应用软件开发及发布方向,应用软件的特点是产品软件提供者提供核心的基础的软件包和二次开发工具,更多的二次开发或者定制化开发是由生态领域的合作伙伴根据定制化需求进一步定制完成的。
3.目前,在这个应用程序软件开发到发布给用户的过程,往往在将软件包和开发工具交付后便服务结束了,很少涉及到软件包发布和部署后的环节,缺少二次开发、问题反馈等环节,不能形成完整的软件开发生态体系。另外,软件开发市场上要么源代码明文发布的泄密问题,要么混淆密文发布后单向服务、不可反馈服务等问题,大大降低了应用程序的开发效率以及开发质量。
技术实现要素:
4.本发明提出的应用程序软件生成系统、方法、设备及存储介质,在软件开发中对核心源代码进行加密,然后引用加密的核心源代码进行应用程序源代码的编写,既可以保证核心源代码的保密,也可以保证用户程序、软件的正常开发。
5.根据本技术实施例的第一个方面,提供了一种应用程序软件生成系统,包括:通过加解密工具加密应用程序的核心源代码,得到加密核心源代码;加解密工具用于根据加解密规则将明文的代码加密为密文的源代码,以及用于将密文的源代码解密为明文的源代码;引用加密核心源代码编写应用程序的应用源代码;编译应用源代码、调试应用程序之后,生成应用程序软件包并发布。
6.在本技术一些实施方式中,通过加解密工具加密应用程序的核心源代码,得到加密核心源代码,包括:遍历待加密的核心源代码,获取加解密标志参数,确定进行代码加密;结合加解密矩阵对待加密的核心源代码内容进行加密处理,得到加密核心源代码。
7.在本技术一些实施方式中,调试应用程序,包括:通过加解密工具解密应用程序中引用的加密核心源代码,得到可以编辑修改的核心源代码;调试模式下编译应用程序,得到应用程序的应用目标文件;通过加解密工具解密应用程序的应用目标文件,得到应用目标文件的中间文件;基于格式转换工具对应用目标文件的中间文件进行格式转换,得到指定格式的应用源代码;在调试模式下编译指定格式的应用源代码,并启动应用程序进行调试。
8.在本技术一些实施方式中,生成应用程序软件包并发布之后,还包括:接收业务端反馈的业务程序;业务程序基于应用程序的软件包进行定制开发;根据业务程序,调试修改业务程序中的应用程序部分。
9.在本技术一些实施方式中,调试修改业务程序中的应用程序部分,包括:根据加解密工具解密应用程序部分中引用的加密核心源代码,编辑修改核心源代码;调试模式下编译应用程序部分,得到应用程序部分的应用目标文件;解密应用程序部分的应用目标文件,得到应用目标文件的中间文件;基于格式转换工具对应用目标文件的中间文件进行格式转换,得到指定格式的应用源代码;在调试模式下编译指定格式的应用源代码,并启动应用程序进行调试;重复以上步骤直至应用程序部分运行成功。
10.在本技术一些实施方式中,通过加解密工具解密应用程序中引用的加密核心源代码,得到核心源代码,包括:遍历待解密的加密核心源代码,获取加解密标志参数,确定进行代码解密;结合加解密矩阵对加密核心源代码内容进行解密处理,得到核心源代码。
11.在本技术一些实施方式中,基于格式转换工具对应用目标文件的中间文件进行格式转换,得到指定格式的应用源代码,包括:获取待转换的应用目标文件名,并作为输入文件名参数,以只读方式打开中间文件,获得读取文件句柄;输入应用程序源文件名,将该文件名做为初始搜索字符串;以输入应用程序文件名增加特定后缀作为输出文件名,以写方式打开输出文件句柄,创建写入缓冲区;根据读取文件句柄,读取文件缓冲区中的内容;对读取内容进行分析,出现异常信息时退出转换程序;对合法的读取内容按行读取,依据模式匹配将需要转换的信息进写入缓冲区并转换;读取缓冲区结束,关闭读取文件句柄和输出文件句柄,同时将写入缓冲区的内容写入存储文件,从而得到指定格式的应用源代码。
12.在本技术一些实施方式中,应用程序软件生成方法还包括:修改应用源代码;修改应用源代码包括:根据加解密工具解密应用源代码引用的加密核心源代码,编辑修改核心源代码;直接修改应用源代码中除加密核心源代码之外的源代码。
13.根据本技术实施例的第二个方面,提供了一种业务程序定制方法,包括:获取开发者执行应用程序软件生成方法生成的应用程序软件包;根据应用程序软件包以及业务功能需求,生成业务程序。
14.在本技术一些实施方式中,业务程序定制方法还包括:向开发者反馈出现程序问题;发送业务程序,或发送业务程序引用的应用程序部分。
15.根据本技术实施例的第三个方面,提供了一种应用程序软件生成系统,包括:加密核心代码模块:用于根据加解密工具加密应用程序的核心源代码,得到加密核心源代码;加解密工具用于根据加解密规则将明文的代码加密为密文的源代码,以及用于将密文的源代码解密为明文的源代码;应用程序代码模块:用于引用加密核心源代码编写应用程序的应用源代码;调试模块:用于编译应用源代码、调试应用程序;软件包模块:用于生成应用程序软件包并发布。
16.根据本技术实施例的第四个方面,提供了一种应用程序软件生成设备,包括:存储器,用于存储可执行指令;以及处理器,用于与存储器连接以执行可执行指令从而完成应用程序软件生成方法。
17.根据本技术实施例的第五个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现应用程序软件生成方法。
18.采用应用程序软件生成方法、系统、设备及存储介质,通过根据加解密工具加密应用程序的核心源代码,得到加密核心源代码;引用加密核心源代码编写应用程序的应用源
代码;编译应用源代码、调试应用程序之后,生成应用程序软件包并发布。可以在软件开发中对核心源代码进行加密,然后引用加密的核心源代码进行应用程序源代码的编写,既可以保证核心源代码的保密,也可以保证用户程序、软件的正常开发。解决了软件开发市场上要么源代码明文发布的泄密问题,要么混淆密文发布后单向服务、不可反馈服务等问题。
19.另外,还可以根据用户反馈调试修改应用程序,增加了二次开发、问题反馈等环节,形成完整的软件开发生态体系,大大提高了应用程序开发的安全性、开发效率以及开发质量。
附图说明
20.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1中示出了根据本技术实施例的应用程序软件生成方法的步骤示意图;图2中示出了根据本技术实施例的调试应用程序的步骤示意图;图3中示出了根据本技术实施例的加解密工具的加解密原理示意图;图4中示出了根据本技术另一实施例的应用程序软件生成方法的步骤示意图;图5中示出了根据本技术实施例的调试修改业务程序中的应用程序部分的步骤示意图;图6中示出了根据本技术实施例的格式转换规则的原理示意图;图7中示出了根据本技术实施例的应用程序软件生成方法的整体原理图;图8中示出了根据本技术实施例的运用加解密工具进行加密/解密的原理示意图;图9中示出了根据本技术实施例的业务程序定制方法的步骤示意图;图10中示出了根据本技术实施例的应用程序软件生成系统的结构示意图;图11中示出了根据本技术实施例的应用程序软件生成设备的结构示意图。
具体实施方式
21.关于本技术,现有的应用程序、源代码加解密方法,或者代码密文混淆技术大多用于开发阶段,即加解密过程基本在开发阶段进行,然后在编译器编译完源代码工程构建,这类加密和解密工作大多处于研发内部处理的过程。其它的有的甚至需要专门的加解密系统、编译系统、用户授权系统,从而使整个处理流程繁琐。且现在的程序开发很少涉及到软件包发布和部署后的环节,缺少对发布后的软件进行维护、修改调试、二次开发等反馈环节,不能形成完整的软件开发生态体系。
22.现有的软件开发阶段,软件包要么以明文发布,要么以密文/混淆发布,发布后对于软件开发者来说基本就结束了。具体的,对于明文发布的场景:例如c语言sdk类型的软件包发布, 通用的做法是以明文体现, 后续的编译要依赖这个明文的头文件进行二次的开发和编译, 如果这个头文件是密文的话,编译系统无法进行编译, 普通的编译是做不到的,需要有专用的编译器才可以。
23.又例如密文/混淆处理发布场景:如经过混淆处理的前端web页面开发的javascript包/经过编译器编译的java packages/class文件, 软件提供商与实施合作伙伴之间的协作是单向的。
24.相比之下,独立软件开发商isv(independent software vendors )通过本技术应用程序软件生成方法、系统、设备及存储介质,侧重于公共、核心基础功能开发,然后提供给用户,用户例如实施合作伙伴基于本技术提供的程序基础上,侧重所属行业领域的开发。同时用户在进行业务层面功能定制开发时,可以将出现问题的原代码的编译结果文件反馈给独立软件开发商进行修改调试,以获得更专业的开发服务支持, 这种开发模式涉及到软件生态建设领域,这种协作模式是紧密的双向的,与目前常见的软件开发模式有很大的不同。
25.基于此,本技术实施例在软件开发中对核心源代码进行加密,然后引用加密的核心源代码进行应用程序源代码的编写,既可以保证核心源代码的保密,也可以保证用户程序、软件的正常开发。
26.本技术在加密、解密核心功能源代码以外,还提供了格式转换工具,与加解密工具一同使用,在调试修改时通过格式转换工具还原应用程序源文件,便于开发者调试公共/核心源程序。
27.其他角度的,本技术也具有内嵌式、低成本、高安全、易推广的优点,既能满足客户及实施合作伙伴进行程序定制化开发的需要、后期开发维护的需要,又能满足核心产品开发人员对于核心源代码的维护需要。
28.关于格式转换工具:格式转换属于程序调试中的辅助工具, 与加解密工具一同使用,通过格式转换工具还原应用程序源文件, 这样密文形式的文件以明文的方式呈现给开发者,便于开发者维护应用源程序和对公共/核心源代码的调试与维护。
29.其中,关于本技术应用程序软件生成系统、方法、设备及存储介质的有益效果中,内嵌式指本技术的加解密方法非常适宜于集成到平台型产品中。低成本指本技术无需增加额外的服务器资源和软硬件环境。高安全指本技术对应用程序进行保护,可以提高系统访问安全性。易推广性指本技术一方面方法本身容易推广,另一方面加解密方法对访问系统的普通用户透明,以此方法构建的产品容易在生态合作伙伴间推广,生态合作伙伴可以专注于自身的业务领域的定制功能的开发,公共基础的、核心的、复杂的系统程序可以由独立软件开发提供者完成,保证了核心程序的保密性。
30.综上,本技术的应用程序软件生成方法、系统、设备及存储介质对发布的公共基础或者核心应用程序进行保护,提高系统访问安全性,既能满足客户及实施合作伙伴进行客制化开发的需要,又能满足核心产品开发人员对于核心源代码的维护需要。
31.面向工业软件经营管理领域软件如企业资源管理计划(erp)、供应链管理(scm)在这种情况下,有必要提供一套应用程序或者源代码加密、解密和文件转换工具这种应用场景。基础核心的代码由厂商完成,厂商仅提供加密后的基础核心代码和开发帮助文档,合作伙伴依据开发帮助文档理解需要调用的基础核心接口程序调用规则,完成定制部分的程序开发。业务程序开发和执行以及与基础核心程序运行仍有平台程序解析执行。
32.本应用程序软件生成方法、系统、设备及存储介质适用于大部分的3gl/4gl(第三代编程语言和第四代编程语言)。
33.具体的,采用本技术的应用程序软件生成方法、系统、设备及存储介质,通过根据加解密工具加密应用程序的核心源代码,得到加密核心源代码;引用加密核心源代码编写应用程序的应用源代码;编译应用源代码、调试应用程序之后,生成应用程序软件包并发布。可以在软件开发中对核心源代码进行加密,然后引用加密的核心源代码进行应用程序
源代码的编写,既可以保证核心源代码的保密,也可以保证用户程序、软件的正常开发。解决了软件开发市场上要么源代码明文发布的泄密问题,要么混淆密文发布后单向服务、不可反馈服务等问题。
34.另外,还可以根据用户反馈调试修改应用程序,增加了二次开发、问题反馈等环节,形成完整的软件开发生态体系,大大提高了应用程序开发的安全性的、开发效率以及开发质量。
35.为了使本技术实施例中的技术方案及优点更加清楚明白,以下结合附图对本技术的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本技术的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
36.实施例1图1中示出了根据本技术实施例的应用程序软件生成方法的步骤示意图。
37.如图1所示,本技术实施例的应用程序软件生成方法包括以下步骤:s1:通过加解密工具加密应用程序的核心源代码,得到加密核心源代码;加解密工具用于根据加解密规则将明文的代码加密为密文的源代码,以及用于将密文的源代码解密为明文的源代码;s2:引用加密核心源代码编写应用程序的应用源代码;s3:编译应用源代码、调试应用程序之后,生成应用程序软件包并发布。
38.基于此,可以在软件开发中对核心源代码进行加密,然后引用加密的核心源代码进行应用程序源代码的编写,既可以保证核心源代码的保密,也可以保证用户程序、软件的正常开发。解决了软件开发市场上要么源代码明文发布的泄密问题,要么混淆密文发布后单向服务、不可反馈服务等问题。
39.图2中示出了根据本技术实施例的调试应用程序的步骤示意图。
40.如图2所示,其它实施例中,s3中调试应用程序包括:s31:首先,根据加解密工具解密应用程序中引用的加密核心源代码,得到可以编辑修改的核心源代码;s32:然后,调试模式下编译应用程序,得到应用程序的应用目标文件;s33:接下来,通过加解密工具解密应用程序的应用目标文件,得到应用目标文件的中间文件;s34:基于格式转换工具对应用目标文件的中间文件进行格式转换,得到指定格式的应用源代码;s35:在调试模式下编译指定格式的应用源代码,并启动应用程序进行调试。
41.需要注意的是,在步骤s31和s33中都运用了加解密工具,加解密工具是同一个加解密工具,加密与解密是对称相似的过程,此时都是解密过程,只是解密的对象不同,步骤s31针对源代码进行解密;步骤s33是针对编译处理后的应用目标文件进行解密。
42.具体实施时,通过加解密工具加密应用程序的核心源代码,得到加密核心源代码,包括:首先,遍历待加密的核心源代码,获取加解密标志参数判断进行加密还是解密,当确定是进行代码加密时,结合加解密矩阵对待加密的核心源代码内容进行加密处理,得到加密核心源代码。
43.相似的,具体实施时,通过加解密工具解密应用程序中引用的加密核心源代码,得到核心源代码,包括:遍历待解密的加密核心源代码,获取加解密标志参数,判断进行加密还是解密,当确定进行代码解密时,结合加解密矩阵对加密核心源代码内容进行解密处理,得到核心源代码。
44.在调试修改过程中,在步骤s31和s33都需要用到加解密工具,步骤s31中是根据加解密工具解密应用程序中引用的加密核心源代码,得到可以核心源代码;步骤s33中通过加解密工具解密应用程序的应用目标文件,其过程类似,具体解密应用目标文件时,需要遍历应用目标文件内容,结合加解密矩阵对应用目标文件内容进行解密处理,得到中间文件。基于此,在程序开发或者用户例如合作伙伴反馈出现问题时,可以调试修改应用程序源代码,增加了二次开发、问题反馈等环节,形成完整的软件开发生态体系,大大提高了应用程序开发的安全性的、开发效率以及开发质量。
45.图3中示出了根据本技术实施例的加解密工具的加解密原理示意图。
46.如图3所示,进一步描述利用加解密工具进行代码加密或者解密的过程。
47.首先,输入待加/解密文件的文件名,基于弗莱彻校验和(fletcher's checksum)算法获取得到加/解密文件的校验和;然后将取得的校验和与文件校验因子进行异或运算,得到加/解密种子。这里的文件校验因子可以根据加解密需要预先设定。
48.接下来,先将待加/解密文件存储到文件缓冲区,遍历待加/解密文件内容获取加解密标志参数,例如根据文件缓冲区中的前四个字节判断包含加密标志参数还是解密标志参数,从而确定文件缓冲区中的内容是进行加密还是进行解密处理。
49.相应的加密处理或者解密处理时,通过对加/解密种子进行求模运算(%256),将运算结果值作为后面加/解密矩阵的序号。然后判断文件缓冲区是否结束,确定缓存结束时,根据序号获得加/解密矩阵中的数值,将当前缓冲区中的内容替换为该数值,同时序号进行减一,文件缓冲区指针加一。
50.具体加密处理时,依次对文件缓冲区中的前四个字节,进行按位与运算&= ~0x80;具体非加密(解密)处理时,依次对文件缓冲区中的前四个字节,进行按位或运算 |= 0x80;直至加解密处理结果,获取对应的解密文件,即核心源代码或者应用目标文件的中间文件。
51.图4中示出了根据本技术另一实施例的应用程序软件生成方法的步骤示意图。
52.如图4所示,其它实施例中,s3生成应用程序软件包并发布之后,还包括:s4,接收业务端用户反馈的业务程序;业务程序基于应用程序的软件包进行定制开发;s5,根据业务程序,调试修改业务程序中的应用程序部分。此时,相比最初软件开发过程的调试程序相比,增加了代码修改的过程。
53.基于此,本技术增加了业务端进行程序定制功能,且在定制过程中出现程序开发问题时,可以调试修改应用程序源代码,进一步完善了开发流程的二次开发、问题反馈等环节,形成完整的软件开发生态体系,大大提高了应用程序开发的安全性的、开发效率以及开发质量。
54.图5中示出了根据本技术实施例的调试修改业务程序中的应用程序部分的步骤示意图。
55.如图5所示,具体实施时,s5中调试修改业务程序中的应用程序部分,包括:s51:根据加解密工具解密应用程序部分中引用的加密核心源代码,得到核心源代码并修改核心源代码;s52:调试模式下编译应用程序部分,得到应用程序部分的应用目标文件;s53:通过加解密工具解密应用程序部分的应用目标文件,得到应用目标文件的中间文件;s54:基于格式转换规则即格式转换工具,对应用目标文件的中间文件进行格式转换,得到指定格式的应用源代码;s55:在调试模式下编译指定格式的应用源代码,并启动应用程序进行调试;最
后,重复以上步骤直至应用程序部分运行成功。
56.基于此,本技术在程序开发或者用户例如合作伙伴根据核心功能程序基础,进行业务程序定制过程中出现问题时,可以反馈给开发者调试修改应用程序源代码,通过加解密工具以及格式转换工具完成代码的解密和转换,实现了代码二次修改和二次调试。进一步完善了开发流程的定制开发、问题反馈等环节,形成完整的软件开发生态体系,大大提高了应用程序开发的安全性的、开发效率以及开发质量。
57.在以上调试程序相关步骤s34和s54中,均用到了基于格式转换规则对应用目标文件的中间文件进行格式转换,得到指定格式的应用源代码的步骤。
58.通过格式转换规则进行转换其具体实现过程包括:获取待转换的应用目标文件名,并作为输入文件名参数,以只读方式打开中间文件,获得读取文件句柄;输入应用程序源文件名,将该文件名做为初始搜索字符串;以输入应用程序文件名增加特定后缀作为输出文件名,以写方式打开输出文件句柄,创建写入缓冲区;根据读取文件句柄,读取文件缓冲区中的内容;对读取内容进行分析,出现异常信息时退出转换程序;对合法的读取内容按行读取,依据模式匹配将需要转换的信息进写入缓冲区并转换;读取缓冲区结束,关闭读取文件句柄和输出文件句柄,同时将写入缓冲区的内容写入存储文件,从而得到指定格式的应用源代码。
59.图6中示出了根据本技术实施例的格式转换规则的原理示意图。
60.那么,为了进一步描述格式转换规则即格式转换工具的实现原理,如图6所示,在具体应用场景中:1)首先,获取待转换的应用目标文件名,并作为输入文件名参数,以只读方式打开文件,获得读取文件句柄;2)输入应用程序源文件名,将该文件名做为初始搜索字符串;3)以输入应用程序文件名增加out后缀作为输出文件名,以写方式打开输出文件句柄,创建写入缓冲区;4)根据读取文件句柄,读取文件缓冲区中的内容;5)对读取内容进行分析,出现异常信息时退出转换程序;例如:判定源文件名信息数量是否为1,是1则出现异常,退出转换程序流程;又如,判定源文件名是否出现异常字符,出现则出现异常,退出转换程序流程。
61.6)对合法的读取内容按行读取,依据模式匹配将需要转换的信息进写入缓冲区并转换;具体的,对合法的行信息进行读取后,进行模式匹配,符合规则的信息包括可能出现的注释信息,写入缓存区;需要转换的字符如
“‑”
进行替换字符转换例如转换为空格字符。
62.7)读取缓冲区结束,关闭读取文件句柄和输出文件句柄,同时将写入缓冲区的内容写入存储文件,从而得到指定格式的应用源代码。
63.需要注意的是待转换的应用目标文件名与输入应用程序源文件名(不包括文件名扩展名后缀)可以相同也可以相近, 两者从物理路径名上是两个独立的文件。在通常的编译过程中,应用程序源文件作为输入,通过编译工具,输出应用目标文件。
64.在本技术实施例具体实施时,应用程序软件生成方法还包括修改应用源代码;修改应用源代码包括:根据加解密工具解密应用源代码引用的加密核心源代码,编辑修改核心源代码;直接修改应用源代码中除加密核心源代码之外的源代码。
65.图7中示出了根据本技术实施例的应用程序软件生成方法的整体原理图.为了进一阐释本技术实施例的应用程序软件生成方法的原理,如图7所示的应用场景,独立软件提供者基于本技术实施例提供的加解密工具进行核心代码的加密开发,结合格式转换工具进行应用程序的调试、修改,然后将开发有核心、公共功能的应用程序的软件包,包括加密的公共、核心目标文件、完整的应用程序目标文件以及开发者使用手册进行整理得到应用程序的软件包,然后发布给至少一个用户,即生态合作伙伴,合作伙伴根据不同的业务需求以及业务开发功能基于独立开发者发布的目标文件、开发者使用手册进行业务定制开发,在开发得到业务应用源程序后进行编译得到业务应用目标文件,这些开发过程中如果出现问题可以反馈给独立开发者调试修改独立开发者提供的应用程序部分。
66.本技术实施例可以提供完整的关于公共/核心源代码全生命周期管理方案。对于独立软件提供者和生态合作伙伴的开发者,针对各种业态模式下的开发流程和方法作了有针对性的设计,独立软件提者更侧重于公共基础/核心产品的设计与开发,生态合作伙伴更侧重于项目型定制化的业务应用设计与开发。
67.具体概括实施时,对于独立软件提供者,包括以下流程:步骤1,独立开发者编写公共/核心源程序, 这部分源程序在这一阶段以明文形式存在;步骤2,开发者对公共/核心源程序,进行加密处理,部署到开发环境中的指定路径;步骤3,开发者在编写应用源程序,引用加密后的公共/核心源程序;步骤4,开发者编译应用程序源程序;步骤5,开发者整合加密后的公共/核心源程序、编译后的应用程序以及开发者使用手册发布到生产环境或者互联网等发布渠道中。
68.调试程序时,同时可以修改。主要用于调试修改公共基础源程序和核心程序之外的应用程序。
69.一方面,对于公共基础源程序,直接运行解密程序,加密的源程序就以明文的形式存在,这时可以对解密后的源程序文件进行编辑修改操作。对于应用程序部分的调试采用常规的调试方式即可。
70.另一方面,对于应用程序引用的公共基础源程序的调试,需要执行以下步骤:(一)调试前,开发者先对应用程序进行备份作为原有的应用程序源文件;(二)对公共基础源程序运行解密程序,进行编辑修改;(三)在调试模式下,编译应用程序;(四)对编译应用程序的目标文件运行解密程序;(五)对步骤四生成的解密文件的运行转换工具,生成结果是可以看到包含公共基础程序的应用程序源文件,替换备份的原有应用程序源文件(六)重新在调试模式下编译应用程序;通过启动应用程序调试,可以调试公共基础源程序。
71.接下来,对于进行定制开发的合作生态伙伴,包括以下流程:首先,根据开发者使用手册说明,编写定制应用源程序;接下来,在调试模式下编译应用程序源文件,生成含有调试信息的目标文件;
然后,调试模式下进行应用程序源文件的跟踪调试;最后,遇到无法处理的问题,可以将有问题的目标文件发送给独立软件开发者获得专业的技术支持进行应用程序部分的二次开发修改和调试。
72.其中,关于加解密工具或者解密参数,具体采用加密/解密矩阵与加解密引擎方法进行核心代码的加密或解密。
73.具体实施时,加/解密矩阵是一个数组,具体为是一个固定的256个字节的无符号字符char型的数组, 该数组中包含了256个ascii字符对应整形数值,这些数值在数组中的位置是乱序存储的。
74.图8中示出了根据本技术实施例的运用加解密工具进行加密/解密的原理示意图。
75.如图8所示,首先,获取当前独立开发者的身份信息,确认是否可以对代码文件进行加解密处理,合法开发者继续后面开发流程,非法开发者终止开发操作。
76.然后,读取当前源文件至缓存区,结合加解密标志参数,以及加解密矩阵对缓存区文件进行加解密。应用程序/源代码加密、解密由同一程序提供,通过先识别加密/解密标志参数,然后进行加密处理或者解密处理。
77.加密/解密算法基本思路是,在程序编译阶段,对于公共及基础核心程序扫描源程序加解密矩阵进行处理,处理后这些目标文件作为公共/核心程序发布到开发系统中,经过严格的测试这些目标文件会随同业务应用程序目标文件、开发者使用手册产品安装包中。
78.业务应用源程序根据调用的公共/核心程序的情况,在编译过程会以静态或者动态的方式引用到业务应用目标文件中。加/解密程序本身不会发布到产品安装包中,它只作为内部工具提供给独立软件提供者使用,解密的过程也非常简单,指定解密标志参数,解密处理程序会利用加解密矩阵对公共基础/核心目标文件进行解密处理。
79.其中,转换工具主要是用于应用程序目标文件的转换,其处理过程是识别非公共核心程序,还原业务应用源代码(包含有公共/核心源文件信息),便于对公共核心程序部分的编译与调试,转换工作也作为内部的工具不会发布到产品安装包中,它只作为内部工具提供给独立软件提供者使用。
80.采用本技术实施例的应用程序软件生成方法,通过根据加解密工具加密应用程序的核心源代码,得到加密核心源代码;引用加密核心源代码编写应用程序的应用源代码;编译应用源代码、调试应用程序之后,生成应用程序软件包并发布。可以在软件开发中对核心源代码进行加密,然后引用加密的核心源代码进行应用程序源代码的编写,既可以保证核心源代码的保密,也可以保证用户程序、软件的正常开发。解决了软件开发市场上要么源代码明文发布的泄密问题,要么混淆密文发布后单向服务、不可反馈服务等问题。
81.另外,还可以根据用户反馈调试修改应用程序,增加了二次开发、问题反馈等环节,形成完整的软件开发生态体系,大大提高了应用程序开发的安全性的、开发效率以及开发质量。
82.实施例2本实施例提供了一种业务程序定制方法,对于本实施例的业务程序定制方法中未披露的细节,请参照实施例1中的应用程序软件生成方法的具体实施内容。
83.图9中示出了根据本技术实施例的业务程序定制方法的步骤示意图。
84.如图9所示,业务程序定制方法包括:
s10:获取开发者执行应用程序软件生成方法生成的应用程序软件包;s20:根据应用程序软件包以及业务功能需求,生成业务程序。
85.具体实施时,业务程序定制方法还包括:向开发者反馈出现程序问题;发送业务程序,或发送业务程序引用的应用程序部分。
86.结合实施例1的应用程序软件生成方法的实施例,在程序开发或者用户例如合作伙伴反馈出现问题时,可以调试修改应用程序源代码,增加了二次开发、问题反馈等环节,形成完整的软件开发生态体系,大大提高了应用程序开发的安全性的、开发效率以及开发质量。
87.实施例3本实施例提供了一种应用程序软件生成系统,对于本实施例的应用程序软件生成系统中未披露的细节,请参照其它实施例中的应用程序软件生成方法的具体实施内容。
88.图10中示出了根据本技术实施例的应用程序软件生成系统的结构示意图。
89.如图10所示,应用程序软件生成系统,包括加密核心代码模块10、应用程序代码模块20、调试模块30以及软件包模块40。
90.具体的,加密核心代码模块10:用于根据加解密工具加密应用程序的核心源代码,得到加密核心源代码;加解密工具用于根据加解密规则将明文的代码加密为密文的源代码,以及用于将密文的源代码解密为明文的源代码。
91.应用程序代码模块20:用于引用加密核心源代码编写应用程序的应用源代码。
92.调试模块30:用于编译应用源代码、调试应用程序。
93.调试应用程序包括:首先,根据加解密工具解密应用程序中引用的加密核心源代码,得到可以编辑修改的核心源代码;然后,调试模式下编译应用程序,得到应用程序的应用目标文件;接下来,解密应用程序的应用目标文件,得到应用目标文件的中间文件;基于格式转换工具对应用目标文件的中间文件进行格式转换,得到指定格式的应用源代码;在调试模式下编译指定格式的应用源代码,并启动应用程序进行调试。
94.软件包模块40:用于生成应用程序软件包并发布。
95.具体实施时,通过加解密工具加密应用程序的核心源代码,得到加密核心源代码,包括:首先,遍历待加密的核心源代码,获取加解密标志参数判断进行加密还是解密,当确定是进行代码加密时,结合加解密矩阵对待加密的核心源代码内容进行加密处理,得到加密核心源代码。
96.相似的,具体实施时,通过加解密工具解密应用程序中引用的加密核心源代码,得到核心源代码,包括:遍历待解密的加密核心源代码,获取加解密标志参数,判断进行加密还是解密,当确定进行代码解密时,结合加解密矩阵对加密核心源代码内容进行解密处理,得到核心源代码。
97.基于此,在程序开发或者用户例如合作伙伴反馈出现问题时,可以调试修改应用程序源代码,增加了二次开发、问题反馈等环节,形成完整的软件开发生态体系,大大提高了应用程序开发的安全性的、开发效率以及开发质量。
98.其它实施例中,系统还包括二次开发模块(图中未示出),用于生成应用程序软件包并发布之后接收业务端反馈的业务程序;业务程序基于应用程序的软件包进行定制开发;然后根据业务程序,调试修改业务程序中的应用程序部分。
99.其中,基于格式转换工具对应用目标文件的中间文件进行格式转换,得到指定格式的应用源代码的步骤,其具体实现过程包括:获取待转换的应用目标文件名,并作为输入文件名参数,以只读方式打开中间文件,获得读取文件句柄;输入应用程序源文件名,将该文件名做为初始搜索字符串;以输入应用程序文件名增加特定后缀作为输出文件名,以写方式打开输出文件句柄,创建写入缓冲区;根据读取文件句柄,读取文件缓冲区中的内容;对读取内容进行分析,出现异常信息时退出转换程序;对合法的读取内容按行读取,依据模式匹配将需要转换的信息进写入缓冲区并转换;读取缓冲区结束,关闭读取文件句柄和输出文件句柄,同时将写入缓冲区的内容写入存储文件,从而得到指定格式的应用源代码。
100.综合来说,独立软件提供者基于本技术实施例提供的加解密工具进行核心代码的加密开发,结合格式转换工具进行应用程序的调试、修改,然后将开发有核心、公共功能的应用程序的软件包,包括加密的公共、核心目标文件、完整的应用程序目标文件以及开发者使用手册进行整理得到应用程序的软件包,然后发布给至少一个用户,即生态合作伙伴,合作伙伴根据不同的业务需求以及业务开发功能基于独立开发者发布的目标文件、开发者使用手册进行业务定制开发,在开发得到业务应用源程序后进行编译得到业务应用目标文件,这些开发过程中如果出现问题可以反馈给独立开发者调试修改独立开发者提供的应用程序部分。
101.采用本技术实施例的应用程序软件生成系统,通过加密核心代码模块10根据加解密工具加密应用程序的核心源代码,得到加密核心源代码;应用程序代码模块20引用加密核心源代码编写应用程序的应用源代码;调试模块30编译应用源代码、调试应用程序;软件包模块40生成应用程序软件包并发布。可以在软件开发中对核心源代码进行加密,然后引用加密的核心源代码进行应用程序源代码的编写,既可以保证核心源代码的保密,也可以保证用户程序、软件的正常开发。解决了软件开发市场上要么源代码明文发布的泄密问题,要么混淆密文发布后单向服务、不可反馈服务等问题。
102.另外,还可以根据用户反馈调试修改应用程序,增加了二次开发、问题反馈等环节,形成完整的软件开发生态体系,大大提高了应用程序开发的安全性的、开发效率以及开发质量。
103.实施例4本实施例提供了一种应用程序软件生成设备,对于本实施例的应用程序软件生成设备中未披露的细节,请参照其它实施例中的应用程序软件生成方法或系统具体的实施内容。
104.图11中示出了根据本技术实施例的应用程序软件生成设备400或应用程序软件生成设备的结构示意图。
105.如图11所示,应用程序软件生成设备400或应用程序软件生成设备,包括:存储器402:用于存储可执行指令;以及处理器401:用于与存储器402连接以执行可执行指令从而完成应用程序软件生成方法或者应用程序软件生成方法。
106.本领域技术人员可以理解,示意图11仅仅是应用程序软件生成设备400或应用程序软件生成设备的示例,并不构成对应用程序软件生成设备400或应用程序软件生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如应
用程序软件生成设备400还可以包括输入输出设备、网络接入设备、总线等。
107.所称处理器401(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器401也可以是任何常规的处理器等,处理器401是应用程序软件生成设备400的控制中心,利用各种接口和线路连接整个应用程序软件生成设备400的各个部分。
108.存储器402可用于存储计算机可读指令,处理器401通过运行或执行存储在存储器402内的计算机可读指令或模块,以及调用存储在存储器402内的数据,实现应用程序软件生成设备400的各种功能。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据应用程序软件生成设备400使用所创建的数据等。此外,存储器402可以包括硬盘、内存、插接式硬盘,智能存储卡(smart media card, smc),安全数字(secure digital, sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccess memory,ram)或其他非易失性/易失性存储器件。
109.应用程序软件生成设备400集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机可读指令来指令相关的硬件来完成,的计算机可读指令可存储于一计算机可读存储介质中,该计算机可读指令在被处理器执行时,可实现上述各个方法实施例的步骤。
110.实施例5本实施例提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现其他实施例中的应用程序软件生成方法。
111.本技术实施例的应用程序软件生成设备及存储介质,通过根据加解密工具加密应用程序的核心源代码,得到加密核心源代码;引用加密核心源代码编写应用程序的应用源代码;编译应用源代码、调试应用程序之后,生成应用程序软件包并发布。
112.本技术实施例可以在软件开发中对核心源代码进行加密,然后引用加密的核心源代码进行应用程序源代码的编写,既可以保证核心源代码的保密,也可以保证用户程序、软件的正常开发。解决了软件开发市场上要么源代码明文发布的泄密问题,要么混淆密文发布后单向服务、不可反馈服务等问题。
113.另外,还可以根据用户反馈调试修改应用程序,增加了二次开发、问题反馈等环节,形成完整的软件开发生态体系,大大提高了应用程序开发的安全性的、开发效率以及开发质量。
114.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产
品的形式。
115.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
116.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
117.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
118.在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
119.应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
120.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
121.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:
1.一种应用程序软件生成方法,其特征在于,包括:通过加解密工具加密应用程序的核心源代码,得到加密核心源代码;所述加解密工具用于根据加解密规则将明文的代码加密为密文的源代码,以及用于将密文的源代码解密为明文的源代码;引用所述加密核心源代码编写应用程序的应用源代码;编译所述应用源代码、调试所述应用程序之后,生成应用程序软件包并发布。2.根据权利要求1所述的应用程序软件生成方法,其特征在于,所述通过加解密工具加密应用程序的核心源代码,得到加密核心源代码,包括:遍历待加密的核心源代码,获取加解密标志参数,确定进行代码加密;结合加解密矩阵对所述待加密的核心源代码内容进行加密处理,得到加密核心源代码。3.根据权利要求1所述的应用程序软件生成方法,其特征在于,所述调试所述应用程序,包括:通过加解密工具解密所述应用程序中引用的加密核心源代码,得到核心源代码;调试模式下编译所述应用程序,得到所述应用程序的包含有调试信息的应用目标文件;通过加解密工具解密所述应用程序的应用目标文件,得到所述应用目标文件的中间文件;基于格式转换工具对所述应用目标文件的中间文件进行格式转换,得到指定格式的应用源代码;在调试模式下编译所述指定格式的应用源代码,并启动应用程序进行调试。4.根据权利要求3所述的应用程序软件生成方法,其特征在于,所述通过加解密工具解密所述应用程序中引用的加密核心源代码,得到核心源代码,包括:遍历待解密的加密核心源代码,获取加解密标志参数,确定进行代码解密;结合加解密矩阵对所述加密核心源代码内容进行解密处理,得到核心源代码。5.根据权利要求3所述的应用程序软件生成方法,其特征在于,所述基于格式转换工具对所述应用目标文件的中间文件进行格式转换,得到指定格式的应用源代码,包括:获取待转换的应用目标文件名,并作为输入文件名参数,以只读方式打开所述中间文件,获得读取文件句柄;输入应用程序源文件名,将该文件名做为初始搜索字符串;以输入应用程序文件名增加特定后缀作为输出文件名,以写方式打开输出文件句柄,创建写入缓冲区;根据读取文件句柄,读取文件缓冲区中的内容;对读取内容进行分析,出现异常信息时退出转换程序;对合法的读取内容按行读取,依据模式匹配将需要转换的信息进写入缓冲区并转换;读取缓冲区结束,关闭读取文件句柄和输出文件句柄,同时将写入缓冲区的内容写入存储文件,从而得到指定格式的应用源代码。6.根据权利要求1所述的应用程序软件生成方法,其特征在于,所述生成应用程序软件包并发布之后,还包括:
接收业务端反馈的业务程序;所述业务程序基于所述应用程序的软件包进行定制开发;根据所述业务程序,调试修改所述业务程序中的应用程序部分。7.一种业务程序定制方法,其特征在于,包括:获取开发者执行权利要求1-6任一项所述的应用程序软件生成方法生成的应用程序软件包;根据所述应用程序软件包以及业务功能需求,生成业务程序。8.根据权利要求7所述的业务程序定制方法,其特征在于,还包括:向所述开发者反馈出现程序问题;发送所述业务程序,或发送所述业务程序引用的应用程序部分。9.一种应用程序软件生成系统,其特征在于,包括:加密核心代码模块:用于根据加解密工具加密应用程序的核心源代码,得到加密核心源代码;所述加解密工具用于根据加解密规则将明文的代码加密为密文的源代码,以及将密文的源代码解密为明文的源代码;应用程序代码模块:用于引用所述加密核心源代码编写应用程序的应用源代码;调试模块:用于编译所述应用源代码、调试所述应用程序;软件包模块:用于生成应用程序软件包并发布。10.一种应用程序软件生成设备,其特征在于,包括:存储器,用于存储可执行指令;以及处理器,用于与存储器连接以执行可执行指令从而完成如权利要求1-8任一项所述的方法。11.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;计算机程序被处理器执行以实现如权利要求1-8任一项所述的方法。
技术总结
本申请提供了一种应用程序软件生成方法、系统、设备及存储介质,通过加解密工具加密应用程序的核心源代码,得到加密核心源代码;引用加密核心源代码编写应用程序的应用源代码;编译应用源代码、调试应用程序之后,生成应用程序软件包并发布。可以在软件开发中对核心源代码进行加密,然后引用加密的核心源代码进行应用程序源代码的编写,既可以保证核心源代码的保密,也可以保证用户程序、软件的正常开发。解决了软件开发市场上要么源代码明文发布的泄密问题,要么混淆密文发布后单向服务、不可反馈服务等问题。反馈服务等问题。反馈服务等问题。
技术研发人员:田显宁 陈轶欧 刘贵平
受保护的技术使用者:北京冠群信息技术股份有限公司
技术研发日:2023.08.03
技术公布日:2023/9/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
