一、Java软件加密基本思路
对于应用软件的保护笔者从两个方面进行考虑,第一是阻止盗版使用软件,第二是阻止竞争对手对软件反编译,即阻止对软件的逆向工程。
1、阻止盗版
在软件运行时对自身存在的合法性进行判断,如果认为自身的存在和运行是被授权的、合法的,就运行;否则终止运行。这样即使软件可以被随意复制,只要盗版用户没有相应的授权信息就无法使用软件。
2、阻止反编译
对编译产生的Class文件加密处理,并在运行时进行解密,解密者无法对软件进行反编译。
二、Java软件加密的总体流程
为了保护用Java语言开发的软件,我们设计并实现了一个实用、高强度的加密算法。以下称需要保护的Java软件为“受保护程序”,称对“受保护程序”进行加密保护的软件为“加密程序”。对软件加密保护的流程如图1所示。
三、加密算法分析设计
1、用户信息提取器设计
为了防止用户发布序列号而导致“一次发行,到处都是”的盗版问题,提取用户机器中硬件相关的、具有唯一性的信息——用户计算机的硬盘分区C的序列号,并要求用户将此信息与用户名一起返回,之后用“序列号生成器”根据用户返回信息生成一个唯一合法的软件注册序列号发回用户,用户即可使用此号码注册使用软件。
这个信息提取器使用Winclows 32汇编以一个独立的小程序方式实现,程序代码如图2所示。
2、序列号生成器与序列号合法性判断函数的设计
序列号生成器与序列号合法性判断函数中运用RSA加密算法。在序列号生成器中是使用私钥将用户返回的信息(硬盘序列号,用户名)进行加密得到相应的注册序列号;在序列号合法性判断函数中使用私钥将用户输入的注册序列号解密,再与(硬盘序列号,用户名)进行比较,一致则调用程序装载器将程序其他部分解密装入内存,初始化删环境并运行程序主体;否则退出。
RSA加密算法的实现需要使用大数运算库,我们使用MIRACL大数库来实现RSA计算,序列号生成器的主要代码如下:
char szlnputString[]=”机器码和用户名组成的字符串”;
char szSerial[256]=[0];//用于存放生成的注册码
bign,d,c,m; //MIRACL中的大数类型
mip→IBASE=16; //以16进制模式
n= mlrvar(0); //初始化大数
d= mirvar(0);
c= mirvar(0); //C存放输入的字符串大数
m= mlrva(o);
bytes to big( len, szlnputString,c);
//将输入字符串转换成大数形式并存入变量c中
cinstr(n,”以字符串形成表示的模数”);//初始化模数
cinstr(d,”以字符串形成表示的公钥”)://初始化公钥
powmod(c,d,n,m); //计算m=cdmod n
cotstr(m,szSerial);//m的16进制字符串即为注册码
序列号合法性检测函数的主要代码如下:
char szlnputStringL]=”机器码和用户名组成的字符串”;
char szSerial[ 256]=”用户输入的序列号”
bign,e,c,m; //MIRACL中的大数类型
mip→IBASE=16; //以16进制模式
cinstr(m,szSerial); //将序列号的16进制转成大数形式
cinstr(n,”模数n的字符串形式”);//初始化模数n
cinstr(e,”字符串形式的公钥”);//初始化公钥
if compare(m,n)==-1) //m<n时才进行解密
{
powmod(m,e,n,c);//计算m=me mod n
big_to _bytes(0,c,szSerial,0); //转为字符串
return lstrcmp( szlnputString,szSerial);
}
3、强耦合关系的设计
如果在序列号合法性检测函数中简单地使用图3所示流程:
解密者可以使用以下几种手段进行攻击:
(1)修改“判断合法性子函数”的返回指令,让它永远返回正确值,这样可以使用任意的序列号,安装/使用软件。
(2)修改判断后的跳转指令,使程序永远跳到正确的分支运行,效果和上一种一样。
(3)在“判断合法性子函数”之前执行一条跳转指令,绕过判断,直接跳转到“正常执行”分支运行,这样可以不用输入序列号安装/使用软件。
为阻止以上攻击手段,笔者在程序中增加了“序列号合法性检测函数”与程序其他部分“强耦合”(即增强其与程序其他部分的关联度,成为程序整体密不可分的一部分,一旦被修改程序将无法正常工作)的要求(见图1),并且设置一个“完整性检测函数”用于判断相关的代码是否被修改过。当然,基于同样的原因,“完整性检测函数”也必须与程序其他部分存在“强耦合”关系。
强耦合关系通过以下方式建立:
在程序其他部分的函数(例如函数A)中随机的访问需要强耦合的“序列号合法性检测函数”和“完整性检测函数”,在调用时随机的选择使用一个错误的序列号或是用户输入的序列号,并根据返回结果选择执行A中正常的功能代码还是错误退出的功能代码,流程如图4所示。
经过这种改进,如果破解者通过修改代码的方式破解将因“完整性检测”失败导致程序退出;如果使用SMC等技术绕过“序列号合法性判断函数”而直接跳至序列号正确时的执行入口,在后续的运行中,将因为随机的耦合调用失败导致程序退出。破解者要破解软件将不得不跟踪所有进行了耦合调用的函数,这显然是一个艰巨的任务。
4、完整性检测函数的设计
我们使用CRC算法算出需进行完整性检测的文件的校验码,并用RSA加密算法的公钥(不同于序列号合法性检测中的公钥/私钥对)将其加密存放在特定的文件中,在检测时先用CRC算法重新生成需进行完
整性检测的文件的校验码,并用私钥将保存的校验码解密,两者相比较,相等则正常运行;否则退出。
5、程序加载器的设计
与编译成机器码执行的程序不同,Java程序只能由Java虚拟机解释执行,因此程序加载器的工作包括:初始化Java虚拟机;在内存中解密当前要运行的class文件;使解密后的c:lass文件在虚拟机中运行,在
需要时解密另一个class文件。图5是用于初始化JVM的代码:
以上介绍了我们设计的针对Java软件的加密保护方法,其中综合运用了多种加密技术,抗破解强度高;使用纯软件保护技术,成本低。经笔者在Windows系列平台上进行测试,运行稳定,效果良好。
在研宄开发过程中,我们还总结出加密保护软件的一些经验:
1、对关键代码和数据要静态加密,再动态解密执行;要结合具体的工作平台使用反跟踪/调试技术;
2、要充分利用系统的功能,如在Windows下使用DLL文件或驱动程序形式能得到最大的丰又限,可以充分利用系统具有的各种功能;
3、如果可能应该将关键代码存放在不可禚复制的地方;
4、序列号要与机器码等用户信息相关以阻止盐复布序列号;
5、加密流程的合理性比加密算法本身的强度更重要。
2. 怎么防止软件被破解
首先要防止被写出注册机,你的软件的注册机一旦被发表,那你完全有理由做成免费软件了。防止被写出注册机最简单的方法就是保护你的校验算法,具体的做法就是千万别使用校验函数,把你的校验算法嵌入功能代码里是比较保险的,这样破解者至少要花很多精力去研究那一部分是校验算法。当然这还不够,你还可以把检验算法分散到2个地方,当然更多地方效果会更好,只是将来代码维护起来会很麻烦的。我想如果不是象WinZIP、ACDsee这样的大牌软件,很少会有人去找出检验算法了(太头疼了)。做完了这些,你还可以用Aspack,upx之类的压缩执行文件工具做进一步的保护。完了吗?还没有,我这里还有一些更用的东西。现在的脱壳工具太多了,可以说是没有脱不掉的壳。那怎么办?我这里有一段Delphi5代码更进一步的保护你的软件:procere TForm1.FormCreate(Sender: TObject); Var exefile :file of byte; ConstStr:byte; begin AssignFile(exefile, Application.ExeName); reset(exefile); filemode := 0; //读写属性设置为只读,这样才不会出错! seek(exefile,5); //exe文件的第5+1个位置(自己设要查找的位置) Read(exefile,ConstStr); //showmessage(inttostr(ord(constmi)));//看看实际是多少(假定为56) closefile(exefile); if ConstStr <> chr(56) then exit;//如果第5+1个位置的值不是56退出(说明你的软件被改动了) end; 这段代码随时随地都可以加入,真的非常方便。不过你要注意的是,万一用户的机器染上了病毒怎么办。保护了检验算法,还要保护什么呢?校验算法只是让Cracker很难写出注册机,但是这还防止不了软件被破解(也就是常说的暴破)。暴破的原理很简单:你的软件写完后编译成可执行文件,当Cracker得到这个软件就可以进行反编译,得到汇编代码。你的那段“If 检验不成功 Then ...”,就变成了cmp xx,xx,jp xx,xx。稍微改动一下变成cmp xx,xx,rop,rop,rop,rop。整个前面的校验算法也就作废了。我想应该是没有太好的方法,只是千万不要用明文比较。再想保护深一点就加入一些冗余代码,让Cracker在这堆代码里转的头晕脑涨,你的目的就达到了。 最后,有些话不吐不快。1.(引用别人:)加密是救不了共享软件业的!在好的加密技术也有人能解开的!与其花费时间去加密,不如把自己软件的功能增强些!这样可能会有更多的人支持您的!!(整天跳出窗口是谁也烦了)! 2.我认为Cracker们其实挺可爱。
3. Android 12 兼容之行为变更
Android 12 平台包含一些行为变更,这些变更可能会影响您的应用。以下行为变更将影响在 Android 12 上运行的 所有应用 ,无论采用哪种 targetSdkVersion 都不例外。您应该测试您的应用,然后根据需要进行修改,以适当地支持这些变更。
此外,请务必查看 仅影响以 Android 12 为目标平台的应用的行为变更 列表。
在搭载 Android 12 及更高版本的设备上, 滚动事件 的视觉行为发生了变化。
在 Android 11 及更低版本中,滚动事件会使视觉元素发光。在 Android 12 及更高版本中,发生拖动事件时,视觉元素会拉伸和反弹;发生快速滑动事件时,它们会快速滑动和反弹。
如需了解详情,请参阅 动画演示滚动手势 指南。
如果您之前在 Android 11 或更低版本中实现了自定义启动画面,则需要将您的应用迁移到 SplashScreen API,以确保它从 Android 12 开始正确显示。如果不迁移您的应用,则可能会导致应用启动体验变差或出乎预期。
如需了解相关说明,请参阅 将现有的启动画面实现迁移到 Android 12 。
此外,从 Android 12 开始,在所有应用的 冷启动 和 温启动 期间,系统始终会应用新的 Android 系统默认启动画面 。 默认情况下,此系统默认启动画面由应用的启动器图标元素和主题的 windowBackground (如果是单色)构成。
如需了解详情,请参阅 启动画面开发者指南 。
从 Android 12(API 级别 31)开始,仅当您的应用获准处理某个通用网络 intent 中包含的特定网域时,该网络 intent 才会解析为应用中的 activity。如果您的应用未获准处理相应的网域,则该网络 intent 会解析为用户的默认浏览器应用。
应用可通过执行以下某项操作来获准处理相应的网域:
如果您的应用调用网络 intent,不妨考虑添加一个提示或对话框,要求用户确认操作。
Android 12 整合了现有行为,让用户可以 在沉浸模式下更轻松地执行手势导航命令 。此外,Android 12 还为 粘性沉浸模式提供了向后兼容性行为 。
Android 设备有许多不同的外形规格,如大屏设备、平板电脑和可折叠设备。为了针对每种设备适当地呈现内容,您的应用需要确定屏幕或显示屏尺寸。随着时间的推移,Android 提供了不同的 API 来检索这些信息。在 Android 11 中,我们引入了 WindowMetrics API 并废弃了以下方法:
在 Android 12 中,我们继续建议使用 WindowMetrics ,并且正在逐步废弃以下方法:
为了缓解应用使用 Display API 检索应用边界的行为,Android 12 限制了 API 为不完全可调整大小的应用返回的值。这可能会对将此信息与 MediaProjection 一起使用的应用产生影响。
应用应使用 WindowMetrics API 查询其窗口的边界,并使用 Configuration.densityDpi 查询当前的密度。
为了与较低的 Android 版本实现更广泛的兼容性,您可以使用 Jetpack WindowManager 库,它包含一个 WindowMetrics 类,该类支持 Android 4.0(API 级别 14)及更高版本。
首先,确保应用的 activity 完全可调整大小 。
activity 应依赖于来自 activity 上下文的 WindowMetrics 来执行任何与界面相关的工作,尤其是 WindowManager.getCurrentWindowMetrics() 或 Jetpack 的 WindowMetricsCalculator.computeCurrentWindowMetrics() 。
如果您的应用创建了 MediaProjection ,则必须正确地调整边界的大小,因为投影会捕获运行投影仪应用的显示分区。
如果应用完全可调整大小,则 activity 上下文会返回正确的边界,如下所示:
如果应用并非完全可调整大小,则它必须从 WindowContext 实例进行查询,并使用 WindowManager.getMaximumWindowMetrics() 或 Jetpack 方法 WindowMetricsCalculator.computeMaximumWindowMetrics() 检索 activity 边界的 WindowMetrics 。
注意 :任何使用 MediaProjection 的库也应遵循这些建议,并查询相应的 WindowMetrics 。
Android 12 将多窗口模式作为标准行为。
在大屏设备 (sw >= 600dp) 中,所有应用都将在多窗口模式下运行,无论应用配置为何。如果 resizeableActivity="false" ,应用会在必要时进入兼容模式,以适应显示屏尺寸。
在小屏设备 (sw < 600dp) 中,系统会检查 activity 的 minWidth 和 minHeight ,来确定 activity 能否在多窗口模式下运行。如果 resizeableActivity="false" ,则无论最小宽度和高度如何,应用都无法在多窗口模式下运行。
如需了解详情,请参阅 多窗口模式支持 。
相机应用通常假定设备的屏幕方向和相机预览的宽高比呈固定关系。但是,大屏设备类型(例如可折叠设备)和显示模式(例如多窗口和多屏幕)挑战着这一假设。
在 Android 12 上,请求特定屏幕方向且不可调整大小 ( resizeableActivity="false" ) 的相机应用会自动进入边衬区人像模式,从而确保相机预览的屏幕方向和宽高比正确。在可折叠设备和其他具有相机硬件抽象层 ( HAL ) 的设备上,会对相机输出应用额外的旋转以补偿相机传感器方向,并会剪裁相机输出以匹配应用相机预览的宽高比。无论设备屏幕方向如何以及设备是处于折叠状态还是展开状态,剪裁和额外的旋转可确保应用正确呈现相机预览。
除了 一些例外情况 之外,为了为短时间运行的 前台服务 提供流畅体验,搭载 Android 12 或更高版本的设备可以将前台服务通知的显示延迟 10 秒。此更改使某些短期任务可在显示通知之前完成。
Android 11(API 级别 30)引入了 受限存储分区 作为应用待机模式存储分区。从 Android 12 开始,此存储分区默认处于活跃状态。在所有存储分区中,受限存储分区的优先级最低(限制最高)。存储分区按优先级从高到低的顺序排列如下:
除了使用模式之外,系统还会考虑应用的行为,以决定是否要将您的应用放在受限存储分区中。
如果您的应用更负责地使用系统资源,就不太可能被放在受限存储分区中。此外,如果用户直接与您的应用互动,系统会将其放在一个限制较少的存储分区中。
如需检查系统是否已将您的应用放在受限存储分区中,请调用 getAppStandbyBucket() 。如果此方法的返回值为 STANDBY_BUCKET_RESTRICTED ,则您的应用在受限存储分区中。
如需测试您的应用在系统将其放在受限存储分区中时的行为,您可以手动将您的应用移至该存储分区。为此,请在终端窗口中运行以下命令:
在搭载 Android 12 或更高版本的受支持设备上,用户可以通过按一个切换开关选项,为设备上的所有应用启用和停用摄像头和麦克风使用权限。用户可以从 快捷设置 访问可切换的选项(如图 1 所示),也可以从系统设置中的“隐私设置”屏幕访问。
详细了解这些 切换开关 以及如何检查您的应用是否遵循了关于 CAMERA 和 RECORD_AUDIO 权限的最佳实践。
在搭载 Android 12 或更高版本的设备上,当应用使用麦克风或相机时,图标会出现在状态栏中。
详细了解这些 指标 以及如何检查您的应用是否遵循了关于 CAMERA 和 RECORD_AUDIO 权限的最佳实践。
[图片上传中...(image-bd519-1643780883994-1)]
<figcaption style="box-sizing: inherit; font-size: 14px; margin-top: -4px;"> 图 1. “快捷设置”中的麦克风和摄像头切换开关。</figcaption>
[图片上传中...(image-f49bfd-1643780883994-0)]
<figcaption style="box-sizing: inherit; font-size: 14px; margin-top: -4px;"> 图 2. 麦克风和摄像头指示标志,显示了最近的数据访问。</figcaption>
在搭载 Android 12 或更高版本的设备上,根据应用对其他应用的 软件包可见性 ,以 Android 11(API 级别 30)或更高版本为目标平台且调用以下某种方法的应用会收到一组过滤后的结果:
Android 12 移除了之前弃用的加密算法的许多 BouncyCastle 实现,包括所有 AES 算法。系统改用这些算法的 Conscrypt 实现。
如果符合以下任何条件,则此变更会影响您的应用:
在 Android 12 及更高版本中,当某个应用首次调用 getPrimaryClip() 以 从另一个应用访问剪辑数据 时,会弹出一个消息框消息,通知用户对剪贴板的访问。
消息框消息内的文本包含以下格式: <var translate="no" style="box-sizing: inherit; color: var(--devsite-var-color); -webkit-font-smoothing: auto; font-weight: 500;">APP</var> pasted from your clipboard.
注意 :您的应用可能会调用 getPrimaryClipDescription() 以接收有关 剪贴板上当前数据的信息 。当您的应用调用此方法时,系统不会显示消息框消息。
在 Android 12 及更高版本中, getPrimaryClipDescription() 可以检测到以下详细信息:
为了加强用户与应用和系统互动时的控制,从 Android 12 开始,弃用了 ACTION_CLOSE_SYSTEM_DIALOGS intent 操作。除了 一些特殊情况 之外,当应用尝试 调用包含此操作的 intent 时,系统会基于应用的目标 SDK 版本执行以下操作之一:
在以下情况下,应用仍然可以在 Android 12 或更高版本上关闭系统对话框:
为了维持系统安全并保持良好的用户体验,Android 12 会阻止应用使用 触摸事件 ,使用触摸事件时叠加层会以不安全的方式遮掩应用。 换言之,系统会屏蔽穿透某些窗口的触摸操作,但 有一些例外情况 。
此变更会影响选择让触摸操作穿透其窗口的应用,例如使用 FLAG_NOT_TOUCHABLE 标志。包括但不限于以下示例:
在以下情况下,允许执行“穿透”触摸操作:
如果系统屏蔽触摸操作, Logcat 会记录以下消息:
在搭载 Android 12 或更高版本的设备上,不受信任的触摸功能默认被屏蔽。如需允许不受信任的触摸操作,请在终端窗口中运行以下 ADB 命令 :
如需将行为还原为默认设置(不受信任的触摸操作被屏蔽),请运行以下命令:
Android 12 更改了在按下“返回”按钮时系统对为其任务根的启动器 activity 的默认处理方式。在以前的版本中,系统会在按下“返回”按钮时完成这些 activity。在 Android 12 中,现在系统会将 activity 及其任务移到后台,而不是完成 activity。当使用主屏幕按钮或手势从应用中导航出应用时,新行为与当前行为一致。
注意 :系统仅会将新行为应用于为其任务根的启动器 activity,即使用 ACTION_MAIN 和 CATEGORY_LAUNCHER 声明 intent 过滤器 的 activity。对于其他 activity,在按下“返回”按钮时,系统会像以前一样完成 activity。
对于大多数应用而言,此变更意味着使用“返回”按钮退出应用的用户可以更快地从 温状态 恢复应用,而不必从 冷状态 完全重启应用。
建议您针对此变更测试您的应用。如果您的应用目前替换 onBackPressed() 来处理返回导航并完成 Activity ,请更新您的实现来调用 super.onBackPressed() 而不是完成 Activity。调用 super.onBackPressed() 可在适当时将 activity 及其任务移至后台,并可为不同应用中的用户提供更一致的导航体验。
另请注意,通常,我们建议您使用 AndroidX Activity API 提供自定义返回导航 ,而不是替换 onBackPressed() 。如果没有组件拦截系统按下“返回”按钮,AndroidX Activity API 会自动遵循适当的系统行为。
在 Android 12 中,无论显示屏是否支持无缝过渡到新的刷新率,都会发生使用 setFrameRate() 实现的刷新率变化;无缝过渡是指没有任何视觉中断,比如一两秒钟的黑屏。以前,如果显示屏不支持无缝过渡,它在调用 setFrameRate() 后通常会继续使用同一刷新率。您可以调用 getAlternativeRefreshRates() 来提前确定向新刷新率的过渡是否有可能是无缝过渡。通常,会在刷新率切换完成后调用回调 onDisplayChanged() ,但对于某些外接显示屏,会在非无缝过渡期间调用该回调。
以下示例说明了您可以如何实现此行为:
Android 12 中添加了以下 API:
如需创建 Passpoint 建议,应用必须使用 PasspointConfiguration 、 Credential 和 HomeSp 类。这些类描述了 Wi-Fi Alliance Passpoint 规范 中定义的 Passpoint 配置文件。
如需了解详情,请参阅 适用于互联网连接的 Wi-Fi 建议 API 。
Android 12 包含更新后的受限制非 SDK 接口列表(基于与 Android 开发者之间的协作以及最新的内部测试)。在限制使用非 SDK 接口之前,我们会尽可能确保有可用的公开替代方案。
如果您的应用并非以 Android 12 为目标平台,其中一些变更可能不会立即对您产生影响。然而,虽然您目前仍可以使用一些非 SDK 接口( 具体取决于应用的目标 API 级别 ),但只要您使用任何非 SDK 方法或字段,终归存在导致应用出问题的显着风险。
如果您不确定自己的应用是否使用了非 SDK 接口,则可以 测试您的应用 来进行确认。如果您的应用依赖于非 SDK 接口,您应该开始计划迁移到 SDK 替代方案。然而,我们知道某些应用具有使用非 SDK 接口的有效用例。如果您无法为应用中的某项功能找到使用非 SDK 接口的替代方案,应 请求新的公共 API 。
如需详细了解此 Android 版本中的变更,请参阅 Android 12 中有关限制非 SDK 接口的更新 。如需全面了解有关非 SDK 接口的详细信息,请参阅 对非 SDK 接口的限制 。
4. 如何在局域网中禁用一些电脑的某些应用软件。如QQ,MSN等
WorkWin限制专家(单机版)——禁止QQ聊天 禁止下载
WorkWin限制专家能够:
禁止QQ,禁用QQ,禁止QQ登陆,禁止员工上QQ,禁止使用QQ聊天,禁止QQ运行
禁止新浪UC聊天,禁止MSN聊天,禁止淘宝旺旺聊天,禁止网易泡泡聊天
禁止使用电影播放器看电影,禁止下载文件,禁止乱动机器设置
禁止擅自安装软件,有效拦截99%的已知和未知黄色网页
可以设置为只允许访问哪几个网站,可以设置不允许访问哪几个网站
WorkWin限制专家也可以被设置为禁止BT等P2P软件的运行
管理员可以定义不希望出现的窗口,可以定义要禁止哪些程序运行
WorkWin限制专家有效规范员工行为,提高工作效率,保障网络安全
您还在为员工工作时间上QQ聊天,乱下载文件,看电影,乱安装软件,上黄色站点,工作效率低下而发愁吗?WorkWin限制专家也许是最好的选择!WorkWin限制专家拥有禁止使用QQ等所有聊天工具,反黄,禁止在线播放电影,网页内容过滤等30多个功能。WorkWin限制专家广泛适合应用公司、企业、政府、军队、学校等一切办公用途的电脑。WorkWin限制专家是划时代的办公领域里程碑式的软件产品,通过互联网以共享软件的模式发布和推广、销售。WorkWin限制专家广泛适合应用公司、企业、政府、军队、学校等一切办公用途的电脑。 WorkWin限制专家具备如下功能:禁止QQ登陆,禁止员工上QQ,禁止使用QQ聊天,禁止QQ运行,禁止QQ聊天,禁止新浪UC聊天,禁止MSN聊天,禁止淘宝旺旺聊天,禁止网易泡泡POPO聊天,可以禁止一切聊天工具运行,禁止登陆聊天室,可以禁止使用RealPlayer电影播放器,禁止使用Windows Media Player,禁止使用RealOne电影播放器播放电影,禁止在线播放功能可以禁止观看网页形式的在线播放电影。WorkWin限制专家的禁止下载功能可以禁止下载文件,禁止添加/删除程序,禁止打开控制面板,禁止运行注册表编辑器,禁止安装程序运行,禁止安装软件,可以禁止修改系统时间。WorkWin限制专家同时具备强大的反黄功能,对网页内容进行过滤分析采用哥伦比亚大学M.Ro博士的WeSCgf.Te3语义分析算法,精度高,漏网率低、误杀率低;有效拦截99%的已知和未知黄色网页,能同时对简体中文、繁体中文、英、韩、日、西、德、法、俄语言网站进行拦截过滤;WorkWin限制专家可以自行设置禁止访问某网站,可以被设置为只允许访问某网站(访问其他网站,自动关闭),可以用自定义关键字检查网页内容,当访问的网页内容包含被禁止的词语时,则自动关闭。WorkWin限制专家也可以被设置为禁止BT等P2P软件的运行,管理员可以定义不希望出现的窗口,可以定义要禁止哪些程序运行。 WorkWin限制专家是绿色软件,无需安装即可使用。上面所有功能的限制与否都可以由管理员自己设置。程序安装和运行后无任何痕迹,WorkWin限制专家采用双进程隐藏运行,不论在win98,win2000,还是在winxp下,不论通过任务管理器还是任何工具,没有密码,谁也无法关闭或删除WorkWin限制专家。IT时代办公室科学管理从WorkWin限制专家开始。 成功自信并轻松的企业信息主管从WorkWin限制专家开始!
5. 怎样彻底的!!!!屏蔽流氓软件!!!!!!!!!!!!!
唉--LZ啊!
说几个概念先
屏蔽 是什么意思 :屏蔽就是阻止不让其发挥作用.
防御 免受侵扰
清理 已经存在的删除
我想LZ的意思是三者结合吧
先说 1清理
对于我们普通用户来讲
都是通过软件来实现的
这里 我推荐广为大家认同的四个个软件
360安全卫士+windows流氓软件清理大师+恶意软件清理助手+超级兔子
操作原理基本相同,都是扫描系统已经存在,且他们记录的流氓软件
www.crsky.com 和 www.skycn.com 有下载
我是三者结合使用的,因为他们的算法不一样,这个软件扫出来,那个软件不一定扫的出来,起码我测试得出了这个结果
扫描很快的.....所以三者结合使用 没有问题
2屏蔽和过滤
这我要多道了,观点和大家不太一样~~
目前我所知道的有两款软件 kv2007 和 upiea
kv2007的完美破解还有 所以 只有采用 upiea
这是个很小的绿色东东 www.crsky.com 和 www.skycn.com 也有下载
说是屏蔽,其实~~~~没多大用啊!不信你自己测试 用上面的那个软件 照样扫出来!
不过我也一直再用 运行也很快的,也不在乎这一个了,
我是把这些软件都运行个便~~~呵呵
所以 做到屏蔽 软件几乎没有这样的功能
在此我要说的杀毒软件 是有监控功能的,而且很多是监控注册表
在安装过程中 那些是恶意软件同样查得出来 会给出来提示的,这也算屏蔽和过滤吧~~~
3防御
我要说的是,小心+再小心
软件有防御功能么~~~有防御恶意软件的软件么???
除去杀毒软件外(只上面说的屏蔽功能),没有!所有的对付恶意软件的软件 都是清理!
所以我说 要小心再小心 就是小心,不要安装上
没必要的链接不要点 安装的过程不要一味的下一步
仔细看看,那些安装文件可能就有ebye
一些exe文件很可能是绑定了垃圾文件的
应该先用软件扫描 拆解出来 Universal Extractor 这个东东扫下
主要针对那些可疑图标 可疑的exe文件
另外,还有 kv2007等软件的粉碎功能,彻底的从计算机删除某个文件的功能
不过用的很少~~
再多看一些技术性文章
只能这样了------
另外,我还要提两个软件 ewido 和 黄山IE修复专家
前者 对付木马 广告插件也很强!
前面提到的恶意软件清理工具,对就那四个
和这个没法比
那四个只是清理他们自己记录的广告插件 没记录的呢~ pass 呵呵,就这么滥!
所以要用到 ewido 他是通过自己的算法 把那些可以的东东通通扫出来
所以我强烈推荐
再说黄山IE
知道经常莫名其抄的弹出一些网页吧,有些甚至不堪入目
肯定知道的~~ 没体验过也看过 没看过也听说过~~~
就用这个东东解决了 ,修复IE 对付大多数恶意修改还是很好用的
另外特殊的一些恶意修改需要特别找到它,可以去黄山或者360的官方去求助
把日志 用 hijackthis 这个软件扫下来 给他们分析 他们给你提供有针对性的解决办法
大概就这样了
推荐三个文章
http://hi..com/wumaocheng/blog/item/27ae9258dc0182de9c82048c.html
http://bbs.163down.com/thread-247661-1-1.html
http://bbs.163down.com/thread-248680-1-1.html
后面这俩也是我原创的,希望对你有所帮助
另外,我提到的那些软件 www.crsky.com 都有下 免费的 破解的
有任何疑问 欢迎通过网络消息交流
还有还有,,我多一句,真正流氓的不是软件
也不是软件开发商
而是那些通过各种途径让软件植入你的电脑的人!!!!强烈BS!!!
6. Win10运行程序时提示不受信任怎么办Win10阻止运行应用程序怎么办
你的系统是xp home还是xp professional,如是后者,可以用组策略来解决问题,下面文章来至网络,以供参考。 来宾账户(guest)或者受限用户(user)的权限设置当你的电脑经常需要被别人使用,但是你又不希望别人看你的某些重要文件或者不允许别人运行某些应用程序或者担心自己系统某些重要参数被修改时,你可以先以管理员身份登录Windows系统,参照以下几条作相应设置,然后开通来宾账户或者新建一个普通user账户(不是管理员,而是受限用户),让别人用这个账户登录系统,这时你就可以放心你的电脑任意让别人折腾。一、限制用户对文件的访问权限 如果程序所在的磁盘分区文件系统为NTFS格式,管理员账户可以利用NTFS文件系统提供的文件和文件夹安全选项控制用户对程序及文件的访问权限。通常情况下,一个应用程序安装到系统后,本地计算机的所有账户都可以访问并运行该应用程序。如果取消分配给指定用户对该应用程序或文件夹的访问权限,该用户也就失去了运行该应用程序的能力。 例如,要禁止受限用户运行OutlookExpress应用程序,可以进行如下的操作: (1)、以administrator账户登录系统,如果当前系统启用了简单文件共享选项,需要将该选项关闭。具体做法是,在Windows浏览器窗口点击“工具”菜单下的“文件夹选项”,点击“查看”选项页,取消“使用简单文件共享”选项的选择,点击“确定”。 (2)、打开Program Files文件夹,选中Outlook Express文件夹并单击右键,选择“属性”。 (3)、点击“安全”选项页,可以看到Users组的用户对该文件夹具有读取和运行的权限,点击“高级”。 (4)、取消“从父项继承那些可以应用到子对象的权限项目,包括那些再次明确定义的项目”选项的选择,在弹出的提示信息对话框,点击“复制”,此时可以看到用户所具有的权限改为不继承的。 (5)、点击“确定”,返回属性窗口,在“用户或组名称”列表中,选择Users项目,点击“删除”,点击“确定”,完成权限的设置。 要取消指定用户对文件或程序的访问限制,需要为文件或文件夹添加指定的用户或组并赋予相应的访问权限。 这种方法允许管理员针对每个用户来限制他访问和运行指定的应用程序的权限。但是这需要一个非常重要的前提,那就是要求应用程序所在的分区格式为NTFS,否则,一切都无从谈起。 对于FAT/FAT32格式的分区,不能应用文件及文件夹的安全选项,我们可以通过设置计算机的策略来禁止运行指定的应用程序。 二、启用“不要运行指定的Windows应用程序”策略 在组策略中有一条名为“不要运行指定的Windows应用程序”策略,通过启用该策略并添加相应的应用程序,就可以限制用户运行这些应用程序。设置方法如下: (1)、在“开始”“运行”处执行gpedit.msc命令,启动组策略编辑器,或者运行mmc命令启动控制台,并将“组策略”管理单元加载到控制台中; (2)、依次“‘本地计算机’策略”“用户设置”“管理模板”,点击“系统”,双击右侧窗格中的“不要运行指定的Windows应用程序”策略,选择“已启用”选项,并点击“显示”。 (3)、点击“添加”,输入不运行运行的应用程序名称,如命令提示符cmd.exe,点击“确定”,此时,指定的应用程序名称添加到禁止运行的程序列表中。 (4)、点击“确定”返回组策略编辑器,点击“确定”,完成设置。 当用户试图运行包含在不允许运行程序列表中的应用程序时,系统会提示警告信息。把不允许运行的应用程序复制到其他的目录和分区中,仍然是不能运行的。要恢复指定的受限程序的运行能力,可以将“不要运行指定的Windows应用程序”策略设置为“未配置”或“已禁用”,或者将指定的应用程序从不允许运行列表中删除(这要求删除后列表不会成为空白的)。 这种方式只阻止用户运行从Windows资源管理器中启动的程序,对于由系统过程或其他过程启动的程序并不能禁止其运行。该方式禁止应用程序的运行,其用户对象的作用范围是所有的用户,不仅仅是受限用户,Administrators组中的账户甚至是内建的administrator帐户都将受到限制,因此给管理员带来了一定的不便。当管理员需要执行一个包含在不允许运行列表中的应用程序时,需要先通过组策略编辑器将该应用程序从不运行运行列表中删除,在程序运行完成后,再将该程序添加到不允许运行程序列表中。需要注意的是,不要将组策略编辑器(gpedit.msc)添加到禁止运行程序列表中,否则会造成组策略的自锁,任何用户都将不能启动组策略编辑器,也就不能对设置的策略进行更改。 提示:如果没有禁止运行“命令提示符”程序的话,用户可以通过cmd命令,从“命令提示符”运行被禁止的程序,例如,将记事本程序(notepad.exe)添加不运行列表中,通过XP的桌面运行该程序是被限制的,但是在“命令提示符”下运行notepad命令,可以顺利的启动记事本程序。因此,要彻底的禁止某个程序的运行,首先要将cmd.exe添加到不允许运行列表中。 三、设置软件限制策略 软件限制策略是本地安全策略的一个组成部分,管理员通过设置该策略对文件和程序进行标识,将它们分为可信任和不可信任两种,通过赋予相应的安全级别来实现对程序运行的控制。这个措施对于解决未知代码和不可信任代码的可控制运行问题非常有效。软件设置策略使用两个方面的设置对程序进行限制:安全级别和其他规则。 安全级别分为“不允许的”和“不受限制的”两种。其中,“不允许的”将禁止程序的运行,不论用户的权限如何;“不受限的”允许登录用户使用他所拥有的权限来运行程序。 其它规则,即由管理员通过制定规则对指定的一批或一个文件和程序进行标识,并赋予“不允许的”或“不受限的”安全级别。在这个部分中,管理员可以制定四种类型的规则,按照优先级别分别是:散列规则、证书规则、路径规则和Internet区域规则,这些规则将对文件的访问和程序的运行提供最大限度的授权级别。 软件限制策略的设置 1、访问软件限制策略 作为本地安全策略的一部分,软件限制策略同时也包含在组策略中,这些策略的设置必须以administrator账户或Administrators组成员的身份登录系统。软件限制策略的访问方式有两种: (1)、在“开始”“运行”处运行secpol.msc,启动本地安全策略编辑器,在“安全设置”下可以看到“软件限制策略”项目。 (2)、在“开始”“运行”处运行gpedit.msc,启动组策略编辑器,在“计算机设置”“Windows设置”“安全设置”下可以看到“软件限制策略”。 2、新建软件限制策略 首次打开“软件限制策略”时,该项目是空的。策略需要由管理员手动添加。方法是点击“软件限制策略”使其处于选中状态,点击编辑器窗口“操作”菜单下的“新建一个策略”项目,此时可以看到“软件限制策略”下增加了“安全级别”和“其它规则”以及三条属性,如图2所示。一旦执行了新建策略操作后,就不能再次执行该操作,并且这个策略也不能删除。 3、设置默认的安全级别 新建软件限制策略后,策略的默认安全级别为“不受限的”,如果要更改默认的安全级别,需要在“安全级别”中进行设置,方法如下: (1)、打开“安全级别”,在右侧窗格中,可以看到有两条设置,其中图标中带有一个小对号的设置为默认设置; (2)、点击不是默认值的那条设置,单击右键,选择“设置为默认”项。当设置“不允许的”为默认值时,系统会显示一个提示信息对话框,点击“确定”即可。 该步骤也可以双击非默认的设置,在弹出的属性窗口中,点击“设为默认值”。 4、设置策略的作用范围和对象 通过策略的“强制”属性可以设置策略应用的软件文件是否包含库文件以及作用的对象是否包含管理员账户。通常情况下,为了避免引起系统不必要的问题以及便于对系统的管理,策略的作用范围应设置为不包含库文件的所有软体文件,作用对象设置为除本地管理员外的所有用户。设置的方法如下: (1)、单击“软件限制策略”,双击右侧窗格中的“强制”属性项目; (2)、选择“除去库文件(如Dll文件)以外的所有软体文件”选项和“除本地管理员以外的所有用户”选项,单击“确定”。 5、制定规则 只通过安全级别的设置,显然不能很好的实现对文件和程序的控制,必须通过制定合理的规则来标识那些禁止或允许运行的文件和程序,并进而实现对这些文件和程序的灵活控制。上文中提到可制定规则的类型有四种:散列规则、证书规则、路径规则和Internet区域规则。它们标识文件以及制定规则的方法如下: 散列规则:利用散列算法计算出指定文件的散列,这个散列是唯一标识该文件的一系列定长字节。制定了散列规则后,用户访问或运行文件时,软件限制策略会根据文件的散列及安全级别来允许或阻止对该文件进行访问或运行。当文件移动或重命名,不会影响文件的散列,软件限制策略对该文件依然有效。制定方法如下: (1)、点击“软件限制策略”下的“其它规则”,在“其他规则”上单击右键,或在右侧窗格的空白区域单击右键,选择“新散列规则”。 (2)、点击“浏览”,指定要标识的文件或程序,例如cmd.exe,确认后,在文件散列中可以看到计算出来的散列,在“安全级别”中选择“不允许的”或“不受限的”,点击“确定”,在“其它规则”中可以看到新增了一条类型为散列的规则。 证书规则:利用与文件或程序相关联的签名证书进行标识。证书规则需要的证书可以是自签名的、由证书颁发机构(CA)颁发或是由Windows2000公钥机构发布。证书规则不应用于EXE文件和DLL文件,它主要应用于脚本和Windows安装程序包。当某个文件由其关联的签名证书标识后,运行该文件时,软件限制策略会根据该文件的安全级别来决定是否可以运行。文件的移动和更名不会对证书规则的应用产生影响。制定证书规则时要求能够访问到用来标识文件的证书文件,证书文件的扩展名为.CER。创建方法同散列规则。 路径规则:利用文件或程序的路径进行标识,该规则可以针对一个指定的文件、用通配符表示的一类文件或是某一路径下的所有文件及子文件夹中的文件。由于标识是由路径来完成的,当文件移动或重命名时,路径规则会失去作用。在路径规则中,根据路径范围的大小,优先级别各有高低,范围越大,优先级越低。通常路径的优先级从高到低为:指定的文件、带路径的以通配符表示的一类文件、通配符表示的一类文件、路径、上一级路径。创建方法同散列规则。 Internet区域规则:利用应用程序下载的Internet区域进行标识。区域主要包括:Internet、本地Intranet、本地计算机、受限制的站点、受信任的站点。该规则主要应用于Windows的安装程序包。创建方法同散列规则。 6、维护可执行代码的文件类型 不论是那种规则,它所影响的文件类型只有“指派的文件类型”属性中列出的那些类型,这些类型是所有规则共享的。某些情况下,管理员可能需要删除或添加某种类型的文件,以便规则能够对这类文件失去或产生作用,这就需要我们来维护“指派的文件类型”属性。方法如下: (1)、单击“软件限制策略”,双击右侧窗格中的“指派的文件类型”属性项目; (2)、如果新增一种文件类型,在“文件扩展名”处输入添加的扩展名,点击“添加”;如果要删除一种文件类型,单击列表中的制定类型,点击“删除”。 7、利用规则的优先级灵活控制程序的运行 四种规则的优先级从高到依次为:散列规则、证书规则、路径规则、Internet区域规则。如果有超过一条以上的规则同时作用于同一个程序,那么优先级最高的规则设定的安全级别将决定该程序是否能运行。如果多于一条的同类规则作用于同一个程序,那么同类规则中最具限制力的规则将起作用。这为我们提供了一条对程序的运行进行灵活控制的途径。单一规则的作用效果虽然全面,但是也限制了我们所需要的那些部分,复合规则的综合作用将产生诸如“除了我们需要的/不需要的以外,其他全部不允许/不受限制”这样的效果,这也许才是我们真正需要的安全级别。 提示:软件限制策略的生效需要注销并重新登录系统。如果在软件限制策略中为一个程序制定了一条安全级别为“不受限的”规则,而这个程序包含在“不要运行指定的Windows应用程序”策略的不允许运行程序列表中,那么最终这个程序是不允许运行的。要取消对程序的限制,需要将相关的规则删除:在“其他规则”中的规则列表中,在要删除的规则上点击右键,选择“删除”即可。 上述三种限制程序运行的措施各有特点。从限制的实现方法和效果来看,限制用户对文件的访问权限可以让管理员以Administartor账户身份对所有用户的权限进行控制,作用的范围可以是所有类型的文件和文件夹,但是这种方法受到应用环境的限制。采取基于策略的措施,不论是启用“不要运行指定的Windows应用程序”策略还是设置软件限制策略,对于要限制的用户对象作用范围来讲都是用户组,不能针对具体的用户进行设置,要么是所有的用户,要么是除管理员组外的所有用户。但是这些措施对系统环境的要求不高,在XP系统中都可以进行实施。另外,基于策略的设置可以对计算机进行更加灵活的管理。特别是软件限制策略允许管理员通过多种方式对程序进行标识,对于程序的运行具有很高的可控性。
7. 所有软件都可以被破解吗,为什么开发者不阻止破解版的产生
首先软件是100%可以破解的。大不了我使用穷举法,列出所有的可能!
在20世纪,没有互联网的时候!软件采用光盘在不可复制扇区写入代码,再给你一个密码。光盘安装时,会根据这个代码产生对应密码,也就是软件公司给你的那个。破解方法,采用绕过密码这一关,也就是破解版!
2.20世纪末,互联网开始诞生!一般软件采用网络注册,电脑使用。例如Photoshop8.0,你安装好以后,机器会随机产生一个25位数字,只需要发给网站,网站就会通过计算产生一个新的25位数字发给你。这样你就可以使用了。这个生成过程后来被人发明了破译计算软件,叫“解码器”,进行了破解。
3.21世纪的软件网络码!21世纪由于网络发达,绝大部分软件随时随地要和网络连接。于是通过手机号申请唯一的密码。每次启动软件,便要识别地址,手机号等信息!当密码在多个机器或者多地使用时,便自动作废。我们的爱奇艺会员便是这种密码!由于这是一对几绑定密码,而且随时联网,已经很难长期免费使用。破解也就无从谈起!
三个时代,从无法对付破解软件,到现在网络软件,没办法破解。 历史 在不断进步!
首先肯定一下,所有的软件都可以被破解,无非是破解的代价不同而已。就算是IOS,也是一样可以被破解,被越狱的,Windows就更不说了,专业版的正版Windows在国内真的不多。
为什么开发者不阻止破解版的产生?因为阻止不了。
爆破是一种简单的破解方式,我们可以通过反向工程,将软件的可执行文件破解后重新编译,达到破解的目的。
例如:我们有一个软件,每次输入注册码以后都会到一个网站去验证,如果验证通过会返回一个指令,软件得到这个指令以后,也相当于注册成功。我们在重新编译以后,可以修改这个地址,改到一个我们自己搭建的破解地址去,不过输入什么呢,我们都返回一个成功的指令,这样就可以达到破解的目的了。
当然,我们还可以修改验证的处理逻辑,例如如果用户输入错误的注册码,就验证通过,这样也可以达到破解的目的。
还有就是通过自己编写注册机来破解,所有的软件验证都有一个固定的逻辑算法,我们只要了解这个算法以后,就可以根据验证码的生成逻辑,写出一个注册机并生成正确的注册码,通过使用这个注册码来完成注册。
而破解的方式还有很多,对于不同的软件会有不同的破解方式。对于开发者来说,自然是不愿意自己的软件被破解了,所以也曾经增加了很多的反破解手段,不过这些手段都会有漏洞,因为这些反破解手段本身其实也是一个软件,只要是软甲就可以被破解。
所有软件都可以被破解吗,为什么开发者不阻止破解版的产生?
这个问题分这样几个方面来回答。
第一、所有的软件都可以破解,无非是破解的难度与价值大小,决定了破解者的多少。
这个问题有点类似锁和开锁。只要有一定的技术和功夫,可以说几乎所有的锁都能不用钥匙打开。
第二、为什么开发者不阻止破解版的产生。
举一个例子。前些年,微软的BOSS说过,我知道中国人喜欢偷(软件盗版),即便是这样,我还是希望他们偷我们的软件。
这句话说明这样一个道理,在某种程度上,多数软件的开发者,反而喜欢有人破解自己的产品,有人使用自己的盗版产品。
为什么这样呢?
其实这样有两个效果。
第一个效果,盗版软件大量流行,可以打击其竞争对手。如果对于盗版打击过于严厉,没人使用盗版,那么他们竞争对手的产品很可能会乘虚而入,占领市场。例如windows,如果盖茨们严厉打击盗版,那么很可能国产的操作系统很可能会借机得到发展。如果放任盗版,其中一个最重要的作用,就是使广大用户形成习惯,堵死国产系统发展的机会。
第二个效果是,他们又有了一条新的生财之道。
例如,现在使用操作系统的电脑,绝大多数是可以联网的,盖茨们很容易知道,哪些机器使用盗版系统。如果是一些不大不小的公司胆敢使用盗版,那么他们会收集证据,然后给这些公司发律师函,你们使用盗版的证据已经收集完毕,要么缴纳某某万元给我们购买许可,要么到法院做被告。这种情况,可以说大概率是输官司赔款,并且数字非常大。很多软件公司虽然盗版不赚钱,但是用这种方式,可以大发其财。
软件升级与破解是矛与盾的关系。具体分析如下:
开发者们对自己开发的软件进行保护是很常见的行为,但是应该没有开发者会觉得自己的软件无法被破解。
首先你得明白,开发软件的首要目的肯定不是“保护软件不被破解”,这只是作者为了自己的合法权益不被侵犯所做的无奈之举,为了保护软件外加大量安全保护代码得不偿失,然后开发出来的软件全都变成类似网络防火墙的东西。
所有的加密方式都是不能完全保证安全的,但Cracker破解软件会考虑“效费比”,比如说我破解这个软件挺麻烦的,可能需要我连续工作一周,但这个软件只卖十块钱,一般不会考虑浪费这个时间进行破解。
另外,破解软件会破坏软件的完整性,导致某些功能出现异常甚至无法使用,作者只需要保护核心功能,对破解后的这些功能进行曲解(比如对保存文件进行全程加密),破解这种软件需要Cracker在当前领域具有开发者同等技术水平才有可能做到。
又要跑题了,但这很重要。曾有人将黑客Hacker和破解者Cracker进行对比,其实他们之间的区别非常大。黑客专注于网络传输技术和操作系统,破解者专注于编译技术和低级语言;黑客行为不一定是为利,但破解行为肯定是为利;黑客行为可以有友方和敌方,但破解行为破坏所有人的利益(盗版横行将严重制约软件业发展,比如Windows盗版满天飞,去开发另一套系统的人想靠卖系统收回成本基本是痴人说梦)。
最后总结一下。WPS领头人求伯君曾说过: 有人盗版他的软件说明软件得到了认同。开发者不可能不考虑盗版的问题,但首先得有人用你的软件,它才会有其价值。软件保护和软件破解是一对矛与盾,敌人的存在能够让我们时刻保持警惕。
程序由调试模式,就是单步。运行中的程序也可以被捕获,进入调试模式。只要找到一些关键的判断点,让程序转向就可以破解了。
并不是所有的软件都可以被破解,只能说所有的程序代码、数据库都在本地的软件可以被破解。
比如:“云电脑”、“云手机”。所有的程序代码、数据库都是放在服务器端,本地手机或电脑只有一个负责登录的客户端。
“云电脑”、“云手机”可以将本地的操作指令传输到服务器端的电脑或手机上,所有的程序执行过程均在服务器端的电脑或手机上完成,再通过网络将图像实时的传输回本地,由于现在网速快、延迟低,感觉就像真的在本地操作。
云端软件或系统,所有的代码、数据库、执行过程都是在服务器端,就连登录时账户和密码的验证过程都需要和服务器端的数据库比对。所以这种软件或系统被破解的可能性几乎为零,就算会被攻破也只可能是通过黑客技术或账户、密码、IP地址等敏感信息遭到泄露。
为什么说本地的软件、系统都可以被破解?建一栋房子可以要几个月,但如果要拆掉它可能只需要一瞬间。本地的软件、系统也是一样的道理,破解的过程是一个取巧的过程,并不需要知道所有的代码是怎么写的,操作原理是怎样的,怎么执行的,执行逻辑又是什么,只要找到执行权限认证和授权的代码段就可以了。
可以让软件一开始执行就跳转到软件的主界面,绕过输入用户名和密码、验证用户名和密码的过程。
也可以让软件的用户名和密码验证模块不管验证成功还是失败都跳转到软件主界面。
经常会去“看雪”论坛逛的小伙伴就知道有各种软件破解的工具和思路。软件破解很早就已经形成了一门学科,并且有一个高大上的名称“软件逆向工程”。
软件逆向工程
软件逆向工程是指从可运行的程序系统出发,运用解密、反汇编、系统分析、程序理解等多种计算机技术,对软件的结构、流程、算法、代码等进行逆向拆解和分析,推导出软件产品的源代码、设计原理、结构、算法、处理过程、运行方法及相关文档等。
软件开发出来也会有防篡改技术用于制止专用软件进行逆向工程及再工程。实际应用中出现了两类逆向工程:一种是软件的源代码可用,但是更高层次的部门几乎没有描述文档或描述文档不再适用或丢失。另一种是软件没有可用的源代码,任何能找到它的源代码的努力都被为逆向工程。所以不要把软件逆向工程看成是一种很灰暗的学科,它只是经常被用在投机取巧的人身上罢了。
软件的逆向工程可以使用“净室技术”来避免侵犯版权。在有一些国家软件逆向工程只要遵守版权行业释义法律的合理使用规定,都是受保护的。比如:
上面只是提供的软件破解的基本思路,让大家更好的理解为什么本地的软件和系统可以被破解。软件逆向工程并没有想象中的那么简单,这门学科需要具备基本的编程能力,掌握外壳原理和技巧,并且对操作系统的知识比较了解。总之就是涉及的知识比较多,学习的东西也会比较多,要熟练掌握这门学科需要花费很长的周期。
在逆向工程下,软件的加密技术和注册机制也在不断进化最早的时候,软件只要购买了发行磁盘或光盘就可以使用正版软件。但由于盗版光盘的盛行,演化成了需要输入一串激活密钥才能激活正版权限。很快算号程序就出现了,于是就有了在线验证。
但不管软件的加壳/加密机制多么强悍、注册机制多么完善,只要软件的代码在本地,就一定会被破解,只是时间的长短。
以上个人浅见,欢迎批评指正。
都是值不值得问题。如果现在花100天可以做软件功能,再花5天时间可以使得它不好被破解。那我可能会做。如果说再花5天让它几乎不可破解。我可能选择不做了。因为可能这部分的价值几乎没有。
如果,我是叫巨硬,到一个国家推广软件,这个国家还有个叫UPS的东西和我的软件很像,我现在想的是先搞死他,甚至不在意我的推广人员自己吧推广费用吞了。那这时候我不但不做反破解,可能还会主动扶持这些推广人员。
水至清则无鱼,盗版毕竟是有风险的,新手或许都会去找破解版,但是功能等肯定使用起来不够流畅,真正需要的专业用户,还是愿意花钱买点正版的。
一个软件出来,破解版也是一种营销宣传手段,要是直接就收费了,哪里有用户去下载体验使用呢
的确,所有软件都可能被破解,包括支付宝和微信这种国民应用程序。
分析: 黑客破解软件一方面是为了展示技术,向开发者炫技,另一方面是为了获取利益。2019年天猫双十一24小时遭受住了22亿次恶意攻击,是否意味着天猫就是铜墙铁壁毫无漏洞?非也。像这种级别的应用程序都会配备专业的安全团队,从技术上就过滤掉了绝大部分的“菜鸟黑客”,顶级黑客毕竟是少数,一般不屑于干这种事,同时也兼顾法律的威慑力,国民级应用程序被黑可不是小事,谁都不能保证自己全身而退。有句话是“满瓶水不荡,半瓶水起波浪”,可以这样说,双十一攻击天猫的那些黑客基本都是“半瓶水”水平,天猫能经受住考验虽然不易,但也不足为奇。
一般的应用软件就不用说了,开发者大部分心思都花在功能研究上了,安全方面都是尽力而为,如果想做的更好,就要建立专门的安全团队,但这样会增加很多开发成本,即便如此也不能保证软件零漏洞。所以在黑客眼里,大部分软件无异于在“裸奔”。
总结: 很多软件在网上出现破解版,是因为一部分人版权意识不够强,抱着侥幸心理干着非法的事。不是开发者不阻止,是维权成本较高,软件开发者基本都是睁一只眼闭一只眼。破解软件是软件行业发展的“绊脚石”,有免费的用谁还掏钱买正版?开发者挣不到钱谁还会用心开发软件?这是一个死循环。不过随着人们的版权意识在逐步提高,加上我国版权监管工作的不断完善,这种情况会得到极大地改善,我们普通人要做的是支持正版就对了。
8. ssl安全 怎么禁用RC4加密算法
SCHANNEL\Protocols 子项
协议 的注册表项下 SCHANNEL
键用于的控件使用的协议支持由 Schannel.dll 文件,并限制该协议使用 TLS 服务器或 TLS 的客户端。
若要禁止使用的 SSL
3.0 或 TLS 1.0 之外的其他协议,请将 Enabled 值的 DWORD 鍊兼暟鎹改为 0x0 中下面的注册表项,在 协议 键下的每个:
目前的 Microsoft 消息队列使用的客户端和服务器之间只有 PCT 1.0
SCHANNEL\Ciphers 子项
密码 的注册表项下 SCHANNEL 键用于控制如 DES 或 RC4
对称算法的使用。 以下是在 密码 键下的有效注册表项。
SCHANNEL\Ciphers\RC4
128/128 子项:
rc4 128/128
此子项是指 128 位 RC4。
要允许此密码算法、 0xffffffff 到更改
启用 值的 DWORD 值数据,否则更改为 0x0 的 DWORD
值数据。 如果不配置 启用 值,启用了默认值。 此注册表项不能应用于不具备 SGC
证书
---------------------------------------------------------------------------------------
des:有好几种:0xffffffff 到更改 启用,否则更改为 0x0 ,不配置 启用
值,启用了默认值,但有很多不允许禁用的算法。。。
TLS 1.0 和SSL 3.0
:{}是要在regedit里建的值:
ssl_rsa_export_with_rc4_40_md5
{0x00,0x03}
ssl_rsa_with_rc4_128_md5
{0x00,0x04}
SSL_RSA_WITH_DES_CBC_SHA
{0x00,0x09}
ssl_rsa_with_3des_ede_cbc_sha
{0x00,0x0A}
ssl_rsa_export1024_with_des_cbc_sha
{0x00,0x62}
ssl_rsa_export1024_with_rc4_56_sha
{0x00,0x64}
TLS_RSA_WITH_DES_CBC_SHA
{0x00,0x09}
tls_rsa_with_3des_ede_cbc_sha
{0x00,0x0A}
tls_rsa_export1024_with_des_cbc_sha
{0x00,0x62
tls_rsa_export_with_rc4_40_md5
{0x00,0x03}
tls_rsa_with_rc4_128_md5
{0x00,0x04}
1
。。。。SCHANNEL\Ciphers\Triple
DES 128/128 子项:
三重 DES 168/168
2
。。。。SCHANNEL\Ciphers\RC2 56/56
子项:
DES 56/56
3
SCHANNEL\Hashes\MD5
子项:
md5
=====
例子:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\SHA]
"Enabled"=dword:ffffffff
SCHANNEL\Protocols\PCT 1.0\Client
SCHANNEL\Protocols\PCT 1.0\Server
SCHANNEL\Protocols\SSL 2.0\Client
SCHANNEL\Protocols\SSL 2.0\Server