ida动态调试笔记

目标文件:阿里安全挑战赛的第二题 点击打开链接

使用环境:ida6.8点击打开链接,adt bundle点击打开链接

首先打开avd安卓模拟器,界面如下:

在dos下运行adb命令,查看当前连接的设备:

  1. adb devices

得到结果如下:

上图显示了本机连接的安卓模拟设备。

然后用adb命令安装上面的阿里测试文件:

  1. adb install 阿里测试路径/文件名


出现上述提示,标识文件安装成功


上图中红色区域是刚刚安装的程序

接下来把ida下面的调试服务器上传到安卓模拟器当中

就是上图中那个android_server文件,使用如下命令上传:

  1. adb push C:\吾爱破解安卓工具箱v1.0fix\Rolan\bin\debug\IDA_Pro\dbgsrv\android_server data\local\tmp\mydbserv\

然后输入adb shell命令进入安卓设备

cd data\local\tmp\

进入上述目录,用ls可以看到文件已经被上传。

输入   ./bdgserver 启动该服务器,出现如下提示:

表示开始在23946端口进行监听了。

然后打开另外一个cmd窗口,使用如下命令:

  1. adb forward tcp:23946 tcp:23946

把模拟器的端口转接到电脑

然后输入如下命令:

  1. adb shell am start -D -n com.yaotong.crackme/com.yaotong.crackme.MainActivity

出现如下提示:

表示程序启动成功。
然后启动eclipse下面的ddms.bat,出现如下界面:
然后打开ida.
选择图中画红线部分,出现下图
参数填写如上,然后点击debug options,出现下图:
勾选图中部分,点击确定。出现如下内容。
点击ok.出现如下内容:
从菜单选择如下选项
在如下选项上打钩
点击左上角绿色运行按钮。
然后在cmd下面运行如下命令:
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700

出现下图:

然后在ida中按ctrl+s:出现下述界面
按ctrl+f查找crackme,出现下述内容:
选择图中有执行权限的so模块,出现如下界面。
 
然后点击键盘上面的g按钮,出现如下界面:
选择JNI_OnLoad,点击ok。出现如下界面:
按f2设置断点,然后按f5,查看伪代码
找到可能出现自毁程序的位置(blx语句之前),设置断点:
上述2cec54 cmp R0,#1即为修改位置
打开菜单view->open subviews->hex dump
将图中位置全部修改为0,继续运行程序。
 
再打开另外一个ida,把阿里apk解压,打开里面的的libcrackme.so文件,点击exports导出表。
打开后复制下面红圈部分。
返回上一个ida,按g字母,出现如下界面
点击ok后出现如下界面:
按f5查看伪代码

在伪代码处找到校验密码的位置,在下面红线处设置断点:
运行程序至断点。找到下图中变量v6对应的地址
打开hex view,点击g,在对话框输入该地址,查看该地址对应的字符串:
该字符串存放的是一个地址,为AA2D1450,再次点击字母G,输入该地址,下图字符串即为正确密码
继续运行程序,输入上述密码:
出现如下胜利画面
 

ida动态调试笔记的更多相关文章

  1. 逆向分析-IDA动态调试WanaCrypt0r的wcry.exe程序

    0x00 前言 2017年5月12日全球爆发大规模蠕虫勒索软件WanaCrypt0r感染事件,各大厂商对该软件做了深入分析,但针对初学者的分析教程还比较少,复现过程需要解决的问题有很多,而且没有文章具 ...

  2. 转:使用IDA动态调试WanaCrypt0r中的tasksche.exe

    逆向分析——使用IDA动态调试WanaCrypt0r中的tasksche.exe 转:http://www.4hou.com/technology/4832.html 2017年5月19日发布 导语: ...

  3. IDA动态调试技术及Dump内存

    IDA动态调试技术及Dump内存 来源 https://blog.csdn.net/u010019468/article/details/78491815 最近研究SO文件调试和dump内存时,为了完 ...

  4. 【转】安卓逆向实践5——IDA动态调试so源码

    之前的安卓逆向都是在Java层上面的,但是当前大多数App,为了安全或者效率问题,会把一些重要功能放到native层,所以这里通过例子记录一下使用IDA对so文件进行调试的过程并对要点进行总结. 一. ...

  5. 学汇编的时候可以拿IDA之类的反汇编工具辅助学习,再用gdb或者IDA动态调试,跟踪每条指令的 执行结果。都不难

    作者:潘安仁链接:https://www.zhihu.com/question/40720890/answer/87926792来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  6. IDA动态调试Android的DEX文件

    Android程序的dex文件的动态调试确实是个大问题,网上也有一些教程但是不是特别的详细,今天用到了IDA动态调试Android的DEX文件,特此记录一下. IDA 6.6新添加了对dex文件的调试 ...

  7. IDA 动态调试

    感谢南邮,让我把ida动态调试,给搞定了,困扰了很久,之前下的ubuntu的源,好像有问题,ifconfig这个命令一直装不上,突然想起来了我的服务器很久没用了,重装了下系统,换成ubuntu,这里记 ...

  8. 【转】Android IDA 动态调试最完善攻略,跨过各种坑

    前提条件和运行环境一定要写清楚,不然会有很多坑,坑死人. (1)IDA 是最新的7.0版本  (2) JDB 使用Java安装目录下的 (3)系统是win10 使用命令窗口时有很大的差别 (4)手机是 ...

  9. ida动态调试so,在init_array和JNI_ONLOAD处下断点

    本文涉及到的apk.请在github下载https://github.com/jltxgcy/AliCrack/AliCrackme_2.apk. 0x00 怎样在JNI_ONLOAD下断点.參考安卓 ...

随机推荐

  1. Unity runtime性能分析器

    一. Profiler: 1. CPU Usage A. WaitForTargetFPS: Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间 B. Overhead: Profiler总体 ...

  2. python_85_sys模块

    import sys print(sys.version)#当前python版本的详细信息 print(sys.argv)#脚本中运行,读取参数

  3. Linux增加sudo用户

    1.  root用户编辑文件/etc/sudoers vi /etc/sudoers 2.  按yy复制行root   ALL=(ALL)      ALL 按p粘贴,修改 “root” 为添加的用户 ...

  4. 数据库-SQL语法:把一个字段的值设为随机整数

     update test2 set zuig = (cast ( ceiling (rand()*9) as int))  

  5. linux - mysql 安装教程

    环境介绍>>>>>>>>>>>>>>>>>> 操作系统:Centos 7 mysql数据库版 ...

  6. java,求1-100以内所有偶数的和。

    package study01; public class Even { public static void main(String[] args) { int sum = 0; for (int ...

  7. bug汇总

    bug 2018年8月23日 bug 1:散点图画不出来. plt.scatter(validation_examples["longitude"], validation_exa ...

  8. 关于C与C++的区别

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...

  9. NOIP模拟赛 虫洞

    [题目描述] John在他的农场中闲逛时发现了许多虫洞.虫洞可以看作一条十分奇特的有向边,并可以使你返回到过去的一个时刻(相对你进入虫洞之前).John的每个农场有M条小路(无向边)连接着N (从1. ...

  10. (75)zabbix_server.conf配置文件详解

    ############ GENERAL PARAMETERS ################# ### Option: ListenPort# Listen port for trapper.# ...