ida

【干货】IDA常用快捷键及其作用

吃可爱长大的小学妹 提交于 2020-02-06 12:42:34
IDA的使用教程 转载自先知社区 原文链接: IDA Pro7.0使用技巧总结 俗话说,工欲善其事,必先利其器,在二进制安全的学习中,使用工具尤为重要,而IDA又是玩二进制的神器,以前在使用IDA的时候,只是用几个比较常用的功能,对于IDA的其他功能没有去研究,于是本着学习的精神,参考着《IDA pro权威指南》(第二版),写下这篇文章,记录自己的学习心得,下面的记录都是在Windows平台下的IDA pro7.0进行的 一些二进制工具 在《IDA pro权威指南》的开篇一两章中,先是介绍了几款常用于二进制研究的工具,我这里简单的记了几个,介绍一波: C++filt: 可以用于显示出c++中复杂的重载后的函数名称 PE tools: 是一组用于分析Windows系统中正在运行的进程和可执行文件的工具 string: 可以用于直接搜索出elf文件中的所有字符串 参数-a 表示搜索整个文件,参数-t 可以显示出每一个字符串的偏移,参数-e 可以用于搜索更多的字符编码的字符串,如Unicode编码 strip: 可用于elf去符号,去符号后仍然保持正常功能但增加了逆向的难度,出题恶人必备 开发了IDA的天才是Ilfak,他的个人博客有很多IDA的教程 https://www.hexblog.com/ IDA目录结构 在IDA的安装根目录下有许多文件夹,各个文件夹存储不同的内容 cfg

idc脚本dump内存dex

◇◆丶佛笑我妖孽 提交于 2020-02-01 00:28:53
1、以调试模式启动程序 adb shell am start -D -n 包名/入口activity 2、启动ida勾选3项下断点对libdvm.so的dexfileparse函数下断点,ida先不要运行 运行当程序断下的时候,r0寄存器的值就是dex文件的首地址,r1的值就是dex文件的大小,然后运行脚本就能dump出dex文件。 3、运行jdb命令 jdb -connect 包名:hostname=127.0.0.1,port=8601(这里不是8700,DDMS里面前面的那个值) 上面的命令相当于不开DDMS时动态调试执行的 adb forward tcp:8700 jdwp:pid命令 4、运行ida断下运行脚本文件dump处dex文件 下面打开运行脚本界面 dexfileparse ida脚本 static main(void) { auto fp,dexAddress,end,size; dexAddress=0x77607640; size=0x19e118; end=dexAddress+size; fp=fopen(“d:\1.dex”,“wb”); for(;dexAddress<end;dexAddress++) fputc(Byte(dexAddress),fp); } 来源: CSDN 作者: haodawei123 链接: https://blog

Is it possible to edit and recompile an iOS Binary?

六月ゝ 毕业季﹏ 提交于 2020-01-31 04:36:58
问题 I have decided to ask this question here after a lot of time spending with Google. But I couldn't able to get the answer for my question yet. Here follows the details: I have an application and posted to Cydia recently. It has been cracked by someone else and posted it in torrent sites. The interesting part is I have a binary checksum verification mechanism inside and they were able to hack the entire stuff and they created new checksum file based on the changes they have made to the binary.

CTF必备技能丨Linux Pwn入门教程——环境配置

只谈情不闲聊 提交于 2020-01-25 08:38:37
说在前面 这是一套Linux Pwn入门教程系列,作者依据Atum师傅在i春秋上的Pwn入门课程中的技术分类,并结合近几年赛事中出现的一些题目和文章整理出一份相对完整的Linux Pwn教程。 问:为什么要花费精力去整理这套系统的Linux Pwn教程? 答:网上关于Pwn的资料比较零散;经常会碰到解题过程略的Writeup和没有注释;存在大量硬编码偏移的脚本;练习题目难找;调试环境难搭建;GDB没有IDA好操作等等问题。 问:这个Linux Pwn教程适合新手学习吗? 答:本套课程非常适合萌新们进行入门学习,内容通俗易懂,化繁为简,同时结合历年赛题,实操性强,对于快速提升技能可起到很大的帮助。 问:关于Linux Pwn教程是否有视频讲解? 答:在i春秋官网的课程库中有很多关于Pwn的视频课程,立即去学习!https://www.ichunqiu.com/courses/pwn?from=weixin 本系列教程仅针对i386/amd64下的Linux Pwn常见的Pwn手法,如栈,堆,整数溢出,格式化字符串,条件竞争等进行介绍,所有环境都会封装在Docker镜像当中,并提供调试用的教学程序,来自历年赛事的原题和带有注释的python脚本。 教程中的题目和脚本若有使用不妥之处,欢迎各位大佬批评指正。 今天是Linux Pwn入门教程第一章:环境配置,阅读用时约7分钟。 一

ida 动态调试安卓模拟器x86

北城余情 提交于 2020-01-25 06:33:33
转载于 https://bbs.pediy.com/thread-224420.htm 此文只是为了记录作为新手的我,学习到的一些技巧。 之前,为了学习Android 调试,必须使用真机,结合上其他原因,导致放弃。 此下记录的是,使用非官方Android 模拟器,实现了IDA 连接调试 模拟器的步骤。 首先使用的是 IDA 7.0 ,在 dbgsrv 文件夹找到 android_x86_server 上传命令: adb push E:\android_x86_server /data/local/tmp/ 进入命令: adb shell 转文件夹: cd /data/local/tmp/ 提权命令: chmod 777 android_x86_server 启动命令: ./android_x86_server 正常会出现 root@android:/data/local/tmp # ./android_x86_server IDA Android x86 32-bit remote debug server(ST) v1.22. Hex-Rays © 2004-2017 Listening on 0.0.0.0:23946… 再启动一个终端 转接端口: adb forward tcp:23946 tcp:23946 最后一步附加 Attach -> Remote Linux

ida动态调试总结

霸气de小男生 提交于 2020-01-23 18:03:55
雷电、蓝叠的cpu是x86的ida不能正常调试,需要用Android编译器自带的创建模拟器。 ida模拟器动态调试,当执行到断点时会出现错误,通过百度知道是因为雷电、蓝叠模拟器的cpu都是x86的架构,所以用来调试就会出错,通过观看视频发现教程中用的是Android自带的模拟器,所以这里也是创建一个模拟器。 用Android studio创建模拟器会出现下面的选项,选择Other Images选项,这时显示出 armeabi-v7a,选择这个创建模拟器,就是arm的模拟器不是x86,能正常调试。 其它步骤与之前一样。 来源: CSDN 作者: haodawei123 链接: https://blog.csdn.net/haodawei123/article/details/104075660

ida动态调试android

六月ゝ 毕业季﹏ 提交于 2020-01-22 02:39:47
1、将IDA dbgsrv目录下的android_server复制到模拟器的/data/local/tmp 目录下面 为了防止反调试将android_server重命名为as adb push as路径 /data/local/tmp 模拟器内将as的权限设置为 777 chmod 777 as 运行as ./as 2、雷电模拟器两个adb device的处理 adb kill-server关闭adb adb start-server开启adb 上面的两条命令之后 电脑就只有一个adb设备了 3、开一个linux shell am start -D -n 包名/入口activity启动调试,模拟器有窗口弹出 4、端口转发 直接输入 adb forward tcp:23946 tcp:23946 命令 端口转发 5、打开IDA 菜单 debugger->attach->Remote ARM Linux/android debugger .debug options一定要选 注意:如果ida连接失败可能是由于ida的版本问题,如我用雷电模拟器,64为的ida连接失败,换到x86的ida就没有问题了。 hostname处输入主机名开始调试,正常会弹出模拟器的进程列表,选择一个进程进行调试,然后找到模块窗口,点击其中的一个so文件,再右边弹出的函数中找到自己需要的函数下断点运行程序即可。

IDA F5堆栈不平衡的处理

↘锁芯ラ 提交于 2020-01-17 08:00:59
IDA F5堆栈不平衡的处理 1.引出问题 F5时出现如图错误,一般是程序代码有一些干扰代码,让IDA的反汇编分析出现错误。比如用push + n条指令 + retn来实际跳转,而IDA会以为retn是函数要结束,结果它分析后发现调用栈不平衡,因此就提示sp analysis failed. 我们选择抖音老版本的libcms.so作为分析案例,假设Java代码如下 static { System.loadLibrary("cms"); } public native int getUserInfo(); 我们想要分析getUserInfo这个函数,函数被声明为native,这代表了它是一个native方法,真正的代码逻辑由C/C++等native语言实现,它来自名为cms的库,由静态代码块中的System.loadLibrary加载进内存。在加载和寻找动态库时,Java会判断系统并扩展库名,在Windows平台下cms会被扩展成libcms.dll,Android作为基于linux的系统,则会依照linux被扩展成libcms.so,也就是我们常说的xxx SO库,解压APK取出libcms.so库,我们使用ida打开,默认加载,注意观察IDA左下角,地址值不变化时即加载完毕。 如何找到getUserInfo函数的实现代码?按照惯例,查看Exports栏——函数导出表

IDA Pro7.0使用技巧总结

三世轮回 提交于 2020-01-13 21:46:04
俗话说,工欲善其事,必先利其器,在二进制安全的学习中,使用工具尤为重要,而IDA又是玩二进制的神器,以前在使用IDA的时候,只是用几个比较常用的功能,对于IDA的其他功能没有去研究,于是本着学习的精神,参考着《IDA pro权威指南》(第二版),写下这篇文章,记录自己的学习心得,下面的记录都是在Windows平台下的IDA pro7.0进行的 一些二进制工具 在《IDA pro权威指南》的开篇一两章中,先是介绍了几款常用于二进制研究的工具,我这里简单的记了几个,介绍一波: C++filt: 可以用于显示出c++中复杂的重载后的函数名称 PE tools: 是一组用于分析Windows系统中正在运行的进程和可执行文件的工具 string: 可以用于直接搜索出elf文件中的所有字符串 参数-a 表示搜索整个文件,参数-t 可以显示出每一个字符串的偏移,参数-e 可以用于搜索更多的字符编码的字符串,如Unicode编码 strip: 可用于elf去符号,去符号后仍然保持正常功能但增加了逆向的难度,出题恶人必备 开发了IDA的天才是Ilfak,他的个人博客有很多IDA的教程 https://www.hexblog.com/ IDA目录结构 在IDA的安装根目录下有许多文件夹,各个文件夹存储不同的内容 cfg:包含各种配置文件,基本IDA配置文件ida.cfg,GUI配置文件idagui