171011 逆向-Reversing.kr(HateIntel)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值