动态调试 ida linux,IDA动态调试-ELF
使用IDA对ELF文件进行简单的动态调试。
程序流程
将文件下载到本地之后使用编辑器打开,可以看到是一个ELF文件。放在Linux下运行,可知道是一个”打怪”的一个小程序:需要通过打怪提高战斗力,最后杀死巨龙。
根据信息可得知需要Combat超过一定数值才行,思路大概可分为以下几种:正常运行,慢慢升级,直至通关;
静态修改ELF文件中的特定值,如coins、Combat等;
动态调试,将逻辑判断nop掉。
这里选择通过IDA进行动态调试进行pass。
静态分析
使用IDA打开该文件,可以发现几个关键函数:decrypt1、decrypt2、decrypt3、outflag、slime、boss、store等
由于已经知道需要打怪才能获取flag,那么直接查看boss函数的伪代码(F5)
可以看到需要打三次boss才能成功获取flag,那么只需要将三次的if判断语句跳过即可。
动态调试
在IDA视图跳转至main函数之后,在main函数下一个断点,然后启动debug,这里选择Remote Linux debugger,之后需要配置程序目录、hostname、password等。
在Linux虚拟机中运行ifconfig获取IP地址,之后运行./linux_server64。Ps:该文件来自IDA dbgsrv目录。之后将ip填入hostname,将Linux用户密码填入Password,并将程序放置Linux虚拟机中指定位置,如/root/桌面,最后将信息填入对应文本框
启动debug,可以看到程序被成功断在刚刚下断点的位置,之后通过单步或者直接查看boss函数的地址,将断点设在boss函数入口
在Linux中输入2,使其运行至boss函数,在IDA中单步运行至4015FE地址,发现会jle至401628地址,通过【Edit】-【Patch program】-【Patch Bytes】将第一位字节修改成74,使其不跳转。之后可以看到程序会运行至第一个解密函数decrypt11
2jle 是指有符号小于等于则跳转
jz 是指为 0 则跳转
之后再重复两次该操作即可获取flag
动态调试 ida linux,IDA动态调试-ELF相关推荐
- 逆向工程入门:IDAwindows本地动态调试,linux远程动态调试及虚拟机配置
本人水平有限,有不当之处欢迎指出 文章目录 一.虚拟机配置 二,IDA动态调试 1.windows本地调试 2.linux远程调试 本人其它文章链接 一.虚拟机配置 VMware虚拟机是主流的虚拟机之 ...
- linux动态库查找,Linux查找动态库的3种方法
Linux查找动态库的3种方法 linux默认加载动态库的路径是 /lib或者是/lib64, 32位的系统是前者,64位是后者. 如果找不到还有3个地方 LD_LIBRARY_PATH rpath ...
- linux调试crontab,linux - crontab 的调试,启动thin服务器
linux - crontab 的调试,启动thin服务器 2018-11-18 17:10 访问量: 1059 分类: 技术 参考:https://askubuntu.com/questions/5 ...
- linux内核printk调试手段,linux内核printk调试
通过printk打你希望追踪的消息.从它的名字可以看出,这个东西有点类似与gnu c中的printf.不过用于内核的东西总该有些特色,printk添加了一些日志级别(loglevel),具体日志级别定 ...
- 交叉调试 arm linux,搭建交叉调试环境Arm-Linux-Gdb与gdbserver
操作系统:Ubuntu9.04 开发板:博创2410s 交叉编译工具:arm-linux-gcc-4.1.1 gdb+gdbserver 是调试目标板的常用方法. 网络环境如下:HOST 192.16 ...
- linux kdb内核调试器,linux kdb 内核调试器
许多读者可能奇怪为什么内核没有建立更多高级的调试特性在里面.答案, 非常简单, 是 Linus 不相信交互式的调试器. 他担心它们会导致不好的修改, 这些修改给问题打了补丁 而不是找到问题的真正原因. ...
- Linux旋钮驱动调试(安卓)
Linux旋钮驱动调试(安卓) Linux旋钮驱动调试(安卓) 一.旋钮特性 二.驱动编写 三.GPIO配置(设备树) 1.dtsi配置节点属性 2.dts配置gpio属性 四.input事件调试 五 ...
- 安卓动态调试七种武器之孔雀翎 – Ida Pro – 蒸米
原文地址:http://drops.wooyun.org/tips/6840 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的, ...
- 安卓动态调试七种武器之孔雀翎 – Ida Pro
作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的,人是活的,如果能搞懂工具的原理再结合上自身的经验,你也 ...
最新文章
- 跟益达学Solr5之Schema.xml详解
- 跳车开发者Pokkst自述——从BTC到BCH
- 点一万个赞:商汤SiamRPN目标跟踪最强算法开源
- 抽象类(Abstract)和接口的不同点、共同点(Interface)。
- process调用protothread机制的相关宏定义——用HelloWorld进程诠释
- 最后一公里极速配送 - 阿里云算法大赛总结
- JavaScript中的Function类型总结
- Name Disambiguaiton in Aminer论文解读
- Matlab2018a破解出现licensing error:-8523
- mysql 的相关操作_MySQL(记录相关操作)
- 通达信的指标公式改为条件选股公式,进行预警
- matlab中fft与fftshift,在matlab中使用fft,ifft和fftshift
- c语言编程模拟银行取钱代码,C语言 用初等函数模拟银行取款
- 4和2大于号小于号箭头那边_‘’口诀化‘’教学之二――大于号和小于号
- 圆通快递单号免费查询接口,附带开发源码
- sql查询结果加上序号
- amigo幸运字符什么意思_QQ有什么魅力?为什么00后都喜欢?细节都在这些“标识”里...
- UnrealEngine5实操--基础概念(持续补充)
- android APP开发时,全屏手机适配的问题解决
- 苹果订阅的升级、降级、同级转换
热门文章
- Huber Loss function
- 使用计算机的硬件及参数,硬件参数怎么看?如何选配电脑硬件?
- 华为交换机关机方法_华为交换机常用的三种vlan划分方法~
- springboot 控制台输出错误信息_SpringBoot 三招组合拳,手把手教你打出优雅的后端接口...
- android 7.0原生动态,Android7.0适配教程,心得
- python发音模块-python声音模块
- 自学python顺序-python数据结构学习之实现线性表的顺序
- 廖雪峰python教程-Python 2.7教程
- python中文版免费下载-PYTHON自然语言处理(中文最新完整版)pdf下载
- python从入门到精通pdf-跟老齐学Python:从入门到精通 完整版PDF[7MB]