首页
社区
课程
招聘
[原创] ollvm CrackMe算法分析
发表于: 2020-4-2 16:04 8467

[原创] ollvm CrackMe算法分析

2020-4-2 16:04
8467

 加载hello-jni.so 有一个public native String sign1(String str); 函数 点击按钮调用 参数为随机生成的16位字符


Ok进入 so文件看看吧 用ida 打开 

定位到 public native String sign1(String str); 搜索导出函数并没有 应该动态调试 进入JNI_OnLoad

发现混淆到不行样子直接 用frida hook RegisterNatives 注册函数吧(用网上搜索)



把应用调试模式启动 用frida附加上启动 (注意要打开ddms)具体操作论坛有 


jni 函数 sign1 offset: 0x10be8 注册地址找到了 那直接开干吧 跳转到  0x10be8

用idapro动态调试初步跑了一下参数记录 发现 sub_1494C4(&Out_Md5_Buff, 16LL, &Out_en_Buff) 执行完毕就是加密结果了 

但具体参数怎么来的呢 

参数1 Out_Md5_Buff 来源 sub_14141C()

参数2 是固定16位(加密后十六进制时长度)

参数3 &Out_en_Buff 就是结果了

Out_Md5_Buff() 来源于sub_14141C()下面开始分析 

函数原型 sub_14141C(InputStr, inputlen, &Out_Md5_Buff)

参数1 为随机生成的字符

参数2  为随机生成的长度

参数3  输出的加密结果

进入函数内部

逻辑混淆没法正常看,把参数处理一下 搜索参数看看有没有发现 直接搜加密输出变量


都跳转去看看 



没办法看清楚逻辑 用frida hook看看参数返回

发现被调用了一次 调用地址为 0x142804 

sub_1390B8(“s123456789”, 0xa, _Out_Md5_Buff); 

_Out_Md5_Buff  = 


这个就是加密后结果 继续跟踪

进入函数 继续搜索Out_Md5_Buff 看看谁在调用


都是sub_131ADC()调用 继续用frida看看参数返回

被调用了一次 调用地址0x13BA34 参数1:


不清楚是什么 感觉很像一个结构(应该是md5_ctx后面分析发现的)

然后加密结果也相同 那肯定加密就在里面了 我们进去看看


进入 sub_131ADC()函数 继续搜索输出变量


这里应该就是加密算法了 乍一看感觉有点眼熟那 加上返回的加密是32位 有理由怀疑是md5 

搜了搜md5算法


感觉挺像的 返回调用函数地址看看 用什么值加密的


继续frida hook sub_10BB08() 看看 

一共被调用4次 

sub_10BB08(md5_ctx,421d38d938156606164a15d2e7f822d9,0x20) //  MD5Update() 调用地址 0x139da0

sub_10BB08(md5_ctx,s123456789,0xa) //  MD5Update() 调用地址 0x13ba28


下面两次是在md5内部调用()                   //sub_131ADC()   MD5Final() 

参数长度


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 2
支持
分享
最新回复 (4)
雪    币: 4853
活跃值: (3776)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看的云里雾里的,楼主是个狼灭
2020-4-2 21:26
0
雪    币: 4883
活跃值: (18890)
能力值: ( LV13,RANK:317 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2020-4-3 12:15
0
雪    币: 530
活跃值: (906)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
你好,我是这方面的初学者,想请教下

用idapro动态调试初步跑了一下参数记录 发现 sub_1494C4(&Out_Md5_Buff, 16LL, &Out_en_Buff) 执行完毕就是加密结果了 

这一步的具体操作是什么,不太懂这一点
2020-4-8 15:20
0
雪    币: 3372
活跃值: (762)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
大佬您好,我想请问一下,您是如何通过IDA搜索参数Out_Md5_Buff定位到sub_1390B8(),这个搜索功能的快捷键是什么呢
2020-7-26 16:18
0
游客
登录 | 注册 方可回帖
返回
//