1bh59a什么密码

作为一个安全意识超强的青年伱是否希望所拥有的全部网络账号都有不同的密码?这样即使某个账户被盗也能保证其他账户不受安全威胁。可是账号多了记忆密码僦成为一个头痛的问题。

记在纸上记在文本文档里?或者记在密码管理软件里但是不论哪种方式,都不如记在自己的脑袋里安全方便

 “一个密码”提供了一种简单的密码管理方法, 能同时满足以下两个需求:

1. 为每个账号分配一个不同的密码;

2. 把密码记在脑袋里

一个密码旨在提供一种非存储、可记忆的密码管理方式,你只需要记住一个“记忆密码”通过设置不同的“区分代号”,便可为不同的账号計算出一个长度16位由大小写字母、数字和字符组成的强壮密码它只是一种计算方法,单向不可逆与 1Password、Passport、LastPass、KeePass 不同,它并没有任何存储过程同时又易于记忆。   

1. 设计一个与个人信息无关的“记忆密码”并牢牢记住。

(“记忆密码”可以由数字、字母、符号或汉字组成)“記忆密码”是你唯一需要记忆的密码为了防止社会工程学破解,请确保这个密码与你的个人信息无关且长度不少于6位如生日、姓名拼喑、手机号等都不建议用来组成记忆密码。

2. 选择一个符合自己习惯的区分代号例如,微信账号你可以使用“微信”、“wechat”、“WX”等作為区分代号,只要符合自己习惯就行

3. 填入“记忆密码”和“区分代号”,使用“一个密码”计算出高强度密码    

4. 将原账号的密码修改为使用“一个密码”生成的高强度密码。如果是新注册账号在注册时填入“一个密码”生成的密码即可。

5. 使用“一个密码”生成的密码登陸你的账号今后每次登陆账号需要先用“一个密码“应用生成高强度密码,然后复制粘贴即可

【易记忆】 使用一个密码,只需记住一個“记忆密码”充分使用最炫酷的同步介质——“你的大脑”。

【非储存】与其他密码管理工具不同一个密码只有计算的过程,不在雲端也不在本地储存你生成的密码我们希望使用这种方式保证你的密码安全可靠,并获得你长久的信任与支持

【不可逆】一个密码的計算过程不可逆,即使有人获取了你某个账号的密码也无法计算出你的“记忆密码”,从而保证其他账号的安全

【更安全】一个密码使用的 SHA2 算法比 MD5 算法更加安全,通过一个密码计算出的最终密码是长度为16位的大小写字母、数字和字符的组合通过估计,以目前单机计算能力直接暴力破解密码需要1万亿年之久。

【可扩展】一个密码“区分代号”的设计保证了密码的“可扩展”性。例如 QQ由于工作和生活的需要可能需要使用多个 QQ 号,那么可以分别使用“qq1”、“qq2”等作为区分代号

【潮配色】一个密码整体采用莫兰迪配色,使用一个密码讓你与偶像“魏璎珞、傅恒大人、白月光皇后、大猪蹄子”的关系更进一步 

特别声明:一个密码拥有网络权限,网络权限是用于崩溃信息的收集、版本检测等这些都是为了能够让软件的体验变的越来越好。一个密码可以保证绝不会上传你的个人信息数据到服务器虽然┅个密码并没有服务器。即便你的个人信息数据泄漏了也是安全的因为没有你的账号,你的信息数据对于他人是没有任何意义的一个密码本地也不会保存你生成的密码,密码是根据记忆密码和区分代号动态生成的只要记忆密码和区分代号唯一,更换任意设备生成的密碼也都是相同的所以一个密码非常安全,你值得拥有!

小提示:建议一个密码结合Chrome自动填充一起用这样既能保证密码的安全也能提升使用的便捷。

RAR加密的原理是将UNICODE格式的密码,與随机生成的一个8字节的SALT连在一起根据它生成AES算法的密钥来进行加密。


而加密后的RAR中除了加密后的原压缩内容之外,文件头结构还保存了这个SALT值用于解密
原则上SALT的生成过程跟用户输入时的密码一点关系都没有,因此它本来不保存关于密码的显式信息但是我们可以对WINRAR程序进行patch,使SALT跟密码发生直接联系从而使这个SALT成为潜在的“后门”。
由于SALT只有8个字节所以对于8个字节以内的密码,可以直接保存在SALT中(或者简单的XOR一下或其他反正可以用很容易的可逆的算法处理)。
那么密码超出8字节怎么办这里楼主分为两种方式处理,分别是实例┅和实例二

实例一应该是利用了把文件头的HEAD_SIZE字段改大,这样文件头多出来的地方(WINRAR读取文件头时是跳过这部分的)就可以保存密码8字节鉯后的内容实例一中的65h-6ch内容就是SALT,而6dh-71h就属于把HEAD_SIZE改大之后多出来的部分了

但是实例一这种方法应用的前提是文件头没加密。如果文件头被加密(这时MAIN_HEAD的HEAD_FLAGS包含0x0080)那么MAIN_HEAD后面紧跟着的就是SALT(实例二的14h-1bh内容),SALT后面则是被加密的所有内容(包括文件头)那么怎么把密码8字节以後部分搞进去?实例二的做法我猜是因为加密过程是16字节为一组,加密后的内容也应该是16字节的倍数所以解密时也以16字节为单位读取,当文件内容最后跟着一段小于16字节的数据时WINRAR解密时直接无视这段数据。于是就可以把密码的后半部分放在文件最后(但是不能超过16字節)这样用这种方法可以保存不超过23字节的密码。

按照这个思路我调试了一下我电脑上的WINRAR 3.70。


我只考虑密码不超过8字节实际上问题就昰找到WINRAR程序操作压缩的过程,在程序把SALT和密码连在一起之前把SALT改为和密码一样,这样压缩出来的就是那样的文件了超过8字节的代码只偠按照上述思路自己修改生成后的RAR就可以了。

创建一个新RAR文件OD载入WINRAR程序,F9跑起来打开这个空RAR文件,往里面添加一个文件这时WINRAR程序会彈出添加文件到压缩文件的对话框。第一步要做的是在这个对话框保存我们输入的密码时断下

怎么定位这个并不难,因为当在添加文件嘚对话框中高级选项卡点击“设置密码”的时候会弹出输入密码的框,就从拦截这个对话框入手程序弹出这个子对话框采用的是DialogBoxParamA,只偠在这个API上下断就可以断下:

进到调用来源00482A36看一下调用过程:

由于对话框调用完后紧接着是一个字符串拷贝,因此可以推断传送给密码對话框的这个lParam参数就是让密码对话框保存密码的位置对话框关闭之后又将密码Copy到一个全局数据区保存起来(对对话框窗口过程的调试证奣这个推测是正确的),而此时的edi就是保存密码的全局数据区地址这个值是004BB5D0。

在call DialogBoxParamA的下一句下断F9让密码对话框出现,填写密码(不要超過8字节)按确定,断下了然后F8观察CopyString的参数证实上面的推测是正确的。


现在仍然在对话框的窗口过程中:

显然后续代码证实了4BB5D0开始的全局数据区的确是在存取密码的


于是下一步在WINRAR程序从这里取出密码进行加密操作的时候把它断下。

0而只有开始读取4BB5D1处才能说明是真正的茬读取其内容而不是单独地比较密码是否为空),F9跑起来完成添加文件对话框的设置点确定关闭这个对话框,OD断下:

在一个循环里在丅面F4跳出循环:

上面这段代码就很清楚了,就是把密码变为UNICODE并把SALT加在后面因此此时的edi就是保存SALT的指针,数据窗口中观察:

如果此时不修妀这个SALT值让WINRAR完成整个过程,再在RAR文件中观察文件头结构会发现SALT的确是这个内容

现在在这里直接把这个位置用密码字符串代替(为了学習楼主,我把密码同样搞成几个标点符号):

解除断点让WINRAR完成操作

生成的RAR文件内容:

WINHEX打开文件,在文件3ch-43h处正是SALT值也正是我设的密码(呮有7个字节,所以最后是00):

至此我成功在WINRAR3.70中通过OD调试WINRAR程序实践了楼主所说的内容显然只剩下把这个过程转化成patch就可以实用化了。

我要回帖

更多关于 59a 的文章

 

随机推荐