171011 逆向-Reversing.kr(HateIntel)

来源:互联网 发布:软件模块接口参数 编辑:程序博客网 时间:2024/06/05 18:57

1625-5 王子昂 总结《2017年10月11日》 【连续第376天总结】
A. reversing.kr
B.

HateIntel

这个标题真刺激……

看起来是mac平台的,只能直接IDA反编译啦╮(╯_╰)╭

ARM平台的反汇编没有接触过,直接F5

IDA大法好(°∀°)ノ

从start函数向后找,在这里发现了关键部分

这里写图片描述

很明显,接收输入后通过sub_232c进行处理,然后循环比较input和byte_3004
这里input玩了一个小花招,vars0取地址-0x5c实际上就是Input的地址,刚开始还没反应过来vars0是啥

那么关键就在于sub_232c里做啥了呢?
这里写图片描述
逐字符循环,每人四次……又调用了一个函数sub_2494来处理字符,藏得真深啊

这里写图片描述

这个函数的a2参数给的一直都是1,所以函数内的循环并没有得到使用……
循环体先*2,再根据bin第9位来对bin第一位赋值

嗯?这个操作有点眼熟啊
不就是rol(v3, 1)吗

先左移一位,然后将溢出第一比特的位(第9位)的值赋给第一位

也就是循环左移操作呀,那么我们根据目标值进行循环右移4位不就行了么

目标值复制,IDC dump出来都可以
脚本:

n = [68, 246, 245, 87, 245, 198, 150, 182, 86, 245, 20, 37, 212, 245, 150, 230, 55, 71, 39, 87, 54, 71, 150, 3, 230, 243, 163, 146]for i in n:    for j in range(4):        p = i & 1        i = (i >> 1) + p*(0x100>>1)    print(chr(i),end='')

Do_u_like_ARM_instructi0n?:)

No, I don’t.(╯‵□′)╯︵┻━┻

C. 明日计划
reversing.kr

原创粉丝点击