CTF学习——加密与解密基础 - 物联网开发 - 深圳网站建设,微信APP开发,网店装修,艺之都网络公司官网

物联网开发



CTF学习——加密与解密基础

点击数:42019-04-01 17:04:42 来源: 深圳网站建设,微信APP开发,网店装修,艺之都网络公司官网

由于Win32程序内存寻址使用的是相对简单的平坦寻址模式,并且Win32程序大量调用系统提供的API,而Win32平台上的调试器如SoftICE等恰好有针对API设置断点的强大功能,因而这些特点都给动态跟踪破解带来极大的方便。

因为程序的作者用的是高级语言,Windows又是提倡“透明 ”,不希望程序员知道底层的操作 , 而只提供给他们高层的接口, 而相当多的高级函数调用某个一定的底层函数,所以解密者经常在底层函数上下断点。所以在Windows中,只要Windows的函数被使用,想对任何寻找蛛丝马迹的人隐藏什么东西是比较困难的。
为什么要对软件进行动态分析呢?这主要是因为:
1、许多软件在整体上完成的功能,一般要分解成若干模块来完成,而且后一模块在执行时,往往需要使用其前一模块处理的结果,这一结果我们把它叫中间结果。如果我们只对软件本身进行静态地分析,一般是很难分析出这些中间结果的。而只有通过跟踪执行前一模块,才能看到这些结果。另外,在程序的运行过程中,往往会在某一地方出现许多分支和转移,不同的分支和转移往往需要不同的条件,而这些条件一般是由运行该分支之前的程序来产生的。如果想知道程序运行到该分支的地方时,到底走向哪一分支,不进行动态地跟踪和分析是不得而知的。
2、有许多软件在运行时,其最初执行的一段程序往往需要对该软件的后面各个模块进行一些初始始化工作,而没有依赖系统的重定位。
3、有许多加密程序为了阻止非法跟踪和阅读,对执行代码的大部分内容进行了加密变换,而只有很短的一段程序是明文。加密程序运行时,采用了逐块解密,逐块执行和方法,首先运行最初的一段明文程序,该程序在运行过程中,不仅要完成阻止跟踪的任务,而且还要负责对下一块密码进行解密。显然仅对该软件的密码部分进行反汇编,不对该软件动态跟踪分析,是根本不可能进行解密的。

逆向工程

对于(网络)黑客来说,“hack”是褒义词,“crack”则是贬义词,后者指那些寻找网络漏洞并进行恶意攻击的行为。
对于(软件)黑客来说,“crack”只是个中性词,泛指对程序修改的行为,更喜欢称自己为“逆向工程”学者。


  1. 逆向工程(Reverse Engineering)定义为:"the process of analyzing a subject system to identify the system's components and their interrelationships and create representations of the system in another form or at a higher level of abstraction." (Source: Chikofsky and Cross)
  2. 如果认为:
  3. “源代码 → 编译器 → 可执行程序”的过程是“顺向工程”的话;
  4. “可执行程序 → 反编译器或人工反编译 → 源代码”的过程就是逆向工程。

将逆向工程包括的内容可以分为3类:

 

1.软件使用限制的去除,或软件功能的添加
(1) 按照计算机类别,可以分为个人微型计算机、小型机、中型机、大型机等;
(2) 按照操作平台或处理器类型,可以分为windows、MAC、UNIX,x86,risc等
(3) 按照限制类型,可以分为软件使用时间限制,软件功能模块限制、软件运行条件限制(软件狗等)、软件注册限制等
(4) 可以是软件功能限制的去除,也可以是软件功能的添加。

 

2.软件源代码的再获得或二进制代码水平的Debug
(1) 按照计算机类别,可以分为个人微型计算机、小型机、中型机、大型机等;
(2) 按照操作平台,可以分为windows、MAC、UNIX等
(3) 按照软件层次,可以分为普通应用层软件与操作系统源等。

 

3.硬件的复制、模拟
由此观之,一般所谓的“软件破解”只是逆向工程中非常初级的一小部分。
坦白地讲,现在的逆向工程,真实目的就是为了再利用。据此,个人可以学习别人的编程技术及技巧,公司可以窥探别人的商业软件秘密,或开发与之兼容的软件;(二进制代码层面的)Debug自然也是其中重要的目的之一。
据说,著名的杀毒软件AVP代码写的实在太有条理,因此很容易被分析后“再利用”。有心人不仅可以将其病毒特征库改头换面后再推出,也可以利用逆向工程得到AVP某些模块的源代码,加入自己开发的产品中。

成为一个“逆向工程”大师,应该具有如下特征:
1.永远保存好奇心,崇尚自由。这能促使探索;也能抵抗商业利欲的侵袭;有了它,枯燥的代码世界才有了生气。
2.勤奋与毅力:“让我们搞清楚作为一名Cracker最需要具备的基本条件,其实那并不是扎实的汇编功底和编程基础。你可以完全不懂这些,CRACKING的秘诀就是勤奋+执着!记住并能做到这两点,你一样可以变得优秀。”
3.精通至少一门编程语言,不仅仅是Coding,更重要的是编程思想。RAD工具也许是容易学的,但你要明白隐藏在它背后的机制。
4.扎实的汇编功底和系统编程的知识。
5.能发现“美丽”。是的,你能在枯燥的二进制代码中见到美,那是数学和对称的美丽。卓越的编译器优化能力,简洁而又高效的代码,都能使你领略到她的存在。

优势

SUPERIORITY

为一流企业提供金牌网络服务

我们为客户提供一站式服务,没有最好的方案,只有最适合每个企业的设计方案……

理念

IDEA

持续追求更高品质

艺之都团队的十年,是一个典型的技术团队成长的十年。一群年轻人,追着梦想,从无到有,从痴迷小组到精英团队艺之都从成立的那一天开始永放光芒……

售前咨询
0755-33563420
免费网络问题咨询
免费网络解决方案策划
免费网站问题诊断
免费网店问题诊断
免费网站网店推广咨询
服务与支持
网站建设
微信开发
APP开发
网店装修
网站推广
网店运营
大数据服务
营销培训
服务器租赁
账号与支持
合同申请
转账付款
线下汇款
索取发票
快速入口
网站管理
备案管理
账号管理
域名信息查询
域名控制台
服务器控制台
其他服务
客户案例
新品活动
海外服务
技术论坛
注册公司
财务代理
VI设计
资源推荐
提交建议
关注艺之都网络
企业决策者必读
艺之都网络APP
艺之都微信
艺之都微博
艺之都服务中心

核心产品:  营销型网站系统  微信分销商城系统  网店运营系统  大数据精准营销系统  域名注册备案  游戏开发运营

增值服务:  工商注册  财务代理  VI设计  LOGO设计  营销策划  网站备案  短信服务  企业邮箱  WHOIS查询  网站模板  服务器维护

更多推荐:  企业线上方案  品牌线上方案  线上商城方案  社交直播方案  医疗网络方案  旅游线上方案  精准营销方案

关于艺之都    法律声明    廉政举报    荣誉查询    友情链接

艺之都网络  深圳网站建设  东莞网站建设  广州网站建设  上海网站建设  北京网站建设  南阳网站建设  【添加分公司链接】

2007-2019 yizhidou.com 版权所有粤ICP备:14099120号-3

深圳市艺之都网络科技有限公司  深圳市龙岗区坂田商业广场禾田步行街二层