- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
子程序花指令加密算法
根据反汇编器原理,分析现有的花指令加密算法存在的问题,我们提出了一种新的花指令加密算法——子程序花指令加密算法。
一、花指令加密基本原理及现状
1、花指令加密工作原理
软件破解者要想有效的破解软件,需要对程序代码进行静态分析和跟踪。花指令加密可以有效地对抗静态分析,经过花指令变换后的程序代码具有一定的反跟踪能力,能够在很大程度上增加软件破解者对程序进行分析和跟踪的难度,从而有效地保护软件的知识产权。
花指令分为可执行花指令和不可执行花指令。可执行花指令指的是能够正常运行但又不改变原始程序逻辑性的一组无用指令。这类花指令常常用在病毒代码的变形引擎中,但反汇编器能够正常反汇编这些花指令。不可执行花指令又称垃圾字节,是指被插入到原始代码中但又不改变原始程序逻辑性的一组无用字节。被插入的字节不能被执行,否则会使程序的逻辑性遭到破坏,影响程序运行的结果。根据反汇编的工作原理,当插入的最后一个或多个花指令与其后正常的指令被反汇编器识别成一条有效地指令时,就能有效地破坏反汇编器的反汇编结果。花指令加密技术就充分利用了这一特点,通过在程序代码中插入一些随机的不完整指令来破坏反汇编器的结果,达到保护软件的目的。
2、花指令加密研究现状
目前花指令加密中采用较多的一种形式是无条件跳转指令JMP加花指令脚,这种方法具有简单、易实现的优点,但存在特征码,容易被工具自动去除。另一种形式是直接在程序代码中的JMP指令后添加花指令,这种方法的优点是不存在特征码,但受代码中JMP指令个数的影响,如果JMP指令数太少,则变换效果不明显。从以上内容可以看出,目前花指令加密中采用的多是JMP及各种JMP变形后加花指令的变换方法,这种方法虽然能够在一定程度上破坏反汇编器的反汇编结果,但模糊度较低。因此要想更好的对程序进行花指令加密,就必须应用多个方法,使得产生的花指令既无固定的特征码,又具有较高的模糊度。
二、反汇编器工作原理分析
目前,大多数反汇编器使用的反汇编方法分为两类:一是线性扫描法,反汇编器从程序代码的第一个可执行字节开始依次逐个的将程序中的二进制代码反汇编成相应的汇编指令;另一种方法是递归扫描法,反汇编器沿着程序的指令执行控制流来一步一步进行反汇编,将二进制代码反汇编成相应的汇编指令。
在递归扫描中,如果在目标程序的代码中出现了跳转分支,反汇编器就会把这个分支地址记录下来,并分头反汇编各个分支中的指令。但反汇编器并不去判断分支代码正确与否,它们只是将跳转地址的代码进行反汇编。因此,如果在程序代码中加入一些伪分支,使得这些伪分支永远也不可能达到圈,然后在这些伪分支的地方加上一些花指令,那么反汇编器就会将这些花指令作为代码进行反汇编,极有可能使得添加的花指令与其后的代码结合在一起,从而扰乱整个反汇编结果。由于这种方法中,跳转伪分支的目的地址是正确的,因此这些花指令是必须要进行反汇编的,花指令也就更容易与其后的程序原代码结合在一起,扰乱反汇编器的反汇编结果。
三、子程序花指令加密算法
1、加密算法思想
在下面提出的子程序花指令加密算法中,采用了将可执行花指令与随机选择的不可执行花指令相结合的方法。通过在程序的子程序中构造伪分支,并添加一些花指令,来迷惑反汇编器,达到代码保护的目的。
子程序中的伪分支使用XOR指令和CMP指令来进行构造o XOR指令是将两个操作数进行逻辑“异或”操作的指令,它具有一个明显的特点,即:某一个数A与同一个数B进行两次“异或”操作后数值A不变,即有:
在子程序花指令加密算法中就充分利用了这一特点。通过随机插入一个数B,让B与寄存器AL数值中A进行“异或”,然后得到中间结果C,将这个C与B进行比较,如果相等就跳转到添加的花指令的位置,如果不等则跳转到添加的下一个“异或”指令,即,用C与召再进行一次“异或”操作,仍然得到原来的寄存器AL中的数值A。
伪分支就是在A与B进行了“异或”得到C之后,比较B与C的值,如果相等就跳转到labell的位置,labell的位置是添加的随机花指令;如果不等就跳转到labe12的位置,labe12的位置是添加的第二条XOR指令。只要寄存器AL中的值不为O,那么A和曰“异或”之后就永远也不可能等于日,所以labell就是一个伪分支,也就是说程序永远也不可能去执行labell处的指令,因此程序只能去执行labe12处的指令。但是由于labell处的地址是合法的目的地址,而且添加的je labell是合法的跳转指令,所以反汇编器一定要反汇编labell处的花指令,从而有可能将花指令与其后的代码结合在一起,使反汇编结果出错。
2、子程序花指令变换描述
子程序花指令加密算法变换前后:
基本加密算法概要描述如下:
(1)找到子程序调用候选块,得到子程序调用的指针p;
(2)进入子程序模块,找到M
您可能关注的文档
- 婚宴预订必需注意的8要点.doc
- 婚庆主持人培训教材.doc
- 婚庆公司的人员配置.docx
- 婚恋心理:男人不愿听女人说的6句话.doc
- 婚房装修图片效果图最精美的婚房装修图片.doc
- 婚的解释男IWL女双方自IWL愿结.doc
- 婚礼上必拍的照片清单.doc
- 婚礼上音乐的运用.doc
- 婚礼中喜糖无疑是增.doc
- 婚礼可以玩的小游戏.doc
- 2025安徽亳州市生活垃圾焚烧发电厂(亳州洁能电力有限公司)招聘40人笔试历年参考题库附带答案详解.pdf
- 2025中核投资有限公司校园招聘笔试历年参考题库附带答案详解.pdf
- 2025天津空港津广汽车销售服务有限公司招聘销售顾问笔试历年参考题库附带答案详解.pdf
- 2025山东潍坊安丘市招聘政务服务人员15人笔试历年参考题库附带答案详解.pdf
- 2025甘肃电力投资集团有限责任公司高校毕业生招聘138人笔试历年参考题库附带答案详解.pdf
- 2025内蒙古民族大学招聘临时工招聘笔试历年参考题库附带答案详解.pdf
- 2025江西赣州信丰县发展投资有限公司招聘30人笔试历年参考题库附带答案详解.pdf
- 2025甘肃秦融文化传媒有限公司招聘2人笔试历年参考题库附带答案详解.pdf
- 2025聊城市茌平区高铁建设发展有限公司公开招聘工作人员笔试及人选笔试历年参考题库附带答案详解.pdf
- 2025年综合类-水利部质量检测员考试-水泵检修工考试历年真题摘选带答案(5套合计100道单选).docx
最近下载
- 上市公司数据资产入表案例分析与启示.pptx VIP
- 《工贸企业有限空间作业安全规定》(应急管理部13号令)培训.pptx VIP
- 应收账款账期到期提醒台账模板.xlsx VIP
- 《中华人民共和国民用航空法》培训解读课件.pptx VIP
- 02《红楼梦》整本书阅读回目自测(21-40回)(分层练习)-2024-2025学年高一语文同步精品讲练(统编版必修下册)解析版.docx VIP
- 防护棚安全通道搭设施工方案1.docx VIP
- 街区市集规划案.pptx VIP
- 污水零直排运维台账.docx VIP
- 2025年重庆市永川区社区工作者招聘考试笔试试题(含答案).pdf
- 安全生产治本攻坚三年行动PPT课件.pptx VIP
文档评论(0)