文章

避免破解悲剧:这样设置的密码好记且无法破解

近日,知名社交应用Instagram遭黑客攻击,歌手兼演员赛琳娜·戈麦斯因账号被盗导致大量与前男友贾斯汀·比伯的私照流出,好在处理及时才稳住了局面。   当然,因账号被盗而导致的明星不雅照外泄,也不是什么新鲜事。足可见,密码对账号安全的重要性。那么,如何设置一个兼顾安全和易用性的密码呢? 实际上,此次泄露事件很可能是因为Instagram存在一个极为严重的漏洞所致。 除了傻脸娜,被盗账号的名人还包括了艾玛·沃特森、艾米莉亚·克拉克、扎克·埃夫隆、莱昂纳多·迪卡普里奥、查宁·塔图姆,哈里·斯泰尔斯、埃莉·古尔丁、维多利亚·贝克汉姆、碧昂斯、Lady Gaga、蕾哈娜、泰勒·斯威夫特、凯蒂·佩里、阿黛尔、史诺普·道格、布兰妮·斯皮尔斯,弗洛伊德·梅威瑟、齐达内、内马尔、大卫·贝克汉姆、小罗纳尔多。 其实,每当互联网发生了重大的安全漏洞,我们都要思考一个问题,就是在你所有账号的服务方打了补丁后立刻修改账号密码。 当然,定期更换密码是个良好的安全习惯,但是换多了总有记混记错甚至不知道该设置什么的情况发生。 全世界,约有8%的用户知晓和使用某种密码系统,来生成和保管一些独特的、随机的无法破解的密码,因此他们从来不会重复使用某个密码;而剩下那92%的用户,始终找不到一个行之有效的办法,人人都想打造一个独一无二的密码,但结果却是你的密码或许早就存在与某些黑客的密码词典里。 什么样的密码不可破解呢? 一个是要够长,越长越难破解;还有就是排除字段,例如名字、地点,一切有可能出现在词典中的字词;最后,就是将大小写、数字与拼写,随机的混合起来。安全系数是提高了,但是毫无关联的密码,如何记忆成了问题。 因此,一个完美的密码需要兼顾安全性与可用性。 尽管随机密码安全系数很高,但使用过程中存在的最大问题是--难以记记忆。你大可坐在电脑前,胡乱的在键盘上打出一排字符,破译者难以破解,但问题是你记得住吗? 下面要说的这四种方法,希望能够帮助各位创建一个无法破解的密码。 Bruce Schineier方法 2008年提出的一种密码思路,即找一个句子(可以是任何一句话),将句子中的每一个单词找出来,缩略为一个字母,然后通过独特的方式组合成为一段密码,最后一句话生成一个密码。 例如,W?ow?imp::ohth3r→Where oh where is my pear? Oh, there Electrum钱包法 知晓比特币的朋友大概都知道钱包的“密码”地址是怎样形成的。Electrum是一个比特币钱包服务,能够为用户的比特币钱包地址,通过哈希机制转换为一个12个单词组成的助记码。 例如,下面这幅图片。 PAO法 其实,是卡耐基梅隆大学计算机科学家建议使用的一种名为‘人-动作-物品’(即Person-Action-Object,PAO)的密码助记方法,来创建和记忆高安全性的密码。 大致方法就是,找一个有趣的地方的一张照片、找一个你熟悉的人或名人的照片、想象这个人在这个地方做的一件事,例如傻脸娜在家做饭(selena gomez cook at home),形成sgcoho这样一个随机的6位密码,当然你可以创建不同长度的密码。 发音和肌肉记忆法 随便找一个密码生成器,生成至少20个至少10位长的密码,当然要包括数字和字母,反复看并找到一些和单词类似的发音结构,找到那些勉强能够发音出来的密码,而且能够大概写成短句的,例如drEnaba5Et→doctor enaba 5 E.T.,又或是BragUtheB5→brag you the V5。 其实,不管最后你决定使用哪种方法,都要挨个将你注册过的网站和服务的密码进行替换。在这个过程中,你会慢慢熟悉新密码,既随机又能通过反复敲打键盘而记住。 记住!永远不要重复使用一个密码。 别问我怎么知道的

文章

PHP加密解密的解析

  php做为一门当下非常流行的web语言,常常看到有人求解密php文件,想当年的asp也是一样。一些人不理解为什么要混淆(加密),甚至鄙视混淆(加密),在我看来混淆加密代码可以用来防一般的小人,会起到一定的保护作用。 加密的原因:       我一直都比较关注代码的加解密,从简单eval base64,gzcompress,gzinflate 到 威盾,Zend Guard加密,到近期比较流行的一种二进制(unicode乱码)加密,如 phpjm,phpdp神盾。对比这几种加密方式。                          

文章

小工具更新——在线HTML加解密

  博主明天就要去学校了,可能文章就不会更新的那么勤了,趁着还有点时间。更新一个在线的小工具——在线html代码加解密   1.打开在线html代码加解密网站   2.复制需要加密的HTML代码(支持php加密)至输入框     3.点击加密按钮     4.复制输出框的所有字符 5.将原html(或者php)文件改成下图所示,然后保存,测试好之后,上传至空间即可。  

文章

破解Linux环境下Shell脚本加密的几种思路

    大体的说下,Linux下目前比较流行的加密方法有两种: 第一种方法: 采用gzexe加密,严格来讲,gzexe这种脚本加密方式不是加密,而是把代码进行了压缩,但是这种方式能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。它是使用Liunx系统环境下自带的gzexe程序,它不但加密,同时压缩文件。 gzexe加密linux脚本的使用方法: gzexe file.sh /它会把原来的文件备份为 file.sh~ ,同时 file.sh 即被变成加密后的可执行文件 使用gzexe加密的shell脚本代码特征为:前面一段代码是正常的命令字符,到了后面某一行开始就全部为乱码,示例如下 gzexe加密shell解密思路:跟踪代码的执行过程可以发现,脚本执行到某一步的时候会生成临时解密的shell脚本 ,整个脚本执行完之后再把临时解密shell脚本所在目录删除。有了这个发现,我们就找到了方法了。 第二种方法: 使用Linux下脚本加密工具SHC对shell脚本进行加密,SHC可以将shell脚本转换为一个可执行的二进制文件。经过shc对shell脚本进行加密后,会同时生成两个新的文件,一个是加密后的可执行的二进制文件(name.sh.x),另一个是C语言的原文件(name.sh.x.c)。shc加密工具的详细安装和使用教程我这里就不讲了,有兴趣的朋友自己搜一下有很多,使用也比较简单。在这里博主主要给大家分享一个SHC加密工具破解的方法,此破解工具来源于国外的大牛,详细的代码在下面,复制下面的脚本后另存为unshc.sh,然后执行脚本即可,会有提示告诉你怎么解密。 unshc.sh一键解密脚本  

文章

app防盗——一键加密

自己辛辛苦苦开发的软件,还没发到应用市场就被别人偷过去了? 然后改个名字,换个样式发到应用市场? 云免软件泄露流控key?泄露ip地址?被黑后台? 试试360加固吧,app加密,让你的app固若金汤 http://jiagu.360.cn/protection?s=1 360加固保-第三方移动应用安全服务平台|应用加固|盗版监测 最新:Android apk资源保护方案研究分析 日期:2016-11-04         Android APP以APK文件形式存在,APP中主要包含应用程序代码和资源文件两部分,如何有效保护Android应用中的代码、资源的安全一直是开发者最关心的话题。针对应用程序代码,目前主要有两类方案,即代码混淆和应用加密。比较常见的代码混淆有proguard、dexguard等,而应用加密近些年国内也涌现出很多安全厂商提供该服务。本文则主要针对Android apk资源文件保护方案进行分析。 Android apk中的资源主要分为assets资源和res资源两类。Assets资源存放在APP的assets目录下,该类文件是一些原始文件,APP打包时并不会对其进行编译,而是直接打包到APP中,对于这一类资源文件的访问,应用层代码需要通过文件名对其进行访问。Res资源则存放在APP的res目录下,该类资源在APP打包时大多会被编译,变成二进制文件,并会为每个该类文件赋予一个resource id。对于该类资源的访问,应用层代码则是通过resource id进行访问的。 Android apk资源文件中存放了大量的应用UI界面图片、UI布局文件、隐私数据文件等,保障这些文件的安全性一直困扰着开发者,接下来将具体分析一下目前市场上常见的资源文件保护方案。一、 Android资源文件保护相关方案 目前对Android应用资源文件的保护主要有两类方案,一类是对资源文件混淆保护,另一种则是对资源文件加密保护。 1. 资源文件混淆保护 Android apk开发过程中公司大都提倡命名规范化,因此通过文件名称非常容易理解其含义,这样有利于开发者理解和维护应用,但是同时也给应用破解者提供了方便,破解者通过这些命名很容易便可找到他们需要的文件位置,并理解这些文件的意图。对资源文件进行重命名则可以在一定程度上提升破解者理解这些文件的难度,从而一定程度上提升资源文件的安全性。例如将原资源文件res/layout/activity_main.xml命名为res/a/a.xml,通过layout和activity_main.xml我们很容易知道该文件可能是个布局相关文件,且可能是主activity的布局文件,而被混淆变成res/a/a.xml后,破解者则很难通过名字知道a.xml文件的作用。 我们知道,Android应用在编译过程中aapt工具会对资源文件进行编译、打包,并生成一个resource.arsc文件,resource.arsc文件相当于一个文件索引表,记录了很多跟资源相关的信息。因此,如果需要对资源文件进行混淆,如何保证resource.arsc文件的正确性是个难点。至少我们可以两个方面攻克这一问题。 1) 修改aapt方案 在APP的编译打包过程中,工具aapt负责对资源文件进行编译、打包并生成resource.arsc文件,因此我们可以通过分析并修改aapt源码来实现生成正确的resource.arsc文件。 2) 修改resource.arsc文件 修改aapt源码的方案对开发者要求较高,且不同版本aapt可能有区别,直接修改打包好的APP中的resource.arsc文件可能也是一个不错的方案。 文件resource.arsc的格式可以通过分析aapt的源码获知,且目前也有很多文档介绍该文件的格式,因此,我们可以通过对APP解包、读取、解析、修改其中的资源文件和resource.arsc文件来实现对APP资源文件的混淆。 下面我们通过一个demo APP文件展示一下资源文件混淆保护的效果。 其中图1为资源文件保护前的资源文件结构图,图2为资源文件保护后的资源文件结构图。 图1 资源文件保护前res目录结构 图2 资源文件保护后res目录结构 从图1和图2可以看出,资源文件混淆后,原来的res目录变成了r目录,该目录下的目录名字都变成了没有字面意义的字母,从而一定程度上保证了res资源的安全性。 以上提出的资源文件混淆保护方案有一定技术难度,所以在开发者实际使用过程中并没有广泛运用。目前,开发者出于技术能力和精力的种种限制,越来越多的开发者选择使用第三方应用加密保护平台来实现对资源文件的保护。 2. 资源文件加密保护 资源文件加密保护,从字面来看,无非是对APP中的资源文件进行加密,在APP运行时对资源文件进行解密恢复,从而使应用正常访问资源文件。由于资源文件被加密,因此通过对APP进行反编译并不能看到真正的资源文件,从而保证资源文件的安全性。虽然资源文件加密保护大体思路如此,但是实现方案和效果则可能不同。下面以360加固保提供的资源文件加密保护方案为例分析其方案效果。 写一个demo APP文件,使用360加固保的资源文件加密保护功能,图3和图4为资源保护前的APP的assets目录和res目录文件结构,图5和图6为资源保护后的APP的assets目录和res目录文件结构。 图3 资源保护前assets目录文件结构 图4 资源保护前res目录文件结构 如图3和图4所示,原APP的assets目录下有三个文件,分别是a.log、b.log、c.log。res目录下有很多文件,如ui文件、配置文件等。目录assets下面存放的是未进行压缩的原始文件,可以很容易的被破解者修改并重打包,目录res下的文件虽然大部分是经过了压缩处理的,但是其中的图片却能直接看到,且即使是被压缩过的二进制文件也很容易被破解者修改。 接下来使用360加固保的对该APP进行资源文件保护,解压保护后的APP,得到图5和图6。图5为360加固保资源文件保护后的assets目录结构,图6为资源文件保护后的res目录结构。 图5 资源保护后asset目录文件结构 图6 资源保护后res目录文件结构 图5中可以看出,之前该目录下的a.log、b.log、c.log文件消失了,但多出了libjiagu.so、libjiagu_x84.a、libjiagu_x86_1.a、libjiagu_x86.so和resConf文件。多出的这些文件则是360加固保的APP加固和资源加密相关的文件。 图6中可以看出,之前res目录下的很多文件都不见了,查看了一下留下的几个目录的文件,里面的文件是APP的图标。 可以看到使用360加固保后,能对资源文件进行有效的加密保护效果。360加固保资源文件加密保护的大体原理如下: 1)  抽取原APP中需要加密保护的资源文件 解压抽取APP中的需要加密的资源文件,并过滤到一些不能保护的资源文件,如APP图标等; 2)加密资源文件 对抽取出来的需要加密保护的资源文件进行加密处理,并隐藏起来; 3) 实现外壳程序 要想让APP正常运行,则需要为使用资源保护后的APP实现一个外壳程序,360加固保本身具有APP加固功能,因此他们可以将资源文件保护的恢复程序集成到360加固保的加固壳程序里面,如果不使用360加固保,那么我们就需要自己实现一个外壳,外壳程序需要负责在APP使用资源前对资源文件进行恢复。例如如果保护我们自己的APP资源,那么我们就需要实现一个资源恢复程序外壳,并将该外壳的程序入口代码放到APP中,壳程序入口的运行时机应足够早,比如放到我们可以将这个外壳放在应用代码的Application类里面。 本文介绍了两种可行的资源文件混淆保护方案,一种是修改aapt工具,让aapt在编译资源时生成混淆后的正确的resource.arsc文件,同时修改资源文件名称,另一种方案则是直接修改APP中的资源文件名,同时修改其中的resource.arsc文件。 从实现难易度和工作量综合来看,第二种方案,即直接修改APP中相关文件可能更为适合,但从保护效果来看,两种方案实现的混淆效果是一样的,都是对文件进行重命名。 资源混淆保护方案优缺点: 优点:可减小APP体积。 缺点:安全强度有限:仅对资源文件进行重命名并不能有效的保护资源文件,破解者依然能可查看并修改资源文件内容,assets文件保护难度较大:如需对assets目录下的资源进行混淆,则需要修改java程序代码或者dex文件,难度和复杂度较大,容易出错。 资源文件加密保护方案优缺点: 本文对360加固保的资源文件保护方案的效果和实现进行了分析,从效果来看该保护方案安全强度较高,资源文件加密处理后在APP中不可见,且壳程序采用native代码实现,逆向难度较大。 优点:安全强度高,破解者不能查看和修改资源文件。 缺点:由于需要运行时解密,有可能会对APP的性能有所影响,不过经过测试平台的测试,加固后对APP的兼容性在99%以上,这也是越来越多的开发者选择这种第三方应用加固平台的原因。 说了这么多 还没讲到重点真是尴尬 360加固保可以在线加密app http://jiagu.360.cn/protection?s=1 适用一切app,支持Android2.x-7.x操作系统 再也不用担心云免软件泄露你的IP地址了

教程

Shell脚本加密与解密

  我们写的shell脚本里面通常会包含帐号密码等信息或者你不想让别人看到的信息,那么把写好的shell脚本进行简单的加密显得有些必要了。 常用的shell加密方法有两种,一种是通过gzexe加密,另一种是通过shc加密。 我们先给一个简单的脚本,然后用它来进行加密解密演示,脚本abc.sh内容如下 1 2 #!/bin/bash echo "hello world!" gzexe加密与解密shell脚本  (tips:绿色为输出内容) 1 2 3 4 5 6 7 8 9 bash abc.sh         # 执行后显示内容 hello world! gzexe abc.sh         # 压缩 abc.sh:  18.8% ls -l                # 压缩完成后, abc.sh~ 是原文件 , abc.sh 是压缩后的二进制文件 abc.sh   abc.sh~ mv abc.sh abc sh abc             # 压缩后再执行正常 hello world! 我们只需要把abc这个二进制文件传到机器上执行就可以了,并不需要关心它的源码,别人也不能通过这个文件看到shell代码,我们cat显示一下这个文件发现内容全部乱码,如图(乱码内容未全部截图出来)。 但是通过gzexe加密的shell脚本并不是很安全,细看我们如何通过abc这个乱码的执行文件还原成原来的shell脚本。 但是通过gzexe加密的shell脚本并不是很安全,细看我们如何通过abc这个乱码的执行文件还原成原来的shell脚本。 我们看到内容中有一行叫skip=44,这一行非常重要,它告诉我们从第44行起才是原来压缩之前文件的内容,前面都是压缩软件附加上去的内容。虽然从44行往后面也全部都是乱码,我们也读不懂这些内容,但是gzip程序会告诉我们的。 首先我们把第44行以后的内容过滤出来生成一个.gz结尾文件,然后解压,文件内容就都出来了。  (tips:绿色为输出内容) 1 2 3 4 5 6 tail -n +44 abc > /tmp/a.gz       # 我们把第44行以后的文件写成一个.gz结尾的压缩文件 cd /tmp gunzip a.gz            # 解压生成的文件 cat a                  # 解压后的文件和压缩文件同名 #!/bin/bash echo "hello world!" 我们看到解压之后,文件里面的内容和原来压缩之前是一样的,成功完成解密。 shc加密shell脚本 shc是比gzexe安全的多的加密软件,不过网络说通过gdb调试也是可以显示内容的,不过我没有尝试,网上也没啥资料。 shc官方网站:http://www.datsi.fi.upm.es/~frosal/sources/ shc安装过程 1 2 3 4 5 wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz tar zxvf shc-3.8.9.tgz cd shc-3.8.9 mkdir -p /usr/local/man/man1/       # 这个是必须的,帮助文件会写到这里,没这个目录会报错 make install 安装完成后,我们再创建个文件做测试,文件123.sh内容如下 1 2…