反编译商用
Ⅰ 胡晓波男神体字体使用范围
永久免费商业使用
2019年12月23日,在圣诞节前夕,站酷人气设计师胡晓波在庞门正道公众号上一口气发布了三款可免费商用的中文字体。这三款字体分别是胡晓波真帅体、胡晓波骚包体、胡晓波男神体,我们来认真看看这三款字,命名非常骚气,完全符合胡晓波的性格。可以连起来看,一句话说完三个字体:一个骚包的真帅男神。
这三款字体,一共动用了胡晓波工作室7位同事,前后做了1年。人多力量大,就如庞门正道轻松体,80位同学参与,2个月就搞定,但是人少的话,就靠发工资了。这三款字体成本大概在人民币60万左右,所以说啊,所有的好东西,都是钱堆出来。
胡晓波男神体的字形设计阳刚中又带有柔和的转角,横竖笔画对比强烈,提笔走向规律,角度统一,字体边缘整齐,特别适合用于带有刚性的海报设计和标题设计,例如科技、手机、汽车等海报设计。
字体授权
本次发行的3套字库胡晓波真帅体、胡晓波骚包体、胡晓波男神体,已在国家版权局登记认证。允许任何个人和企业免费使用,包括商用用途。但不得单独或者附带地以出售、出租、出借等方式向公众发行以获取利益。同时不得对本字库软件进行修改、仿制、反编译、转换、拆分。重点再强调三遍,本次发布的三款字体,永久免费商业使用!永久免费商业使用!永久免费商业使用!
Ⅱ 如何保护java程序 防止Java反编译
Java是一种跨平台的、解释型语言。Java 源代码编译中间“字节码”存储于class文件中。Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名、方法名等。因此,Java中间代码的反编译就变得非常容易。目前市场上有许多免费的、商用的反编译软件,都能够生成高质量的反编译后的源代码。所以,对开发人员来说,如何保护Java程序就变成了一个非常重要的挑战。本文首先讨论了保护Java程序的基本方法,然后对代码混淆问题进行深入研究,最后结合一个实际的应用程序,分析如何在实践中保护Java程序。 反编译成为保护Java程序的最大挑战 通常C、C++等编程语言开发的程序都被编译成目标代码,这些目标代码都是本机器的二进制可执行代码。通常所有的源文件被编译、链接成一个可执行文件。在这些可执行文件中,编译器删除了程序中的变量名称、方法名称等信息,这些信息往往是由内存地址表示,例如如果需要使用一个变量,往往是通过这个变量的地址来访问的。因此,反编译这些本地的目标代码就是非常困难的。 Java语言的出现,使得反编译变得非常容易而有效。原因如下:1.由于跨平台的需求,Java的指令集比较简单而通用,较容易得出程序的语义信息;2.Java编译器将每一个类编译成一个单独的文件,这也简化了反编译的工作;3.Java 的Class文件中,仍然保留所有的方法名称、变量名称,并且通过这些名称来访问变量和方法,这些符号往往带有许多语义信息。由于Java程序自身的特点,对于不经过处理的Java程序反编译的效果非常好。 目前,市场上有许多Java的反编译工具,有免费的,也有商业使用的,还有的是开放源代码的。这些工具的反编译速度和效果都非常不错。好的反编译软件,能够反编译出非常接近源代码的程序。因此,通过反编译器,黑客能够对这些程序进行更改,或者复用其中的程序。因此,如何保护Java程序不被反编译,是非常重要的一个问题。 常用的保护技术 由于Java字节码的抽象级别较高,因此它们较容易被反编译。本节介绍了几种常用的方法,用于保护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。 隔离Java程序 最简单的方法就是让用户不能够访问到Java Class程序,这种方法是最根本的方法,具体实现有多种方式。例如,开发人员可以将关键的Java Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件。这样黑客就没有办法反编译Class文件。目前,通过接口提供服务的标准和协议也越来越多,例如 HTTP、Web Service、RPC等。但是有很多应用都不适合这种保护方式,例如对于单机运行的程序就无法隔离Java程序。这种保护方式见图1所示。 图1隔离Java程序示意图 对Class文件进行加密 为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。在使用这些被加密的类之前,程序首先需要对这些类进行解密,而后再将这些类装载到JVM当中。这些类的解密可以由硬件完成,也可以使用软件完成。 在实现时,开发人员往往通过自定义ClassLoader类来完成加密类的装载(注意由于安全性的原因,Applet不能够支持自定义的ClassLoader)。自定义的ClassLoader首先找到加密的类,而后进行解密,最后将解密后的类装载到JVM当中。在这种保护方式中,自定义的ClassLoader是非常关键的类。由于它本身不是被加密的,因此它可能成为黑客最先攻击的目标。如果相关的解密密钥和算法被攻克,那么被加密的类也很容易被解密。这种保护方式示意图见图2。 图2 对Class文件进行加密示意图 转换成本地代码 将程序转换成本地代码也是一种防止反编译的有效方法。因为本地代码往往难以被反编译。开发人员可以选择将整个应用程序转换成本地代码,也可以选择关键模块转换。如果仅仅转换关键部分模块,Java程序在使用这些模块时,需要使用JNI技术进行调用。 当然,在使用这种技术保护Java程序的同时,也牺牲了Java的跨平台特性。对于不同的平台,我们需要维护不同版本的本地代码,这将加重软件支持和维护的工作。不过对于一些关键的模块,有时这种方案往往是必要的。 为了保证这些本地代码不被修改和替代,通常需要对这些代码进行数字签名。在使用这些本地代码之前,往往需要对这些本地代码进行认证,确保这些代码没有被黑客更改。如果签名检查通过,则调用相关JNI方法。这种保护方式示意图见图3。 代码混淆
图3 转换成本地代码示意图 代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。但是混淆后的代码很难被反编译,即反编译后得出的代码是非常难懂、晦涩的,因此反编译人员很难得出程序的真正语义。从理论上来说,黑客如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具。但是从实际情况来看,由于混淆技术的多元化发展,混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译。下面我们会详细介绍混淆技术,因为混淆是一种保护Java程序的重要技术。图4是代码混淆的示意图。
图4 代码混淆示意图 几种技术的总结 以上几种技术都有不同的应用环境,各自都有自己的弱点,表1是相关特点的比较。 混淆技术介绍 表1 不同保护技术比较表
到目前为止,对于Java程序的保护,混淆技术还是最基本的保护方法。Java混淆工具也非常多,包括商业的、免费的、开放源代码的。Sun公司也提供了自己的混淆工具。它们大多都是对Class文件进行混淆处理,也有少量工具首先对源代码进行处理,然后再对Class进行处理,这样加大了混淆处理的力度。目前,商业上比较成功的混淆工具包括JProof公司的1stBarrier系列、Eastridge公司的JShrink和4thpass.com的SourceGuard等。主要的混淆技术按照混淆目标可以进行如下分类,它们分别为符号混淆(Lexical Obfuscation)、数据混淆(Data Obfuscation)、控制混淆(Control Obfuscation)、预防性混淆(Prevent Transformation)。 符号混淆 在Class中存在许多与程序执行本身无关的信息,例如方法名称、变量名称,这些符号的名称往往带有一定的含义。例如某个方法名为getKeyLength(),那么这个方法很可能就是用来返回Key的长度。符号混淆就是将这些信息打乱,把这些信息变成无任何意义的表示,例如将所有的变量从vairant_001开始编号;对于所有的方法从method_001开始编号。这将对反编译带来一定的困难。对于私有函数、局部变量,通常可以改变它们的符号,而不影响程序的运行。但是对于一些接口名称、公有函数、成员变量,如果有其它外部模块需要引用这些符号,我们往往需要保留这些名称,否则外部模块找不到这些名称的方法和变量。因此,多数的混淆工具对于符号混淆,都提供了丰富的选项,让用户选择是否、如何进行符号混淆。 数据混淆 图5 改变数据访问 数据混淆是对程序使用的数据进行混淆。混淆的方法也有多种,主要可以分为改变数据存储及编码(Store and Encode Transform)、改变数据访问(Access Transform)。 改变数据存储和编码可以打乱程序使用的数据存储方式。例如将一个有10个成员的数组,拆开为10个变量,并且打乱这些变量的名字;将一个两维数组转化为一个一维数组等。对于一些复杂的数据结构,我们将打乱它的数据结构,例如用多个类代替一个复杂的类等。 另外一种方式是改变数据访问。例如访问数组的下标时,我们可以进行一定的计算,图5就是一个例子。 在实践混淆处理中,这两种方法通常是综合使用的,在打乱数据存储的同时,也打乱数据访问的方式。经过对数据混淆,程序的语义变得复杂了,这样增大了反编译的难度。 控制混淆 控制混淆就是对程序的控制流进行混淆,使得程序的控制流更加难以反编译,通常控制流的改变需要增加一些额外的计算和控制流,因此在性能上会给程序带来一定的负面影响。有时,需要在程序的性能和混淆程度之间进行权衡。控制混淆的技术最为复杂,技巧也最多。这些技术可以分为如下几类: 增加混淆控制 通过增加额外的、复杂的控制流,可以将程序原来的语义隐藏起来。例如,对于按次序执行的两个语句A、B,我们可以增加一个控制条件,以决定B的执行。通过这种方式加大反汇编的难度。但是所有的干扰控制都不应该影响B的执行。图6就给出三种方式,为这个例子增加混淆控制。 图6 增加混淆控制的三种方式 控制流重组 重组控制流也是重要的混淆方法。例如,程序调用一个方法,在混淆后,可以将该方法代码嵌入到调用程序当中。反过来,程序中的一段代码也可以转变为一个函数调用。另外,对于一个循环的控制流,为可以拆分多个循环的控制流,或者将循环转化成一个递归过程。这种方法最为复杂,研究的人员也非常多。 预防性混淆 这种混淆通常是针对一些专用的反编译器而设计的,一般来说,这些技术利用反编译器的弱点或者Bug来设计混淆方案。例如,有些反编译器对于Return后面的指令不进行反编译,而有些混淆方案恰恰将代码放在Return语句后面。这种混淆的有效性对于不同反编译器的作用也不太相同的。一个好的混淆工具,通常会综合使用这些混淆技术。 案例分析 在实践当中,保护一个大型Java程序经常需要综合使用这些方法,而不是单一使用某一种方法。这是因为每种方法都有其弱点和应用环境。综合使用这些方法使得Java程序的保护更加有效。另外,我们经常还需要使用其它的相关安全技术,例如安全认证、数字签名、PKI等。 本文给出的例子是一个Java应用程序,它是一个SCJP(Sun Certificate Java Programmer)的模拟考试软件。该应用程序带有大量的模拟题目,所有的题目都被加密后存储在文件中。由于它所带的题库是该软件的核心部分,所以关于题库的存取和访问就成为非常核心的类。一旦这些相关的类被反编译,则所有的题库将被破解。现在,我们来考虑如何保护这些题库及相关的类。 在这个例子中,我们考虑使用综合保护技术,其中包括本地代码和混淆技术。因为该软件主要发布在Windows上,因此转换成本地代码后,仅仅需要维护一个版本的本地代码。另外,混淆对Java程序也是非常有效的,适用于这种独立发布的应用系统。 在具体的方案中,我们将程序分为两个部分,一个是由本地代码编写的题库访问的模块,另外一个是由Java开发的其它模块。这样可以更高程度地保护题目管理模块不被反编译。对于Java开发的模块,我们仍然要使用混淆技术。该方案的示意图参见图7。 图7 SCJP保护技术方案图 对于题目管理模块,由于程序主要在Windows下使用,所以使用C++开发题库访问模块,并且提供了一定的访问接口。为了保护题库访问的接口,我们还增加了一个初始化接口,用于每次使用题库访问接口之前的初始化工作。它的接口主要分为两类: 1. 初始化接口 在使用题库模块之前,我们必须先调用初始化接口。在调用该接口时,客户端需要提供一个随机数作为参数。题库管理模块和客户端通过这个随机数,按一定的算法同时生成相同的SessionKey,用于加密以后输入和输出的所有数据。通过这种方式,只有授权(有效)的客户端才能够连接正确的连接,生成正确的SessionKey,用于访问题库信息。非法的客户很难生成正确的SessionKey,因此无法获得题库的信息。如果需要建立更高的保密级别,也可以采用双向认证技术。 2. 数据访问接口 认证完成之后,客户端就可以正常的访问题库数据。但是,输入和输出的数据都是由SessionKey所加密的数据。因此,只有正确的题库管理模块才能够使用题库管理模块。图8时序图表示了题库管理模块和其它部分的交互过程。 图8 题库管理模块和其它部分的交互过程图
Ⅲ eclipse debug下,为什么实际运行的代码和看到的不一致(源码是jad反编译的)
通过反编译的不可能是完全的相同你知道那些class 要是商用还会加密。要是开源的部份就直接去下源码看不要反编译。
Ⅳ 谁有自己做的FLASH CS3小游戏源文件,还有自己做的FLASH CS3网页,很简单的即可,在线等
本人游戏专家不才,望采纳:
1(不做商用)。或者谁有好点的反编译软件。请发到[email protected]
.2..3关左右,有计分,最好有计时和难度选择。如接金币,连连看,射击这类难度不大的游戏皆可,必须CS3!还有flash做的至少五个简单网页,必须cs3,且代码不要外部导入的,要插在帧里的(不做商用)。
Ⅳ 小朋友问我为啥加密狗害怕反编译软件,怎么通俗易懂的解释清楚
软件商用加密狗的目的就是防止别人随便拷贝软件,防止盗版的,会把软件的一部分信息写到加密狗里,所以没有加密狗就不能用,是无法跳过的,除非把软件反编译,并且知道加密狗内写了什么。
Ⅵ 安全360真的有后门啊!!!!!!!!!!
1. 360为什么每10分钟联网上传数据?
绝大部分360的用户都没有注意到一个细节:360安全卫士每十分钟联一次网,每次上传6KB左右数据,一天上传约1MB数据(不包含下载数据),一年约350MB数据。风雨无阻,永不间断。
一个安全软件为什么要如此频繁的上传数据呢(注意不是下载,给系统下载补丁包的流量不是上传流量)?查询是否有新的补丁包一来不需要这么频繁,二来不需要这么大的数据量。秘密就是我们搜集用户的隐私数据,并上传到服务器。当然,我们做了精心的设计,为了避免一次上传过多信息,容易引起用户警觉,采用了高频度、小流量的策略,并对数据进行压缩和加密处理,以防用户警觉。周总最近又在吹嘘“云查杀”,其实就是为了掩盖这个问题。
2. 360为什么要获取用户隐私呢?
360是免费的,靠什么养活公司、养活我们这个团队呢?360对外号称的,靠代理卡巴斯基杀毒软件的收入、靠软件推广的收入,其实根本无法支撑如此庞大的奇虎团队和服务器开销。周总花掉了大笔VC的钱,一次次不能兑现对VC的承诺,奇虎再融资难上加难。面临VC业绩的压力,铤而走险,周总也是没有别的办法。
免费产品放广告是互联网的模式,但是,安全软件不像新浪拥有广告时间(用户上新浪总要看10分钟),安全软件的广告机会不多(这是周总非常痛苦的一点,所以360为什么经常提醒用户什么补丁,安全新闻,等等,主要是吸引用户,争取广告时间),广告时间很短,要做广告就要精准,要精准,就必须了解用户信息。有了这些用户隐私,广告才够精准,就像此前的分众无线一样。用户隐私数据的商用价值我们已经不必怀疑了,手机上用户的隐私更多,更值钱,无数垃圾信息的群发公司已经充分证明了这一点。周总做3721的时候,什么“***”、“***”的关键词都卖,赚钱是根本。
毕竟,天下没有免费的午餐。对自己隐私不在意的人,用隐私换取免费服务也还划算。不过,手机上的对隐私在意的用户可能多一些。理解了这些,有许多和360有关的事件迷局也就迎刃而解。
3.360真正的收入来源是什么?
360对外声称的收入来源主要靠卖卡巴斯基。但是,360是代销卡巴斯基,代销的毛利率很低,15-20%左右,这点收入对于360而言是杯水车薪。360最大的收入是“互联网**”,收保护费;交了钱的程序有点问题也可以放过,还帮助推广,网评自然很好;不交钱的,网评就很差,还加入黑名单**。当然,最初依托奇虎社区上的“擦边球”内容给网站带流量,也为360带来一些收入。
有了360大量获取的用户隐私信息为基础,有了360保险箱的帐号关联,360的浏览器在精准广告上也就往前走了一大步。这一点对于广告主有价值,对用户也许会是个“灾难”。前段360宣传了自己的一个案例,协助**部门破了一个案,但是,没有用户信息作为基础,怎么协助呢?
4. 周总为什么到处宣传的所谓“云查杀”?
周总最近宣传的,所谓的360 “云查杀”(把查杀工作放到360服务器上),实质是为了掩饰360每10分钟频繁联网,掩盖其上传用户隐私的问题。周总号称扫描速度是传统杀毒软件的10倍,扫描快的原因是采用文件名匹配来进行最简单的模式匹配(叫一样文件名的文件的就是木马?这可能导致非常严重的误杀。难道在中国叫陈**的都是浑蛋?)。360所谓的“查杀10万木马”,是因为360根据文件名来判断病毒,病毒传播者只要改一下名字,奇虎360就得重新加入木马病毒库,所以一个病毒文件要是有10个名字,360就要加载10次木马姓名库,别人要查一次就够了,可360要加载10次。所以360才会费力去 “查杀10万木马”。
网上有篇帖子,说周总最新在手机上推出的扣费克星,也采用了同样的匹配文件名的简陋技术。tompda上有人反编译了代码,发文说明了这点,也许一场新的闹剧又要上演。
5. 为什么360只靠文件名查杀也能杀出木马,还号称比专业杀毒软件更好?
周总**出走雅虎之前,曾经利用3721干过一件大事:他通过遍布全国的3721客户端,在用户机器上种下了后门,包括dll和驱动。而打开这个后门的秘密,只有周总和几个核心人员知晓。这也就是为什么360一推出,就能让用户感觉到特别好用的最大原因,因为它查杀的木马,都是此前用3721客户端自己种下的,自己种,自己杀,效果当然顶呱呱。
为了维持奇虎360的口碑,周总一直在做这样的事情:不断制造新木马和***,再不断进行查杀。
6. 为什么绿霸受阻?
前一段,政府推动的绿霸计划,希望解决青少年的上网**内容过滤问题。但是,绿霸和360的预装策略冲突,一旦装了绿霸,就占领了360在PC上的位置,更重要的是就可能发现360的上传用户隐私的问题,那对360是很大的危机。因此,360成了在幕后攻击绿霸的推手。
7. 为什么360表面上口碑很好呢?
周总逢人就说,360没有花一分钱的推广费,完全靠口碑传播发展的。其实,以我跟随他多年的经验,基本说什么,就不是什么,随时可以变卦,说话就是放水。
与其360说是安全软件,不如说是管理软件,最初定位就是帮助用户管理补丁、卸载程序、提供软件下载,很多功能是超级兔子做的事情。当然,360做得更深入全面。360在产品体验设计得不错,动不动弹出来告诉你帮你做了这个,做了那个,让用户感觉干了很多事情。因此,360吸引了很多草根的用户。
但是,装了360,该出问题还是会出问题,该中毒还是中毒,该中木马还是中木马。真正的业内人士,金融、电信、政府的人员担心“偷东西”,都不太敢用360。
360的媒体控制力很强,周总在市场营销上很有天分,360在PC预装上下足了大功夫、大价钱,对外声称,很多中关村装机器的人推荐用户用360,不花钱,谁会帮你推荐。强有力的媒体控制,强有力的市场预装推广,一些不错的功能体验,掩盖了360许多本质的问题
8.360为什么要进入手机?
360的收入增长将以打扰用户、获取用户隐私为主要手段,因此收入基本不具备成长性。360的收入对于投资人来说还是个故事。360在互联网能够拓展的领域基本差不多了。手机是下一个增长点。
PC上隐私有限,手机上用户的隐私更多,更值钱,无数发公司已经证明了这一点。360要进入手机领域,成为移动互联网“**”老大,总领手机软件公司生杀予夺的大权。
9. 为什么做扣费克星?
从扣费克星的查杀列表可以看出周总在手机上沿用了互联网上的思路痕迹:实施焦土战略,先扫清手机上的常用小软件;然后,开始收保护费,顺我者昌,逆我者亡。 “扣费克星”这么响亮,当然要加入恶意扣费软件。但是,手机大头、千尺、来电秀、许多无线SP公司的商用收费软件大都被加入列表。想在手机上发展又没有很强靠山的公司,要注意了。
周总一般先不会得罪大的公司,有不少大公司的软件一样是收费的,但是名单中并没有。联合少量大的,打击小的,这是做流氓的高级策略。当然,大公司也别着急,周总最厉害的就是各个击破,先解决小的,然后逐个收拾大的。
因此,扣费克星对于用户很有吸引力的。也许周总早就在手机上布局了不少***,然后自己杀自己。拿着打流氓的旗号,打造一个更大的***公司,和360在PC上的思路完全一致。
10. 为什么要以个人名义发布扣费克星而不是360?
很多人会问,扣费克星是个人做的,和360有什么关系呢?360为什么用个人名义发布扣费克星,估计原因有三:
周总在PC上干得黑事太多,在手机上不想得罪太多人,所以找了个个人作者来顶缸(手机上的SP公司,如果知道是360挡他们的路,个个都不是好惹的);
用个人作者发布,容易骗取草根网民的认同感和同情心。你看我是一个网民,被扣钱了,所以做了个软件,帮大家解决问题,外表看起来多感人啊。
用个人作者发布,具有很强的迷惑性,很多SP和无线领域的公司,肯定会认为个人作者的产品,不会有很大的影响力,所以不太关注。而360已经在暗渡陈仓,大规模推广扣费克星,等到扣费克星控制局面后,再变身为360。
360官方还象模象样的发表申明说“360只发布了手机卫士(垃圾信息过滤)这一个产品,其他产品与360无关”,太有点“此地无银三百两”了。360自己发布了一个进行垃圾信息过滤的产品,从第一个版本看还比较一般,和信安易等比还有很大距离。当然,360官方说法就是,这是实验室流传出去的beta产品。据说,这几天又推出了一个安全管家,对软件的评论基本一样,估计也是360的,手机上即将开始一场腥风血雨。
11. 奇虎社区今后怎么发展?
答案就是不发展。奇虎的发展,基本完全靠**擦边球内容来充流量,社区不作了,原有的人走的走,没有走的,就帮周总做宣传,打口水仗,帮周总打压瑞星、金山。说到金山,前一段网上有争论“在手机有没有病毒?”,居然有所谓金山的工程师出来说明没有病毒,不知道他是不是真的金山员工?还是金山前员工?是代表金山,还是代表个人?也很可能是360雇佣的写手断章取义,扭曲了人家的发言。
我个人认为,手机病毒是事实,这是任何一个安全工程师都知道的基本问题。手机病毒还没有象PC病毒那样大规模爆发,不像一些手机安全公司宣传得那么严重,也是事实。当然,善于打擦边球,断章取义,混淆视听是周总及其雇佣枪手擅长的事情。
12.为什么周总对媒体控制力强?
周总身边有人上可达政府,下可控制媒体。从3721开始,周总最擅长的就是口水仗,到雅虎,可以说周总的势力范围更是遍天下,据说为周总服务的记者不下千人,各地临时调拨的枪手可达万人。奇虎最初要做论坛搜索,Discuzz!和一大批互联网论坛都是周总投资的。一些媒体朋友不服气,周总甚至设计将其投入监狱。如此的手段,媒体哪能不服气?
扫黄期间,其他网站都被关了,奇虎没事。但是,最近奇虎常常被点名批评涉黄,前一段又被处罚了。涉黄这种事情发生多了,渐渐也没有人敢帮了。也许验证了那句话“夜路走多了,总会见到鬼”。
13.为什么表面上360如此成功,而最初的核心骨干却一个个都离开了360?
今天360的团队早已不再是360最初的那批团队,最初的核心团队早被周总逐个换掉了,360产品的方向也偏离了最初的目标。我们(360最初团队)原本的目标是打造一款伟大的产品,但是360后续发展的方向已经不是我们能够把控的。为了商业利益,360中加入了太多的、标称为“安全软件”不应该做的功能。
离开奇虎,实属无奈。我们不愿意自己精心付出心血打造的360产品(最初的360)又一次成为人人唾弃的***。如果公司真的好,真的是为了用户,我们为什么要离开?
现在360已经成为周总收黑钱、打压对手的工具,和3761***有过之、无不及,实际上,今天的360已经成为互联网最大的***,控制了数千万台PC,比3721最为鼎盛的时候还要大,这是多么可怕的事情。据以前的同事透露,目前360每天搜集的用户数据量高达TB量级。在360面前,用户毫无隐私可言,360保险箱甚至直接存放着用户的各类帐号信息。也许,广大网民刚刚逃脱3721等***的“狼窝”,又进入另一个更大的“虎穴”。
当然,周总常说,流氓足够大了,也就有了江湖地位,就可以漂白了,小流氓是瘪三,大流氓是黑老大。
14.为什么要说出这些?为什么要匿名发表?
周总崇尚柔道战略,这是一种小公司冲击大公司,攻击大公司弱点的有效打法,也非常符合周总的性格。但是,这也决定了周总是个商人,而不是企业家。周总适合把小企业带到中型企业,却再没有能力打造一个伟大的公司。这一点,从3721,到雅虎,到奇虎,都已经充分证明了。
周总本人的优点恰恰也是他最大的缺点,缺少承载一个伟大公司的胸怀和气度。了解360的人都知道,周总身边的人越来越少。当然,周总的用人原则就是,有利用价值的就用,没有利用价值的就滚;服气的留下,不服气的就滚。这也是我们离开奇虎的重要原因。我们似乎很难相信,一个曾经的互联网***之父,一个常常做出损人不利己的事的人,一个连自己多年好友都可以投入监狱的人,可以打造一个伟大的产品和公司。
外表强大凶悍的360,内部其实四面楚歌,病入膏肓。一个事物靠穷兵黩武抢夺回来的,也很快消失。许多人把现在的360都叫做“丧六灵”。原本目标是打造伟大产品的最初360团队,发现产品已经背离了原有的方向。作为最初360团队之一,作为一个有良知的人,我觉得有必要说出这些。
熟悉周总的人都知道,周总经常打电话威胁别人的家人安全。泼脏水,诽谤,诬告,收黑钱,实施恐怖威胁甚至**,是周总的拿手好戏。黑事做多了,心思就多就重,难怪周总出入要请贴身保镖,周总年纪不大,却常常夜不能寐、身体每况愈下。因此有人称周总是“邪教教主”,一是蛊惑群众,二是为了牟取暴利,三是违反法律的约束。很遗憾,周总的手段,用流行语说,“很狠很**”,我只能通过匿名的方式。
老周,回头是岸(周总现在已经不是我老板了,就叫句老周吧)。
Ⅶ 如何防止程序员反编译
Java从诞生以来,其基因就是开放精神,也正因此,其可以得到广泛爱好者的支持和奉献,最终很快发展壮大,以至于有今天之风光!但随着java的应用领域越来越广,特别是一些功能要发布到终端用户手中(如Android开发的app),有时候,公司为了商业技术的保密考虑,不希望这里面的一些核心代码能够被人破解(破解之后,甚至可以被简单改改就发布出去,说严重点,就可能会扰乱公司的正常软件的市场行为),这时候就要求这些java代码不能够被反编译。
这里要先说一下反编译的现象。因为java一直秉持着开放共享的理念,所以大家也都知道,我们一般共享一个自己写的jar包时,同时会共享一个对应的source包。但这些依然与反编译没有什么关系,但java的共享理念,不只是建议我们这样做,而且它自己也在底层上“强迫”我们这么做!在java写的.java文件后,使用javac编译成class文件,在编译的过程,不像C/C++或C#那样编译时进行加密或混淆,它是直接对其进行符号化、标记化的编译处理,于是,也产生了一个逆向工程的问题:可以根据class文件反向解析成原来的java文件!这就是反编译的由来。
但很多时候,有些公司出于如上述的原因考虑时,真的不希望自己写的代码被别人反编译,尤其是那些收费的app或桌面软件(甚至还有一些j2ee的wen项目)!这时候,防止反编译就成了必然!但前面也说过了,因为开放理念的原因,class是可以被反编译的,那现在有这样的需求之后,有哪些方式可以做到防止反编译呢?经过研究java源代码并进行了一些技术实现(结果发现,以前都有人想到过,所以在对应章节的时候,我会贴出一些写得比较细的文章,而我就简单阐述一下,也算偷个懒吧),我总共整理出以下这几种方式:
代码混淆
这种方式的做法正如其名,是把代码打乱,并掺入一些随机或特殊的字符,让代码的可读性大大降低,“曲线救国”似的达到所谓的加密。其实,其本质就是打乱代码的顺序、将各类符号(如类名、方法名、属性名)进行随机或乱命名,使其无意义,让人读代码时很累,进而让人乍一看,以为这些代码是加过密的!
由其实现方式上可知,其实现原理只是扰乱正常的代码可读性,并不是真正的加密,如果一个人的耐心很好,依然可以理出整个程序在做什么,更何况,一个应用中,其核心代码才是人们想去了解的,所以大大缩小了代码阅读的范围!
当然,这种方式的存在,而且还比较流行,其原因在于,基本能防范一些技术人员进行反编译(比如说我,让我破解一个混淆的代码,我宁愿自己重写一个了)!而且其实现较为简单,对项目的代码又无开发上的侵入性。目前业界也有较多这类工具,有商用的,也有免费的,目前比较流行的免费的是:proguard(我现象临时用的就是这个)。
上面说了,这种方式其实并不是真正加密代码,其实代码还是能够被人反编译(有人可能说,使用proguard中的optimize选项,可以从字节流层面更改代码,甚至可以让JD这些反编译软件可以无法得到内容。说得有点道理,但有两个问题:1、使用optimize对JDK及环境要求较高,容易造成混淆后的代码无法正常运行;2、这种方式其实还是混淆,JD反编译有点问题,可以有更强悍的工具,矛盾哲学在哪儿都是存在的^_^)。那如何能做到我的class代码无法被人反编译呢?那就需要我们下面的“加密class”!
加密class
在说加密class之前,我们要先了解一些java的基本概念,如:ClassLoader。做java的人已经或者以后会知道,java程序的运行,是类中的逻辑在JVM中运行,而类又是怎么加载到JVM中的呢(JVM内幕之类的,不在本文中阐述,所以点到为止)?答案是:ClassLoader。JVM在启动时是如何初始化整个环境的,有哪些ClassLoader及作用是什么,大家可以自己问度娘,也不在本文中讨论。
让我们从最常见的代码开始,揭开一下ClassLoader的一点点面纱!看下面的代码:
Java代码
publicclassDemo{
publicstaticvoidmain(String[]args){
System.out.println(“helloworld!”);
}
}
在编译代码时(如使用ant或maven),使用插件将代码进行加密(加密方式自己选),将class文件里面的内容读取成byte[],然后进行加密后再写回到class文件(这时候class文件里面的内容不是标准的class,无法被反编译了)
在启动项目代码时,指定使用我们自定义的ClassLoader就行了,而自定义的部分,主要就是在这里做解密工作!
上面这段代码,大家都认识。但我要问的是:如果我们使用javac对其进行编译,然后使用java使其运行(为什么不在Eclipse中使用Runas功能呢?因为Eclipse帮我们封闭,从而简化了太多东西,使我们忽略了太多的底层细节,只有从原始的操作上,我们才能看到本质),那么,它是怎么加载到JVM中的?答案是:通过AppClassLoader加载的(相关知识点可以参考:http://hxraid.iteye.com/blog/747625)!如果不相信的话,可以输出一下System.out.println(Thread.currentThrea().getContextLoader());看看。
那又有一个新的问题产生了:ClassLoader又是怎样加载class的呢?其实,AppClassLoader继承自java.lang.ClassLoader类,所以,基本操作都在这个类里面,让我们直接看下面这段核心代码吧:

看到这里,已经没有必要再往下面看了(再往下就是native方法了,这是一个重大伏笔哦),我们要做的手脚就在这里!
手脚怎么做呢?很简单,上面的代码逻辑告诉我们,ClassLoader只是拿到class文件中的内容byte[],然后交给JVM初始化!于是我们的逻辑就简单了:只要在交给JVM时是正确的class文件就行了,在这之前是什么样子无所谓!所以,我们的加密的整个逻辑就是:
如此,搞定!以上的做法比较完整的阐述,可以仔细阅读一下这篇文章:https://www.ddtsoft.com/#developerworks/cn/java/l-secureclass/文章中的介绍。
通过这个方法貌似可以解决代码反编译的问题了!错!这里有一个巨大的坑!因为我们自定义的ClassLoader是不能加密的,要不然JVM不认识,就全歇菜了!如果我来反编译,呵呵,我只要反编译一下这个自定义的ClassLoader,然后把里面解密后的内容写到指定的文件中保存下来,再把这个加了逻辑的自定义ClassLoader放回去运行,你猜结果会怎样?没错,你会想死!因为你好不容易想出来的加密算法,结果人家根本不需要破解,直接就绕过去了!
现在,让我们总结一下这个方法的优缺点:实现方式简单有效,同时对代码几乎没有侵入性,不影响正常开发与发布。缺点也很明显,就是很容易被人破解!
当然啦,关于缺点问题,你也可以这么干:先对所有代码进行混淆、再进行加密,保证:1、不容易找到我们自定义的那个ClassLoader;2、就算找到了,破解了,代码可读性还是很差,让你看得吐血!(有一篇文章,我觉得写得不错,大家可以看一看:http://www.scjgcj.com/#blog/851544)
嗯,我觉得这个方法很好,我自己也差点被这个想法感动了,但是,作为一个严谨的程序员,我真的不愿意留下一个隐患在这里!所以,我继续思索!
高级加密class
前面我们说过有个伏笔来着,还记得吧?没错,就是那个native!native定义的方法是什么方法?就是我们传说中的JNI调用!前面介绍过的有一篇文章中提到过,其实jvm的真实身份并不是java,而是c++写的jvm.dll(windows版本下),java与dll文件的调用就是通过JNI实现的!于是,我们就可以这样想:JNI可以调用第三方语言的类库,那么,我们可不可以把解密与装载使用第三方语言写(如C++,因为它们生成的库是不好反编译的),这样它可以把解密出来的class内容直接调jvm.dll的加载接口进行初始化成class,再返回给我们的ClassLoader?这样,我们自定义的ClassLoader只要使用JNI调用这个第三方语言写的组件,整个解密过程,都在黑盒中进行,别人就无从破解了!
嗯,这个方法真的很不错的!但也有两个小问题:1.使用第三方语言写,得会第三方语言,我说的会,是指很溜!2.对于不同的操作系统,甚至同一操作系统不同的版本,都可能要有差异化的代码生成对应环境下的组件(如window下是exe,linux是so等)!如果你不在乎这两个问题,我觉得,这个方式真的挺不错的。但对于我来说,我的信条是,越复杂的方式越容易出错!我个人比较崇尚简洁的美,所以,这个方法我不会轻易使用!
对了,如果大家觉得这个方法还算可行的话,可以推荐一个我无意中看到的东西给大家看看(我都没有用过的):jinstall,
更改JVM
看到这个标题,我想你可能会震惊。是的,你没看错,做为一个程序员,是应该要具有怀疑一切、敢想敢做的信念。如果你有意留心的话,你会发现JVM版本在业界其实也有好几个版本的,如:Sun公司的、IBM的、Apache的、Google的……
所以,不要阻碍自己的想象力,现在没有这个能力,并不代表不可能。所以,我想到,如果我把jvm改了,在里面对加载的类进行解密,那不就可以了吗?我在设计构思过程中,突然发现:人老了就是容易糊涂!前面使用第三方语言实现解密的两个问题,正好也是更改JVM要面对的两个问题,而且还有一个更大的问题:这个JVM就得跟着这个项目到处走啊!
Ⅷ 应该怎样学习JAVA顺序是什么
不知道Java 学习顺序的话,我提供你一条学习线路图!

按照视频学习的过程中,学习方法也是很重要的!一定要记得勤记笔记,整理程思维导图,方便后续复习方便。
第一部分:JavaSE:Java语言最基本的一套库
学习JavaEE或JavaME之前,JavaSE是必学的。
* Java开发环境搭建
* Java基础语法
* 面向对象
* 数组
* 异常
* 集合
* 线程
* IO流
* 反射机制
* 注解Annotation
* 网络编程
第二部分:数据库 【MySQL + JDBC】
* 只要学习编程,数据库是一定要学习的,是一门公共的学科。
* java、C、python、C#等程序员都需要学习数据库。
* 数据库产品很多: MySQL、Oracle、SqlServer、DB2......
* 我们动力节点数据库课程包括:MySQL + Oracle
* Oracle:银行、政府使用oracle的较多。
* MySQL:互联网公司、一般企业使用MySQL较多。
* Oracle我们是提供视频的。课堂上不讲。
* 我们课堂上讲MySQL。
* Java语言链接数据库:JDBC
第三部分:WEB前端
* 系统结构:B/S【Browser/Server】 C/S【Client/Server】
* WEB是网站的意思。WEB前端是:网站当中的页面。
* WEB前端程序是运行在浏览器当中的。
* HTML5 + CSS3 + JavaScript(JS)
* WEB前端也有很多框架:
- jQuery
- Bootstrap
- Vue
- NodeJS
- AugularJS
- RectJS
- LayUI
- EasyUI
.....
第四部分:JavaWEB
* Servlet
* JSP
* AJAX(是JavaScript的一部分语法,专门做页面局部刷新)
第五部分:JavaWEB项目
* 做一个B/S结构的项目,将WEB前端和JavaWEB内容做一个整合练习。
* 其实到这里为止,所有的系统都可以做了。但是用的技术很Low。没有用框架。
Ⅸ 如何把住房性质办公改成商业
1、应先去规划部门申请更改房产性质为商业,取得规划部门同意的文件。
2、再去地政部门补交低价并签订补充合同。
3、去登记部门做变更登记,将房产证上的性质更改为商业。
对商业营业用房历史的回顾,也就是从古至今老百姓所说的商铺,是经营者为顾客提供商品交易服务的场所。商业营业用房的概念我们可以发现,商业营业用房已经经历了很大的发展,已经从最初的经营物品商品,增加到经营服务商品、体验商品的层面。

(9)反编译商用扩展阅读:
商用住宅现状:
在房地产市场调控政策下,2012年全年地价整体水平未现大幅波动,房地产用地全年呈现量跌价稳态势,各季度地价环比增速低位盘整。
国土资源部发布地价监测成果显示,2012年末,全国主要监测城市地价总体水平为3129元/平方米,商服、住宅、工业地价分别为5843元/平方米、4620元/平方米和670元/平方米。与上年同期相比,商、住、工各用途地价增长速度分别为3.34%、2.26%、2.70%。
其中,商业、住宅地价同比增速均处于近十年来的低位,仅略高于2008年,且全年住宅地价累计增幅在三类用地中居于最低,这也是近两轮市场波动中的首次出现。从2009年以来的商住倒挂、住宅地价增速超过商服,到目前与工业地价几乎同速变化,地价结构性调整正在显现。
Ⅹ 广西移动app里和商务是什么
和商务就是移动的一种套餐,专门给商务人士用的,具体咨询10086
