基本常识

2023-12-09 07:08
文章标签 基本常识

本文主要是介绍基本常识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

软件保护与解密

软件的破解技术与保护技术是矛与盾的关系,它们是在相互斗争中发展进步的。两者在技术上的较量归根到底是一种利益的冲突。软件开发者为了维护自身的商业利益,不断地寻找各种有效的技术来保护自身的软件版权,推迟软件被破解的时间;而破解者则受盗版所带来的高额利润的驱使或处于纯粹的个人兴趣,而不断开发新的破解工具,针对新出现的保护方式进行跟踪分析以找到相应的破解方法。从理论上讲,几乎没有破解不了的保护。软件保护方式的设计应在一开始就作为软件开发的一部分来考虑,选择一个平衡点。

在桌面操作系统中,微软的产品自然是独霸天下,一般个人用户接触最多,研究的自然也更多。在DOS时代就有了不少较好的软件保护技术,而在DOS中使用的最多的恐怕要算软盘指纹防拷贝技术了。由于DOS操作系统的脆弱性,在其中运行的普遍应用程序几乎可以访问系统中的任何资源,如直接访问任何物理内存,直接读写任何磁盘扇区,直接读写任何I/O端口等,这给软件保护着提供了极大的自由度,是其可以设计一些至今仍为人们称道的保护技术;自W

indows95开始(特别是WindowsNT和Windows2000这样严格意义上的多用户操作系统),操作系统利用硬件特性增强了对自身的保护,将自己运行在Ring 0 特权级中,使得软件保护技术在一定程度上受到一些限制。开发者要想突破Ring 3的限制,一般需要编写驱动程序,如读写并口上的软件狗的驱动程序等,这增加了开发难度和周期,自然也增加了成本。由于Win32程序内存寻址使用的是相对简单的平坦寻址模式(其采用的PE文件格式也相应地比以前的16为EXE程序的格式要容易处理一些),并且Win32程序大量调用系统提供的API,而Win32平台上的调试器如SoftICE等恰好有针对API设置断点的强大功能,因而这些特点都给跟踪破解带来极大的方便。

软件分析技术

静态分析技术

所谓静态分析即从反汇编出来的程序清单上分析,最常用的方法是从提示信息入手。日前,大多数软件在设计时,都采用人机对话方式。所谓人机对话,即在软件运行过程中需要由用户选择或输入的地方,软件即显示相应的提示信息,并等待用户的选择或输入。然后根据用户的选择或输入,出现一串提示信息,以反映是正确运行还是出现错误,并给出相应的提示消息,或帮助信息。为此,如果对静态反汇编出来的程序清单进行阅读,通过显示提示信息的程序段,就可知道在显示提示信息前后的程序片段所完成的功能,从而宏观了解软件的编程思路。以前常用的静态分析工具是W32Dasm , IDA 和HIEW 等,现在的网上的很多,而且W32Dasm 的最新版本提供了更加强大的功能。

动态分析技术

虽然从静态上可以了解各个模块的功能以及整个软件的编程思路,但是,并不可能真正地了解软件中各个模块的技术细节。对于被分析的软件来说,静态分析只是工作的第一步,动态跟踪是分析软件的关键所在。所谓动态跟踪主要是指利用SoftICE或TRW2000等调试工具,一步步跟踪分析。

1、对软件进行粗跟踪

所谓粗跟踪,即在跟踪时要大块快地跟踪。也就是说,每次遇到调用指令CALL,重复操作指令REP,循环操作指令LOOP以及中断调用指令INT等,一般不要跟踪进去,而是根据执行结果分析该段程序的功能。在此设置断点是很重要的环节,如何合理的设置中断断点呢?这就需要了解Win32 API函数了,根据当时的情况选择合适的断点,如拦截对话框,一般对话框是调用MessageBoxa函数来实现的,就可用此函数设断点,程序一调用此函数就被中断。

2、对关键部分进行细跟踪

对软件进行了一定程度的粗跟踪之后,便可获取软件中我们所关心的模块或程序段。这样就可以有针对行地对该模块紧系具体而详细的跟踪分析。一般情况下,对关键代码跟踪可能要反复进行若干此才能读懂该程序,每次要把比较关键的中间结果或者指令地址记录下来,这样会对下一次分析有很大的帮助。

看了上面的基本的分析思路,是不是对软件分析有了一定的了解呢,呵呵,其实软件分析是一种比较复杂和艰辛的工作,若要积累软件分析的经验,需要在实践中不断地探索和总结。

这篇关于基本常识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/472915

相关文章

软件缺陷因素及基本常识

目录 缺陷的因素 测试常见的基本常识 测试是不完全的(测试不完全)  测试具有免疫性(软件缺陷免疫性)  测试是 “ 泛型概念 ” (全程测试)  80-20 原则  为效益而测试  缺陷的必然性  软件测试必须有预期结果  软件测试的意义 - 事后分析  结论  软件开发和使用的历史已经留给了我们很多由于软件缺陷而导致的巨大财力、物力损失的经验教训。这些经验教训迫使我

Linux操作系统的基本常识详解

转自:Linux操作系统的基本常识详解Linu_操作系统或许你很熟悉,但是你对Linu_操作系统的基本常识又认识多少呢?下面由小编为大家整理了Linu_操作系统的基本常识详解的相关知识,希望对大家有帮助!  Linu_操作系统的基本常https://www.pinlue.com/article/2020/06/2300/2510789845813.html

关于电弧焊的一些基本常识

电弧:一种强烈而持久的气体放电现象,正负电极间具有一定的电压,而且两电极间的气体介质应处在电离状态。引燃焊接电弧时,通常是将两电极(一极为工件,另一极为填充金属丝或焊条)接通电源,短暂接触并迅速分离,两极相互接触时发生短路,形成电弧。这种方式称为接触引弧。电弧形成后,只要电源保持两极之间一定的电位差,即可维持电弧的燃烧。 电弧特点:电压低、电流大、温度高、能量密度大、移动性好等,一般20~30V的

jvm基本常识

文章目录 JVM基本常识程序的执行方式字节码和机器码的区别JDK、JRE、JVM的关系Oracle JDK与OpenJDK查看JDK版本OpenJDK 的来历Oracle JDK的来历Oracle JDK与OpenJDK的区别 VM和Hotspot的关系JVM和Java的关系JVM的运行模式 JVM基本常识 程序的执行方式 主要有三种:静态编译执行、动态编译执行、动态

JVM基本常识了解

1,JVM : Java Virtual Machine java虚拟机,实现跨平台工作的根本原因 2,JRE:Java Runtime Environment :Java运行时环境 整体来说属于运行时阶段 JVM分成三大块: 类加载模块,内存管理模块,执行引擎模块。 JVM两个版本:1,hotspot(商业)    2,openjdk(开源) 软件执行的技术支持: 硬件的支持:

JAVA基础学习——基本常识

一下大多数内容来自尚学堂:www.sxt.cn 只是供自己学习,留做笔记,侵删。 DAY one 常用的dos命令 操作名称操作含义md创建目录dir列出当前目录下的文件以及文件夹cd删除目录cd…退回到上一级目录cd\退回到根目录del删除文件echo创建文件,如echo haha>1.txt 注: 1.如果del后面接的是目录名,则表示删除目录下的所有文件。 知识点 1.Java语

关于CHROOT的基本常识

CHROOT就是Change Root,也就是改变程式执行时所参考的根目录位置。 一般的目录架构: / /bin /sbin /usr/bin /home CHROOT的目录架构: /hell/ /hell/bin /hell/usr/bin /hell/home * 为何要CHROOT? 1.限制被CHROOT的使用者所能执行的程式,如SetUid的程式,或是会造成 Load 的Compile

挑选POE交换机的基本常识

交换机除开一般交换机外也有POE交换机,POE交换机关键用于给POE机器设备开展供电,免除繁杂的计算机设备供电布线,完成的更为便捷无线网络覆盖,那麼,大家怎样选择一款最合适的交换机尤为重要。                         一、如何选择适合的PoE交换机? 1、选择PoE交换机知名品牌 现阶段销售市场可供选择的牌子许多,海外的知名品牌主要特点是性能卓越高价钱,性价比高不高,

Linux基本常识

目录 0.大数据相关的Linux重点内容概要 1.什么是操作系统? 2.什么是Linux? 3.Linux产生的背景 4.Linux的特点 5.Linux操作系统体系结构 6.Linux内核和发行版 7.VMware安装 8.VMware中安装CentOS 9.Linux文件系统 10.Linux的目录结构 0.大数据相关的Linux重点内容概要 了解Linux基本常