【技术实现步骤摘要】
【国外来华专利技术】用于通过将计算机程序的控制流表示为数据来混淆计算机程序的系统、方法和存储介质
[0001]本公开涉及用于通过将计算机程序的控制流表示为不是可执行代码的数据来混淆计算机程序的系统、方法和存储介质。
技术介绍
[0002]计算机软件通常以高级语言编写,所述高级语言必须编译成低级目标代码以便在计算机或其他处理器上执行。高级计算机语言使用与简明语言紧密相似的命令用词,因此其可以被开发人员容易地理解。目标代码通常是指机器可执行代码,其是软件编译器的输出,其将源代码从人类可读的代码转化为机器可执行代码。
[0003]软件程序的低级结构通常根据其数据流和控制流来描述。数据流是对变量连同对变量执行的操作的描述。控制流是在执行期间控制如何在程序中从块跳到块的描述。例如,If
‑
Then
‑
Else语句包括要对输入和控制流执行的两个操作,其基于条件变量将执行引导到一个操作或另一个操作。
[0004]篡改是指以违背原作者意愿的方式改变计算机软件。常规上,计算机软件程序已经具有编码在其中的限制,诸如需要密码访问、防止复制或仅允许软件执行预定次数或达某持续时间。然而,因为用户经常可以访问软件代码,所以已经找到了识别管理这些限制的代码的方法。一旦已经识别出这种编码,经验丰富的用户就能够通过修改软件代码来克服这些程序限制。此外,难以防止用户使用诸如调试器之类的工具来在计算机软件执行时监控该计算机软件。这允许用户获得完整的数据流和控制流。
[0005]已经进行了许多尝试来通过“混淆”代码防 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种被配置用于通过将计算机程序的控制流表示为不是源代码的控制流数据来混淆所述计算机程序的系统,所述系统包括:一个或多个硬件处理器,所述一个或多个硬件处理器由机器可读指令配置为:接收计算机程序的源代码,所述源代码包括所述程序的多个计算功能和所述程序的控制流,所述程序的控制流定义顺序,所述计算功能以所述顺序执行;解析所述源代码;提取所述源代码的所述控制流的至少一部分;使用数学建模语言将所述控制流的至少一部分表示为控制流模型,所述建模语言包括用于表示在所述计算机程序的执行期间发生的事件的事件元素、表示在所述计算机程序的所述执行期间发生的条件的条件元素以及链接到用于执行功能的所述源代码的部分的执行元素的构成,其中弧用于将事件元素与条件元素和执行元素链接在一起,以及其中令牌与条件元素和执行元素相关联以表示所述计算机程序的执行的状态;将所述控制流模型存储为表示所述程序的所述控制流的控制流数据,其中所述控制流数据不是可执行代码;以及从所述源代码中移除所述控制流的所述至少一部分,以由此混淆所述源代码的所述控制流并致使所述源代码更能抵抗篡改。2.根据权利要求1所述的系统,其中所述控制流数据被存储为一个或多个矩阵。3.根据权利要求2所述的系统,其中所述一个或多个矩阵包括至少一个矩阵,所述至少一个矩阵指示到跃迁元素、事件元素和条件元素的输入和所述跃迁元素、所述事件元素和所述条件元素的输出,以由此表示所述控制流模型的结构。4.根据权利要求2所述的系统,其中所述一个或多个矩阵包括矩阵,所述矩阵指示在所述计算机程序的执行期间的一个或多个时间处令牌与所述条件元素和所述执行元素的关联。5.根据权利要求2所述的系统,其中所述数学建模语言是修改的佩特里网。6.根据权利要求5所述的系统,其中所述一个或多个硬件处理器还由机器可读指令配置为:由执行引擎接收所述一个或多个矩阵;由所述执行引擎基于所述矩阵执行所述控制流模型的仿真;由所述执行引擎基于所述令牌与执行元素的所述关联检测特定执行元素的触发;引起链接到所述特定执行元素的所述源代码的部分的执行。7.根据权利要求6所述的系统,其中基于所述矩阵执行所述控制流模型的仿真包括基于所述矩阵在所述一个或多个时间中的每个时间处确定令牌与条件元素和执行元素的所述关联。8.一种通过将计算机程序的控制流表示为不是源代码的数据来混淆所述计算机程序的方法,所述方法包括:接收计算机程序的源代码,所述源代码包括所述程序的多个计算功能和所述程序的控制流,所述程序的控制流定义顺序,所述计算功能以所述顺序执行;解析所述源代码;提取所述源代码的所述控制流的至少一部分;
使用数学建模语言将所述控制流的至少一部分表示为控制流模型,所述建模语言包括用于表示在所述计算机程序的执行期间发生的事件的事件元素、表示在所述计算机程序的所述执行期间发生的条件的条件元素以及链接到用于执行功能的所述源代码的部分的执行元素的构成,其中弧用于将事件元素与条件元素和执行元素链接在一起,以及其中令牌与条件元素和执行元素相关联以表示所述计算机程序的执行的状态;将所述控制流模型存储为表示所述程序的所述控制流的控制流数据,其中所述控制流数据不是可执行代码;以及从所述源代码中移除所述控制流的所述至少一部分,以由此混淆所述源代码的所述控制流并致使所述源代码更能抵抗篡改。9.根据权利要求8所述的方法,其中所述控制流数据被存储为一个或多个矩阵。10.根据权利要求9所述的方法,其中所述一个或多个矩阵包括矩阵,所述矩阵指示到跃迁元素、事件元素和条件元素的输入,以由此表示所述控制流模型的结构。11.根据权利要求9所述的方法,其中所述一个或多个矩阵包括矩阵,所述矩阵指示在所述计算机程...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。