参考:
http://www.ikey4u.com/blog/0ctf-2015-simpleapk/partB-analysis-solib/
打开AndroidManifest.xml发现android:debuggable="true"

因此我们就不用修改什么了,可以直接调试。直接原 apk 上 IDA Pro动态调试即可.一般的我们都会开两个 IDA, 一个用于动态分析,一个用于静态分析.

然后看到入口Activity中有读取flag.txt

然而,读取flag.txt的内容发现并没卵用。

使用Ctrl+ S 打开段选择窗口

看到一个my_init函数。

进去看一下

它主要包含两个函数,CheckSig()j_j_hook()
其中CheckStrace()CheckPtrace()应该就是用来反调试的。

CheckPtrace()


注意#35行,

通常在自定义的函数里有异或操作往往说明这里是一个关键

然后将dest[]数组从.so文件中拷贝出来,需要用WinHex打开.so文件。
找到dest[]数组对应的偏移量00000240(需要在IDA中找到char dest[36]然后双击)。

鼠标右键选择: Edit => Copy Block => C Source

然后这一块选中的就复制到粘贴板上了,然后粘贴出来即可。

粘贴出来之后就是这样的格式。

unsigned AnsiChar data[36] = {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x70, 0x20, 0x46, 0x00, 0x00, 0x20, 0x46, 0x00, 0x00, 0x20, 0x46, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
};

然后需要写个小脚本亦或一下。

#coding=utf-8data = [0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x1B, 0x48, 0x2C, 0x0C, 0x24, 0x02, 0x02, 0x09, 0x3A, 0x0B, 0x3B, 0x0E, 0x03, 0x3A, 0x39, 0x0C, 0x08, 0x11, 0x00, 0x00, 0x1A, 0x09, 0x0C, 0x29, 0x20, 0x58, 0x44, 0x00, 0x00]old_flag = "0ctf{Too_Simple_Sometimes_Naive!!!}"def main():flag = []for i in range(len(old_flag)):flag.append(chr(ord(old_flag[i]) ^ data[i]))print "".join(flag)if __name__ == '__main__':main()

其中,
然后发现
参考:https://github.com/toToCW/CTF-Mobile/blob/master/20150CTF/simple-150/WriteUp.md

运行之后,得到了flag

CheckStrace()

通过多层调用,其实还是调用了CheckPtrace()

先看看CheckSig()


0ctf之simple相关推荐

  1. RabbitMQ 入门系列(11)— RabbitMQ 常用的工作模式(simple模式、work模式、publish/subscribe模式、routing模式、topic模式)

    1. simple 模式 simple 模式是最简单最常用的模式 2. work 模式 work 模式有多个消费者 消息产生者将消息放入队列.生产者系统不需知道哪一个任务执行系统在空闲,直接将任务扔到 ...

  2. Simple NHibernate Architecture[from]

    原文地址:http://www.codeproject.com/aspnet/NHibernateArchitecture.asp Download source - 2,523.7 KB Intro ...

  3. HDU 1757 A Simple Math Problem

    Problem Description Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x & ...

  4. Simple Dynamic Strings(SDS)源码解析和使用说明二

    在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...

  5. 《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--第六章 深入理解wi-Fi Simple Configuration...

    为什么80%的码农都做不了架构师?>>>    首先感谢各位兄弟姐妹们的耐心等待.本书预计在4月上市发售.从今天开始,我将在博客中连载此书的一些内容.注意,此处连载的是未经出版社编辑 ...

  6. A simple class to play sound on netcf (part 2)

    在实际测试中发现上一片文章(A simple class to play sound on netcf)中介绍的播放声音的类在pda中运行正常,但却无法在pc中工作,简单分析了一下原因,发现是dll的 ...

  7. Simple Transformer:用BERT、RoBERTa、XLNet、XLM和DistilBERT进行多类文本分类

    作者 | Thilina Rajapakse 译者 | Raku 编辑 | 夕颜 出品 | AI科技大本营(ID: rgznai100) [导读]本文将介绍一个简单易操作的Transformers库- ...

  8. Matplotlib可视化散点图、配置X轴为对数坐标、并使用线条(line)连接散点图中的数据点(Simple Line Plot with Data points in Matplotlib)

    Matplotlib可视化散点图.配置X轴为对数坐标.并使用线条(line)连接散点图中的数据点(Simple Line Plot with Data points in Matplotlib) 目录

  9. Comprehensive anticancer drug response prediction based on a simple cell line drug complex network m

    Comprehensive anticancer drug response prediction based on a simple cell line drug complex network m ...

  10. Could not fetch URL https://pypi.org/simple/pip/

    Could not fetch URL https://pypi.org/simple/pip/ 解决办法 更换pip安装源头成阿里云或清华的 在Windows%appdata%/pip/pip.in ...

最新文章

  1. UVa 10180 - Rope Crisis in Ropeland!
  2. 计算机虚拟内存的设置
  3. discuz手机版模板开发
  4. 关于web.config中customErrors
  5. 【动态规划】loj#2485. 「CEOI2017」Chase
  6. maven 笔记,概念
  7. 【小白学习keras教程】六、基于CIFAR-10数据集训练CNN-RNN神经网络模型
  8. 杨中科的.NET 6新书的出版进度汇报
  9. 摩尔斯电码转换python编码_Morse Code 用Python做个摩斯密码转换器
  10. shell中lsort,uniq,cut,wc,seq命令使用
  11. 最短路径和最小生成树的区别
  12. Windows 2008 Core 常用命令
  13. 多元一次方程组的求解
  14. 小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_43、SpringBoot2.x异步任务实战(核心知识)...
  15. VS2015 Visual Assist X破解版安装、禁用、卸载方法
  16. Java设计模式之Adapter模式
  17. 小白建站教程 腾讯云快速建站教程
  18. 2016年中国新增装机同比及风电开发分析
  19. 拉登游戏开发--在时间的积累中寻求美丽图案
  20. 统计推断——假设检验——方差分析

热门文章

  1. Git Error---bad signature 0x00000000 index file corrupt
  2. 国产化操作系统安装OpenJDK Icedtea插件
  3. 解决Chrome浏览器登录web系统一直报“验证码错误问题“
  4. 行业边缘丨中国电科发布“海雀”处理器;中科海微获千万融资;联想发布边缘服务器;风河加入CNCF云原生计算基金会成为银牌会员;...
  5. 华硕raid 0 安装linux,ROG Maxius IX主板技巧篇:组建RAID 0
  6. 基于遗传算法的新安江模型参数优化率定(二)
  7. 如何让你的技术团队成员自觉工作
  8. excel2007/2010中独立显示窗体的方式
  9. 魅族计算机软件不见了,任务栏不见了
  10. 设计一个高性能三维渲染服务器,最强大脑-CATIA飞机协同设计制造工作站配置方案2016...