[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
看雪论坛 > 『软件逆向』
发新帖
[原创]IDA7.2安装包分析 优 红金龙e晓楼
IDA7.2安装包分析 1. 侦查环境 1. 运行环境 2. GIT查找 3. VT查找 2. 对比流程 3. 查看源码 4. 结论
大佬们如有需要直接翻结论吧 , 粗浅的分析不看也罢 .
侦查环境 直接运行,得知会释放几个文件
子进程启动命令行: 1 2
"C:\Users\ADMINI~1\AppData\Local\Tem "C:\Users\ADMINI~1\AppDa ta\Local\Temp\is-JA59I.t p\is-JA59I.tmp\1.tmp" mp\1.tmp" /SL5="$802DA,215117655,117248,C:\Users\Administrator\Desktop\1.exe"
https://bbs.pediy.com/thread-248989.htm
1/12
[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
90FC739C83CD19766ACB562C66A7D0E2
翻查字符串时, 找到一个链接: http://www.innosetup.com/ http://www.innosetup.com/ 一个打包安装器
查找破解过程 打包软件: http://www.jrsoftware.org/isinfo.php https://github.com/jrsoftware/issrc
输入密码有弹窗, 直接尝试暂停程序栈回溯
跑起来 调试器附加到tmp文件, 输入错误密码, 然后暂停查看栈回溯
https://bbs.pediy.com/thread-248989.htm
2/12
[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
因为在正常安装时, 会有明显卡顿的感觉, 给人一种验证程序冗长的感觉, 在回溯几层之后, 发现一个 sleep ,怀疑是否与此有关, 函数头下 断.
发现了输入的测试数据, 载入IDA静态查看, 不远处发现一个字符串,
https://bbs.pediy.com/thread-248989.htm
3/12
[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
当时在这一块纠缠了一段时间, 发现可能是一个脚本引擎,
https://bbs.pediy.com/thread-248989.htm
4/12
[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
所以直接去Git搜索了这个字符串"CheckPassword"
https://bbs.pediy.com/thread-248989.htm
5/12
[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
翻源码不现实, 有7.0的安装包, 也定位到相应的地方, 进行正确流程对比
验证函数
继续GIT搜索字符串 https://github.com/jrsoftware/issrc/blob/3f52d https://github.com/jrsoftwa re/issrc/blob/3f52db8a5004d72 b8a5004d7222277430c3b 22277430c3b942eb03004 942eb03004aa7a/Projects/Ma aa7a/Projects/Main.pas#L356 in.pas#L356
https://bbs.pediy.com/thread-248989.htm
6/12
[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
1 2 3 5 6 7 8 9 10 11 12
unction TestPassword(const TestPassword(const Password: String): Boolean; var Context: TSHA1Context; Hash: Hash : TSHA1Digest; begin SHA1Init(Context); SHA1Update(Context, SHA1Update (Context, PAnsiChar( PAnsiChar('PasswordCheckHash' 'PasswordCheckHash')^, Length('PasswordCheckHash' Length('PasswordCheckHash')); SHA1Update(Context, SHA1Update (Context, SetupHeader. SetupHeader.PasswordSalt PasswordSalt, , SizeOf(Setup SizeOf(SetupHeader.Passw Header.PasswordSalt)); ordSalt)); SHA1Update(Context, SHA1Update (Context, Pointer(Pass Pointer(Password)^, word)^, Length(Passw Length(Password) ord)*SizeOf(Password[ 1])); Hash := SHA1Final(Context); Result := SHA1DigestsEqual( SHA1DigestsEqual(Hash Hash, , SetupHeader.PasswordHash); end;
https://github.com/jrsoftware/issrc/blob/bc670 https://github.com/jrsoftwa re/issrc/blob/bc670b6b6be9e03 b6b6be9e03ce645235a2 ce645235a258761ac4993 58761ac499348b3/Projects/Com 48b3/Projects/Compile.pas#L353 pile.pas#L3535 5 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 17
procedure GeneratePasswordHashAndSalt(const GeneratePasswordHashAndSalt(const Password: String; var Hash Hash: : TSHA1Digest; var Salt: TSetupSalt); var Context: TSHA1Context; begin { Random salt is mixed into the password hash to make it more difficult for someone to tell that two installations use the same password. A fixed string is also mixed in "just in case" the system's RNG is broken -- this hash must never be the same as the hash used for encryption. } GenerateRandomBytes(Sa GenerateRa ndomBytes(Salt, lt, SizeOf(Salt) SizeOf(Salt)); ); SHA1Init(Context); SHA1Update(Context, SHA1Update (Context, PAnsiChar( PAnsiChar('PasswordCheckHash' 'PasswordCheckHash')^, Length('PasswordCheckHash' Length('PasswordCheckHash')); SHA1Update(Context, SHA1Update (Context, Salt, SizeOf(Salt) SizeOf(Salt)); ); SHA1Update(Context, SHA1Update (Context, Pointer(Pass Pointer(Password)^, word)^, Length(Passw Length(Password) ord)*SizeOf(Password[ 1])); Hash := SHA1Final(Context); end;
结论 直接暴力跳过SHA1验证,是可以过掉验证,但是在后续解密中, 依然会用到此KEY,进行解密和解压操作
https://bbs.pediy.com/thread-248989.htm
7/12
[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
内存提取数据: 1 2 3
PasswordSalt1: PasswordCheckHash PasswordSalt2: C4 16 39 79 28 46 E4 56 SHA1Final: F2 9F 55 F0 7C 04 3A D3 4B 3D E1 50 50 15 35 F4 44 24 ED AD
5
F29F55F07C043AD34B3DE150 F29F55F07C04 3AD34B3DE150501535F44424 501535F44424EDAD EDAD
由于本人密码学相关知识学的并不扎实, 待大佬们弄吧, 个人感觉可能解出来之后 也不那么尽人意, 插件可能不全哦.
查找上传用户 文件名
HASH
国家城市
IDAPRO7.2 IDAPRO7.2_ESET _ESET_KEY _KEY.key .key 9A93B8E4CCD5 9A93B8E4CCD5CF7B758 CF7B75883370E1 83370E1327142 327142 MY kuala lumpur IDA72_EXE
F1982A5C602EE0930160B6B52E76C031 RO filiasi
ida72_ZIP
ba0319e7c16ca4ef399c8d728d42ba81
GB london
经过观察: key
文件为扫描上传, 仅为授权信息, 此数据源上传文件十几万 应该马来一个分析员开的杀软自动提的VT
EXE
为主动上传, 在关联信息来看,与 KEY 暂无关联
ZIP
上传时间最新, 应该是下载EXE之后, 压缩又重新上传的, 仅一条记录
路径: C:\Users\User\Downloads\Compressed\HexRays. C:\Users\User\Downlo ads\Compressed\HexRays.IDA.Pro.7.2\34zvo.HexRa IDA.Pro.7.2\34zvo.HexRays.IDA.Pro.7.2\idapro72 ys.IDA.Pro.7.2\idapro72a\idapro72\IDAPRO7.2_ES a\idapro72\IDAPRO7.2_ESET_KEY.key ET_KEY.key
[推荐]看雪企服平台,提供安全分析、定制项目开发、 APP等级保护、渗透测试等安全服务!
上一主题
下一主题
12
2
收藏
赞
打赏
分享
最新回复 (26) 最新回复 (26)
ChengQing
nice try. keep going.
TeLeMan 1
innounp -v -m x64_idapronw_hexarm64w_181105_de455c480e11ef1ec91473028f4dd175.exe
可以列出安装包中的所有文件。
uvbs
有你的1.exe + IDAPRO7.2_ESET_KEY.key 是不是可以直接用了
红金龙e晓楼 uvbs
有你的1.exe + IDAPRO7.2_ESET_KEY.key 是不是可以直接用了
那相当于只是跳过验证, 没啥用的
https://bbs.pediy.com/thread-248989.htm
8/12
[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
最新回复 (26) 最新回复 (26) 叁毛 1
红金龙e晓楼 那相当于只是跳过验证 , 没啥用的
最大的价值是里面的库,可以识别最新的一些操作系统宏定义,不用自己导入。如果解出来的话,还希望兄台共享下。
Diabloking
密钥是用来解密数据的, 你跳过验证毛用没有
Morgion 1
真的想搞套正版的IDA 7.2的话,你们可以从远控马上入手哦~欧美很多杀软厂商的分析员喜欢把 IDA放进VMWare里跑, 你懂 的。
月落之汀 1
泄漏的这个ida只有arm64反编译器,直白点说,就算解密出来,除了F5苹果的东西基本没任何用途,讲道理,如果真的需要 id a,尝试购买一套就可以了,只买对应平台的反编译器的话没那么贵, ida强大之处不仅在于F5,如果不会写插件和脚本与ida交
互的话,相当于只掌握了一半
FadeTrack 1
2步到位,愣是整这么复杂 0. 提temp 1. 断messagebox,看栈,回溯到首次出现解压密码的地方 2. PasswordCheckHash PasswordCheckHash上面那个函数就是sha1 初始化(特征不要再明显了)
顺带解释一下,这段 (PasswordCheckHash (PasswordCheckHash 上下) 只是用于效验解压密码的 虽然能绕过解压密码的效验,但是解压密码不对依旧是无法解压的 2019-1-17 10:40
FadeTrack
拍拖 1
之前在INNO打包软件中定制开发实现增量下载安装工具时分析过,密码会参与文件的压缩打包,所以跳过去解压会失败,还原 不了原始文件。INNO是开源的可以直接对照者调试分析,方法是找到对应 INNO源码直接编译成EXE后,直接加参数指向原始 的那个EXE,会利用你编译的带源码的EXE直接读取原始安装EXE进行安装内容的读取和安装过程的执行(可以源码调试 的)。之前我们就是这样调试分析INNO的。
红金龙e晓楼 FadeTrack 2步到位,愣是整这么复杂 0.
提temp1. 断messagebox,看栈,回溯到首次出现解压密码的地方 2. PasswordChec
kHash上面那个函数就是 sha1 初始化( ...
难者不会, 会者不难, 就是瞎发一贴子而已, 没什么高大上的东西, 轻喷 现在只求@火绒 别告我使用火绒剑就好.
daddies
hash算法是 sha1($salt.unicode($pass)) sha1($salt.unicode($pass)) 密码规则好像是^[a-z|A-Z|0-9]{12}$ 看样子是跑不出来的。。。
https://bbs.pediy.com/thread-248989.htm
9/12
[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
最新回复 (26) 最新回复 (26) 红金龙e晓楼 daddies hash算法是 sha1($salt.unicode($pass)) 密码规则好像是 ^[a-z|A-Z|0-9]{12}$
看样子是跑不出来的。。。
全插件全平台的可能大家还会搞一下, 就目前来看, 仅一个X64, 都感觉成本太高
DWwinter
tjszlqq 1
红金龙e晓楼 全插件全平台的可能大家还会搞一下 , 就目前来看, 仅一个X64, 都感觉成本太高
我到是有一个主意,论坛高手搞一个跑码程序,把密码分成一千段,或者一万段。论坛上的人来领一段跑,出了密码第一时间 在论坛公布,就算一个月能跑出来,也是行的啊,我到是愿意领一段跑一个月。 2019-1-22 15:44
tjszlqq
Fpc 4
62^12=2^71,DES是56位的,不好跑
安装解密分四步 第一步password用sha1生成密钥,一个salt salt: c4 07 17 7b 00 B8 91 60 这个salt在安装文件中能找到,后面跟的就是待解密数据 sha1生成的密钥长度14 bytes, 160 bits
第二步用上面的密钥初始化rc4(即arcfour),这个算法在dll中,文件很小,它网站上有源码 第三步readproc 读源数据,每slice 10000 bytes ,读取时用rc4解密 第四步用zlib解压缩,password有问题时这里会raise exception 貌似没有太好的办法
NightGuard 1
月落之汀 泄漏的这个ida只有arm64反编译器,直白点说,就算解密出来,除了 F5苹果的东西基本没任何用途,讲道理,如果真的
需要ida,尝试购买一套就可以了,只买对应平台的反编译器的话没那么贵, ida强大之处不 ...
请问怎么看出来F5只有 arm64 的?
tjszlqq 1
问题是这个安装密码是怎么生成的?感觉总有它的生成空间啊?不可能 62^12种可能都有可能生成。如果找到规律,要跑的空间 就少了。就算要跑62^12。不用GPU,我试了下,垃圾电脑每秒可以达到二百万个。十亿级的用户的话,最多 42天可以跑出 来,也有可能一小时就出来了。360,QQ,微软的程序员完全有这个能力哇! 2019-1-24 09:38
https://bbs.pediy.com/thread-248989.htm
tjszlqq
10/12
[原创]IDA7.2安装包分析-『软件逆向』-看雪安全论坛
4/1/2019
最新回复 (26) 最新回复 (26) 月落之汀 1 NightGuard
请问怎么看出来 F5只有 arm64 的?
hexray 都是正版投递到你的邮箱的,每个安装包都有不一样的签名,包含的反编译种类在文件名中就有标识,文件名( x64_ida pronw_hexarm64w_xxxxx)包含hexarm64w,即拥有可以运行在windows平台的arm64反编译器,完全版不包含ppc应该是hex arm64w_hexarmw_hexx64w_hexx86w,之前老外也算过爆破这个安装包要多久了,以现在的算力要 9年左右,超算的租金零
头都够买你这辈子都用不完的ida授权了
nevinhappy 1
7.0到7.2有啥本质优化么,感觉7.0就很好用了。
月落之汀 1 nevinhappy 7.0到7.2有啥本质优化么,感觉 7.0就很好用了。
pc这块他说C++有增强,实测完全没感觉到,重心全部在ios和苹果上,云sig目前跟废的差不多,基本没用,新增中间码 API,
估计大多数人都不知道干什么的,我平常都是7.0和7.2双开,7.2分析更慢了,但值还是值的
tjszlqq 1
月落之汀 hexray都是正版投递到你的邮箱的,每个安装包都有不一样的签名,包含的反编译种类在文件名中就有标识,文件名( x6
4_idapronw_hexarm64w_xxxxx)包含hexarm64w,即拥有可 ...
大伙只是出于解题的乐趣,不是真想要这软件,360,谷歌,苹果等公司的技术人员,不用九年,不花一分钱,十天内必出密码
月落之汀 1 tjszlqq
大伙只是出于解题的乐趣,不是真想要这软件, 360,谷歌,苹果等公司的技术人员,不用九年,不花一分钱,十天内必出
密码
真有十天内必出密码这样的技术务必让小弟开开眼,至少是我认知以外的东西
冰雪冬樱 tjszlqq
大伙只是出于解题的乐趣,不是真想要这软件, 360,谷歌,苹果等公司的技术人员,不用九年,不花一分钱,十天内必出
密码
那么问题来了 他们是买正版 还是用泄露版
红金龙e晓楼
冰雪冬樱 那么问题来了 他们是买正版 还是用泄露版
大公司, 正版的东西必须要有, 不管一套还是多套. 就拿Office来说, 你没买过, 你只要用了,别人就可以来找你的事了, 但你有 了, 不管下边用的是啥样的,有就行了 2019-1-28 10:43
e
killpy 2
7.2 听说 f5 可以出c++ 真的期待
https://bbs.pediy.com/thread-248989.htm
11/12