CN113239330A - 一种基于散列算法的反调试方法及相关装置 - Google Patents

一种基于散列算法的反调试方法及相关装置 Download PDF

Info

Publication number
CN113239330A
CN113239330A CN202110649997.3A CN202110649997A CN113239330A CN 113239330 A CN113239330 A CN 113239330A CN 202110649997 A CN202110649997 A CN 202110649997A CN 113239330 A CN113239330 A CN 113239330A
Authority
CN
China
Prior art keywords
hash value
debugging
hash
preset
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110649997.3A
Other languages
English (en)
Inventor
胡瀚璋
范渊
吴卓群
王欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN202110649997.3A priority Critical patent/CN113239330A/zh
Publication of CN113239330A publication Critical patent/CN113239330A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种基于散列算法的反调试方法,包括:采用散列算法对字节码进行计算,得到散列值;其中,所述字节码为程序启动时生成的字节码;判断所述散列值是否等于预设散列值;若是,则执行反调试指令。通过采用散列算法对字节码进行计算,得到散列值,并判断是否等于预设散列值,当等于预设散列值时执行反调试指令,而不是直接执行反调试指令,避免了反调试指令被修改的问题,使得反调试指令被正常执行,提高了反调试功能的效果。本申请还公开了一种基于散列算法的反调试装置、计算设备及计算机可读存储介质,具有以上有益效果。

Description

一种基于散列算法的反调试方法及相关装置
技术领域
本申请涉及计算机技术领域,特别涉及一种基于散列算法的反调试方法、反调试装置、计算设备及计算机可读存储介质。
背景技术
反调试是一种重要的软件保护技术,特别是在各种游戏保护中被尤其重视。当程序意识到自己可能处于调试中的时候,可能会改变正常的执行路径或者修改自身程序使得受保护程序崩溃,从而增加调试时间和复杂度,有效实现保护自身的权益。
因此,识别反调试字节码是软件逆向分析的一个重点,称为反反调试。为了对抗反反调试,软件作者通常会对软件或者反调试代码进行加密,即使用反反反调试技术。如使用可逆加密算法对软件加密,加密之后反调试字节码无法直接可见;又如使用异或某指定字节码方式对反调试字节码部分部进行简单加密,在某个特定过程中对加密的反调试字节码进行异或加密并执行反调试字节码。
相关技术中,反反反调试手段均采用了可逆算法,一旦软件调试人员分析出解密算法,即宣告反反反调试手段失效,降低了反反反调试技术的效果,降低程序保护的安全性。
因此,如何提高方调试技术保护程序的安全性是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种基于散列算法的反调试方法、反调试装置、计算设备及计算机可读存储介质,解决了反调试指令被识别从而绕过反调试指令的问题。
为解决上述技术问题,本申请提供一种基于散列算法的反调试方法,包括:
采用散列算法对字节码进行计算,得到散列值;其中,所述字节码为程序启动时生成的字节码;
判断所述散列值是否等于预设散列值;
若是,则执行反调试指令。
可选的,还包括:
当所述散列值不等于所述预设散列值时,执行所述采用散列算法对字节码进行计算的步骤,直至散列值等于所述预设散列值。
可选的,还包括:
当所述散列值不等于所述预设散列值时,执行所述采用散列算法对字节码进行计算的步骤,并记录执行次数;
当所述执行次数大于等于预设次数时,发送程序错误消息。
可选的,所述程序启动时生成字节码的步骤,包括:
当程序启动时,采用字节码生成算法进行计算,得到所述字节码。
可选的,执行反调试指令,包括:
执行反调试指令,得到反调试结果;
当所述反调试结果为被调试时,根据非正常执行路径进行执行;
当所述反调试结果为无调试时,根据正常执行路径进行执行。
可选的,还包括:
获取预设反调试字节码;
采用散列算法对所述预设反调试字节码进行计算,得到所述预设散列值;
将所述预设散列值写入到所述程序。
可选的,采用散列算法对字节码进行计算,得到散列值,包括:
采用哈希算法对所述字节码进行计算,得到所述散列值。
本申请还提供一种基于散列算法的反调试装置,包括:
散列值计算模块,用于采用散列算法对字节码进行计算,得到散列值;其中,所述字节码为程序启动时生成的字节码;
散列值判断模块,用于判断所述散列值是否等于预设散列值;
反调试执行模块,用于当所述散列值等于所述预设散列值时,执行反调试指令。
本申请还提供一种计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的反调试方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的反调试方法的步骤。
本申请所提供的一种基于散列算法的反调试方法,包括:采用散列算法对字节码进行计算,得到散列值;其中,所述字节码为程序启动时生成的字节码;判断所述散列值是否等于预设散列值;若是,则执行反调试指令。
通过采用散列算法对字节码进行计算,得到散列值,并判断是否等于预设散列值,当等于预设散列值时执行反调试指令,而不是直接执行反调试指令,避免了反调试指令被修改的问题,使得反调试指令被正常执行,提高了反调试功能的效果。
本申请还提供一种基于散列算法的反调试装置、计算设备及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种基于散列算法的反调试方法的流程图;
图2为本申请实施例所提供的一种基于散列算法的反调试装置的结构示意图。
具体实施方式
本申请的核心是提供一种基于散列算法的反调试方法、反调试装置、计算设备及计算机可读存储介质,解决了反调试指令被识别从而绕过反调试指令的问题。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,反反反调试手段均采用了可逆算法,一旦软件调试人员分析出解密算法,即宣告反反反调试手段失效,降低了反反反调试技术的效果,降低程序保护的安全性。
因此,本申请提供一种基于散列算法的反调试方法,通过采用散列算法对字节码进行计算,得到散列值,并判断是否等于预设散列值,当等于预设散列值时执行反调试指令,而不是直接执行反调试指令,避免了反调试指令被修改的问题,使得反调试指令被正常执行,提高了反调试功能的效果。
以下通过一个实施例,对本申请提供的一种基于散列算法的反调试方法进行说明。
请参考图1,图1为本申请实施例所提供的一种基于散列算法的反调试方法的流程图。
本实施例中,该方法可以包括:
S101,采用散列算法对字节码进行计算,得到散列值;其中,字节码为程序启动后生成的字节码;
本步骤旨在采用散列算法对程序运行过程中实时生成的字节码进行计算,得到该字节码对应的散列值。其中,字节码(Byte-code)是一种包含执行程序,由一序列op代码/数据对组成的二进制文件,是一种中间码。该字节码可以是随着程序的执行实时生成的,也可以是采用字节码生成算法对执行代码进行计算得到的。
进一步的,该程序启动时生成字节码的步骤,可以包括:
当程序启动时,采用字节码生成算法进行计算,得到字节码。
可见,本可选方案主要是说明如何获取到字节码。本可选方案中,当程序启动时,采用字节码生成算法进行计算,得到字节码。
进一步的,本步骤可以包括:
采用哈希算法对字节码进行计算,得到散列值。
可见,本可选方案中主要是说明如何获取到散列值。本可选方案中,采用哈希算法对字节码进行计算,得到散列值。其中,哈希算法是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
S102,判断散列值是否等于预设散列值;
在S101的基础上,本步骤旨在判断该散列值是否等于预设散列值。
其中,预设散列值可以是在程序运行之前将自定义字节码进行散列值计算,得到的预设散列值。
可选的,该实施例还可以包括:
步骤1,获取预设反调试字节码;
步骤2,采用散列算法对预设反调试字节码进行计算,得到预设散列值;
步骤3,将预设散列值写入到程序。
可见,本可选方案中主要是对如何获取到预设散列值进行计算。本可选方案中首先获取预设反调试字节码;然后,采用散列算法对预设反调试字节码进行计算,得到预设散列值;最后,将预设散列值写入到程序。
S103,若是,则执行反调试指令。
在S102的基础上,本步骤旨在执行反调试指令。
其中,反调试指令可以采用现有技术提供的任意一种反调试指令,在此不做具体限定。
进一步的,该步骤可以包括:
步骤1,执行反调试指令,得到反调试结果;
步骤2,当反调试结果为被调试时,根据非正常执行路径进行执行;
步骤3,当反调试结果为无调试时,根据正常执行路径进行执行。
可见,本可选方案中主要是说明如何执行反调试指令。本可选方案中执行反调试指令,得到反调试结果;当反调试结果为被调试时,根据非正常执行路径进行执行;当反调试结果为无调试时,根据正常执行路径进行执行。
可选的,该实施例还可以包括:
当散列值不等于预设散列值时,执行采用散列算法对字节码进行计算的步骤,直至散列值等于预设散列值。
可见,本可选方案中主要是对如何执行后续进行说明。本可选方案中,当散列值不等于预设散列值时,执行采用散列算法对字节码进行计算的步骤,直至散列值等于预设散列值。
可选的,该实施例还可以包括:
当散列值不等于预设散列值时,执行采用散列算法对字节码进行计算的步骤,并记录执行次数;
当执行次数大于等于预设次数时,发送程序错误消息。
可见,本可选方案中主要是对如何执行后续进行说明。本可选方案中,当散列值不等于预设散列值时,执行采用散列算法对字节码进行计算的步骤,并记录执行次数;当执行次数大于等于预设次数时,发送程序错误消息。
综上,本实施例可以通过采用散列算法对字节码进行计算,得到散列值,并判断是否等于预设散列值,当等于预设散列值时执行反调试指令,而不是直接执行反调试指令,避免了反调试指令被修改的问题,使得反调试指令被正常执行,提高了反调试功能的效果。
以下通过一个具体的实施例,对本申请提供的一种基于散列算法的反调试方法做进一步说明。
本实施例中,该方法可以包括:
步骤1,自定义反调试字节码;
其中,可以将任意反调试代码作为反调试字节码。例如,将代码中的int 3作为反调试字节码。
步骤2,使用散列算法计算出反调试字节码散列值;
其中,散列算法可以选择现有技术提供的任意一种散列算法,在此不做具体限定。
步骤3,将反调试字节码散列值、散列算法和字节码生成算法写入程序;
其中,字节码生成算法可以采用现有技术提供的任意一种生成算法,在此不做具体限定。也可以使用凯撒移位,如果目标字节码是0x12,那么字节码生成算法中硬编码0x13,即字节码生成算法就是每运行一次硬编码的字节码-1,最后对这个字节码进行散列计算。如果结果符合硬编码散列值,则认为字节码生成成功。
步骤4,启动程序;
步骤5,使用字节码生成算法生成运行时字节码;
其中,可以采用步骤3中的字节码生成算法,硬编码加算法,也可以采用纯算法对一块内存进行计算,比如每次计算4个字节,然后计算散列值进行对比。
步骤6,使用步骤2指定的散列算法计算运行时字节码散列值;
其中,同样的该散列算法可以采用现有技术提供的任意一种散列算法,在此不做具体限定。
步骤7,判断运行时字节码散列值是否等于反调试字节码散列值;
其中,如果采用MD5,预设一串MD5,将上面生成的字节码计算MD5,与硬编码的MD5进行对比。
步骤8,散列值不相等,重复步骤5到步骤7;
步骤9,散列值相等,此时运行时字节码即等于反调试字节码,执行运行时字节码;
其中,执行生成的运行时字节码,运行后可以得到程序是否处于被调试状态的信息。如果处于被调试状态,可以执行反调试,如程序退出,自身删除,死循环无响应等;如果处于正常状态,可以不做额外操作。
步骤10,从步骤9中获取是否被调试的调试信息;
步骤11,如果调试信息为被调试,执行自定义的非正常执行路径;
步骤12,如果调试信息为无调试,执行正常的执行路径。
可见,本实施例可以通过采用散列算法对字节码进行计算,得到散列值,并判断是否等于预设散列值,当等于预设散列值时执行反调试指令,而不是直接执行反调试指令,避免了反调试指令被修改的问题,使得反调试指令被正常执行,提高了反调试功能的效果。
下面对本申请实施例提供的基于散列算法的反调试装置进行介绍,下文描述的基于散列算法的反调试装置与上文描述的基于散列算法的反调试方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种基于散列算法的反调试装置的结构示意图。
本实施例中,该装置可以包括:
散列值计算模块100,用于采用散列算法对字节码进行计算,得到散列值;其中,字节码为程序启动时生成的字节码;
散列值判断模块200,用于判断散列值是否等于预设散列值;
反调试执行模块300,用于当散列值等于预设散列值时,执行反调试指令。
可选的,该装置还可以包括:
循环计算模块,用于当散列值不等于预设散列值时,执行采用散列算法对字节码进行计算的步骤,直至散列值等于预设散列值。
可选的,该装置还可以包括:
错误退出模块,用于当散列值不等于预设散列值时,执行采用散列算法对字节码进行计算的步骤,并记录执行次数;当执行次数大于等于预设次数时,发送程序错误消息。
可选的,该散列值计算模块100,还包括:
字节码获取单元,用于当程序启动时,采用字节码生成算法进行计算,得到字节码。
可选的,该反调试执行模块300,包括:
反调试结果获取单元,用于执行反调试指令,得到反调试结果;
非正常执行单元,用于当反调试结果为被调试时,根据非正常执行路径进行执行;
正常执行单元,用于当反调试结果为无调试时,根据正常执行路径进行执行。
可选的,该装置还可以包括:
预设散列值计算模块,用于获取预设反调试字节码;采用散列算法对预设反调试字节码进行计算,得到预设散列值;将预设散列值写入到程序。
可选的,该散列值计算模块100,具体用于采用哈希算法对字节码进行计算,得到散列值。
本申请实施例还提供一种计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的反调试方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的反调试方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种基于散列算法的反调试方法、反调试装置、计算设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种基于散列算法的反调试方法,其特征在于,包括:
采用散列算法对字节码进行计算,得到散列值;其中,所述字节码为程序启动时生成的字节码;
判断所述散列值是否等于预设散列值;
若是,则执行反调试指令。
2.根据权利要求1所述的反调试方法,其特征在于,还包括:
当所述散列值不等于所述预设散列值时,执行所述采用散列算法对字节码进行计算的步骤,直至散列值等于所述预设散列值。
3.根据权利要求1所述的反调试方法,其特征在于,还包括:
当所述散列值不等于所述预设散列值时,执行所述采用散列算法对字节码进行计算的步骤,并记录执行次数;
当所述执行次数大于等于预设次数时,发送程序错误消息。
4.根据权利要求1所述的反调试方法,其特征在于,所述程序启动时生成字节码的步骤,包括:
当程序启动时,采用字节码生成算法进行计算,得到所述字节码。
5.根据权利要求1所述的反调试方法,其特征在于,执行反调试指令,包括:
执行反调试指令,得到反调试结果;
当所述反调试结果为被调试时,根据非正常执行路径进行执行;
当所述反调试结果为无调试时,根据正常执行路径进行执行。
6.根据权利要求1所述的反调试方法,其特征在于,还包括:
获取预设反调试字节码;
采用散列算法对所述预设反调试字节码进行计算,得到所述预设散列值;
将所述预设散列值写入到所述程序。
7.根据权利要求1所述的反调试方法,其特征在于,采用散列算法对字节码进行计算,得到散列值,包括:
采用哈希算法对所述字节码进行计算,得到所述散列值。
8.一种基于散列算法的反调试装置,其特征在于,包括:
散列值计算模块,用于采用散列算法对字节码进行计算,得到散列值;其中,所述字节码为程序启动时生成的字节码;
散列值判断模块,用于判断所述散列值是否等于预设散列值;
反调试执行模块,用于当所述散列值等于所述预设散列值时,执行反调试指令。
9.一种计算设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的反调试方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的反调试方法的步骤。
CN202110649997.3A 2021-06-10 2021-06-10 一种基于散列算法的反调试方法及相关装置 Pending CN113239330A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110649997.3A CN113239330A (zh) 2021-06-10 2021-06-10 一种基于散列算法的反调试方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110649997.3A CN113239330A (zh) 2021-06-10 2021-06-10 一种基于散列算法的反调试方法及相关装置

Publications (1)

Publication Number Publication Date
CN113239330A true CN113239330A (zh) 2021-08-10

Family

ID=77139587

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110649997.3A Pending CN113239330A (zh) 2021-06-10 2021-06-10 一种基于散列算法的反调试方法及相关装置

Country Status (1)

Country Link
CN (1) CN113239330A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777103A (zh) * 2003-09-18 2010-07-14 苹果公司 验证计算机程序的方法、提供计算机程序的方法及其装置
CN102598017A (zh) * 2009-11-13 2012-07-18 埃德图加拿大公司 保护Java字节码代码免受恶意运行环境中的静态和动态攻击的系统和方法
CN105637516A (zh) * 2013-08-16 2016-06-01 Inka安特沃客有限公司 使用散列对动态代码的完整性进行验证的方法
US9497218B1 (en) * 2015-09-30 2016-11-15 AO Kaspersky Lab System and method for detection of phishing scripts
CN106778272A (zh) * 2016-12-27 2017-05-31 成都三零瑞通移动通信有限公司 一种对调用函数进行动态安全检测的方法
CN110175067A (zh) * 2019-03-05 2019-08-27 广东电网有限责任公司信息中心 一种移动应用立体防御方法和系统
CN110321674A (zh) * 2019-07-12 2019-10-11 北京智游网安科技有限公司 一种基于脚本程序的反调试方法、智能终端及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777103A (zh) * 2003-09-18 2010-07-14 苹果公司 验证计算机程序的方法、提供计算机程序的方法及其装置
CN102598017A (zh) * 2009-11-13 2012-07-18 埃德图加拿大公司 保护Java字节码代码免受恶意运行环境中的静态和动态攻击的系统和方法
CN105637516A (zh) * 2013-08-16 2016-06-01 Inka安特沃客有限公司 使用散列对动态代码的完整性进行验证的方法
US9497218B1 (en) * 2015-09-30 2016-11-15 AO Kaspersky Lab System and method for detection of phishing scripts
CN106778272A (zh) * 2016-12-27 2017-05-31 成都三零瑞通移动通信有限公司 一种对调用函数进行动态安全检测的方法
CN110175067A (zh) * 2019-03-05 2019-08-27 广东电网有限责任公司信息中心 一种移动应用立体防御方法和系统
CN110321674A (zh) * 2019-07-12 2019-10-11 北京智游网安科技有限公司 一种基于脚本程序的反调试方法、智能终端及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
汤战勇等: "基于进程级虚拟机的软件防篡改方法", 《华中科技大学学报(自然科学版)》 *

Similar Documents

Publication Publication Date Title
CN111052115B (zh) 取决于调用路径的认证的数据处理装置和方法
CN107169324A (zh) 一种基于动态加解密的Android应用加固方法
CN107977553A (zh) 移动应用程序的安全加固的方法及装置
EP3316160A1 (en) Authentication method and apparatus for reinforced software
JPWO2008056700A1 (ja) 改竄検出システム、改竄検出方法、改竄検出プログラム、記録媒体、集積回路、認証情報生成装置及び改竄検出装置
US10296728B2 (en) Method and system for providing cloud-based application security service
WO2002003175A2 (en) Method of detecting malicious code
US20160162686A1 (en) Method for verifying integrity of dynamic code using hash background of the invention
KR20120061405A (ko) 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법
CN112269970A (zh) 一种脚本加密方法、装置、服务器及存储介质
US9047448B2 (en) Branch auditing in a computer program
CN111324916A (zh) 一种数据销毁方法、装置、设备及可读存储介质
CN113722720A (zh) 一种系统启动方法及相关装置
CN112632536B (zh) 基于pe文件改造的内存加载方法
CN113239330A (zh) 一种基于散列算法的反调试方法及相关装置
WO2016188134A1 (zh) 一种实现应用加固的方法及装置
KR101228901B1 (ko) 파일 가공 방법과 장치, 시그너쳐 생성 방법과 장치, 이 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
CN111523885B (zh) 区块链钱包的加密多账户构造方法、计算机可读存储介质和区块链加密多账户钱包
CN112699345A (zh) 固件安全运行的方法及系统、设备及存储介质
US10020944B2 (en) Device and method for discontinuous hashing of digital data
WO2022091232A1 (ja) 監視範囲決定装置、監視範囲決定方法、及びコンピュータ可読媒体
KR102557007B1 (ko) 바이너리 파일 재구성 방법 및 그 장치
KR102425916B1 (ko) 가변 길이 퍼지 데이터를 지원하는 격자 기반 퍼지 추출 장치 및 방법
CN110324150B (zh) 数据存储方法、装置、计算机可读存储介质及电子设备
KR102398962B1 (ko) 격자 기반 퍼지 추출 장치 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20210810

RJ01 Rejection of invention patent application after publication