1.you can't find me,

老规矩先打开jeb,然后看下主活动,

发现又调用了mainthread类的startWrites方法,继续跟进去。

发现是新建了一个随机输入流的文件对象,然后新建了很多进程,往这个文件中去输入字符,不过里面是有时间限制的

所以flag应该是根据时间顺序来拼接就好了,

Aol jsvjrdvyr ohz ybzalk Puav h zapmm tvklyu hya zahabl, Whpualk if uhabyl, svhaolk if aol Thzzlz, huk svclk if aol mld. Aol nlhyz zjylht pu h mhpslk ylcpchs: HOL17{IlaalyJyfwaZ4m3vyKpl}

弄出来是这个东西,quipquip安排上,一把梭就出来了

2.aes-decrypt

jeb打开

主要逻辑应该在so层,ida打开一波,发现是静态注册的,直接找java_类名_native方法名

这里其实挺操蛋的,本来java层几行可以解决的问题,在so层就得这么多行。上面一大堆,其实从后面可以看出DA3E0BB0这个函数其实就是做的一个base64加aes解密,这里我也没管,

就是黑盒来用,发现上面一大堆只是为了获取app的签名而已,由于这是java的数组,如果c++要使用需要转换成本地数组,转换后,作为aes的key,iv已经给了,对那个字符串进行解密

至于怎么看出DA3E09E4和58函数的作用的,第一个是发现输入的字符串后,会发生变化,于是跟进去,发现里面有base64字样,只能动调,发现就是base64,然后下一个函数

基本可以从题目中猜出来,一个key和一个iv,恰好符合,剩下其实我也迷茫了,后面看了wp才知道,是需要照猫画虎,将app显示的字符串,按同样的key和iv解密就好了

from Crypto.Cipher import AES
import base64
iv=[ 0x99, 0x3F, 0x76, 0x06, 0xA7, 0x88, 0x1C, 0x67, 0x49, 0x27,
0x66, 0x06, 0x8D, 0xE9, 0xD8, 0xAA
]
key=[
0x00, 0xC2, 0xB2, 0x00, 0xCB, 0xAF, 0xED, 0x4E, 0x14, 0xB3,
0x52, 0x93, 0x56, 0x36, 0xF6, 0x00, 0x65, 0x7C, 0x40, 0x6C,
0xBB, 0x8F, 0x29, 0xC0, 0xA1, 0x4F, 0xBB, 0xEC, 0xB6, 0xAD,
0x8E, 0x54
]
data="+NvwsZ48j3vyDIaMu6LrjnNn8/OAnexGUXn3POeavI8="
flag="T9WoXhrsQHgY3NLr8SwBbw=="
iv=''.join(chr(a) for a in iv)
key=''.join(chr(a) for a in key)
cipher=AES.new(key,AES.MODE_CBC,iv)
plain_data=cipher.decrypt(base64.b64decode(data))
print plain_data
cipher=AES.new(key,AES.MODE_CBC,iv)
plain_data=cipher.decrypt(base64.b64decode(flag))
print plain_data

Android hacking event 2017的更多相关文章

  1. Best Free Hacking E-Books 2017 In PDF Format

    1.Best Free Hacking E-Books 2017 In PDF Format: 电子书籍下载地址 后续我会更新在我的百度云资源 上,需要的留言Black Belt Hacking &a ...

  2. Generate And Play A Tone In Android hacking

    /*********************************************************************************** * Generate And ...

  3. 图解Android - Android GUI 系统 (5) - Android的Event Input System

    Android的用户输入处理 Android的用户输入系统获取用户按键(或模拟按键)输入,分发给特定的模块(Framework或应用程序)进行处理,它涉及到以下一些模块: Input Reader: ...

  4. Android Calander Event

    必须权限 <uses-permission android:name="android.permission.READ_CALENDAR" /> <uses-pe ...

  5. Android 解读Event和Main Log

    1 Android P EventLogTags文件 Android P 9.0.0 所有EventLogTags文件List: system/bt/EventLogTags.logtags syst ...

  6. Android版本分布——2017年5月更新

    Code Name Version API Level Last month This month Change gingerbread(姜饼) 2.3.3——2.3.7 10 0.9% 1.0% 0 ...

  7. 【转】高通平台android 环境配置编译及开发经验总结

    原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...

  8. Android项目实战(二十九):酒店预定日期选择

    先看需求效果图: 几个需求点: 1.显示当月以及下个月的日历 (可自行拓展更多月份) 2.首次点击选择"开始日期",再次点击选择"结束日期" (1).如果&qu ...

  9. Android中Input型输入设备驱动原理分析(一)

    转自:http://blog.csdn.net/eilianlau/article/details/6969361 话说Android中Event输入设备驱动原理分析还不如说Linux输入子系统呢,反 ...

随机推荐

  1. docker0详解

    docker0:https://blog.csdn.net/kubailing/article/details/87936501 veth pair详解:https://www.cnblogs.com ...

  2. 10.14 ssh:安全地远程登录主机

    ssh命令 是openssh套件中的客户端连接工具,可以使用ssh加密协议实现安全的远程登录服务器,实现对服务器的远程管理,Windows中的替代工具为Xshell.putty.SecureCRT等. ...

  3. pika详解(三)SelectConnection及其他Connection

    pika详解(三)SelectConnection及其他Connection   本文链接:https://blog.csdn.net/comprel/article/details/94661147 ...

  4. Jmeter- 笔记4 - 参数化 、函数

    参数化 调用变量的用法: ${变量名} 参数化第一 二种. 定义变量的两种方法: 配置元件(Config Element) -> 用户定义的变量(User Defined Variables) ...

  5. gasshopper之python电池输出dict结构

    问题:gh 直接用 panel 是无法直接输出字典结构的 故需要用 zip() 函数将字典的keys()  values() 组成一个元组,可以直接输出: 实例: dict = {} for i in ...

  6. 标准自编码器(TensorFlow实现)

    由 Hinton 提出的标准自动编码机(标准自编码器)只有一个隐藏层,隐藏层中神经元的数量少于输入(和输出)层中神经元的数量,这会压缩网络中的信息,因此可以将隐藏层看作是一个压缩层,限定保留的信息. ...

  7. VAE变分自编码器实现

    变分自编码器(VAE)组合了神经网络和贝叶斯推理这两种最好的方法,是最酷的神经网络,已经成为无监督学习的流行方法之一. 变分自编码器是一个扭曲的自编码器.同自编码器的传统编码器和解码器网络一起,具有附 ...

  8. MinkowskiBroadcast广播

    MinkowskiBroadcast广播 MinkowskiBroadcastAddition广播加法 class MinkowskiEngine.MinkowskiBroadcastAddition ...

  9. Gbps接口面向汽车应用

    Gbps接口面向汽车应用 Gbps interfaces target automotive appications 巴黎--不久前,移动通信行业是一个领着芯片商的领头羊,命令坐着,脚跟着,然后翻身. ...

  10. 使用js获取checkbox控件在GridView中的第几行

    这次的知识点是如何使用js获取checkbox控件所在的是第几行!!! 我们可以使用 JavaScript 中自带的 rowIndex 和 cellIndex 来获取行和列的键值 (从0开始) 这两个 ...