使用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相关推荐

  1. 逆向工程入门:IDAwindows本地动态调试,linux远程动态调试及虚拟机配置

    本人水平有限,有不当之处欢迎指出 文章目录 一.虚拟机配置 二,IDA动态调试 1.windows本地调试 2.linux远程调试 本人其它文章链接 一.虚拟机配置 VMware虚拟机是主流的虚拟机之 ...

  2. linux动态库查找,Linux查找动态库的3种方法

    Linux查找动态库的3种方法 linux默认加载动态库的路径是 /lib或者是/lib64, 32位的系统是前者,64位是后者. 如果找不到还有3个地方 LD_LIBRARY_PATH rpath ...

  3. linux调试crontab,linux - crontab 的调试,启动thin服务器

    linux - crontab 的调试,启动thin服务器 2018-11-18 17:10 访问量: 1059 分类: 技术 参考:https://askubuntu.com/questions/5 ...

  4. linux内核printk调试手段,linux内核printk调试

    通过printk打你希望追踪的消息.从它的名字可以看出,这个东西有点类似与gnu c中的printf.不过用于内核的东西总该有些特色,printk添加了一些日志级别(loglevel),具体日志级别定 ...

  5. 交叉调试 arm linux,搭建交叉调试环境Arm-Linux-Gdb与gdbserver

    操作系统:Ubuntu9.04 开发板:博创2410s 交叉编译工具:arm-linux-gcc-4.1.1 gdb+gdbserver 是调试目标板的常用方法. 网络环境如下:HOST 192.16 ...

  6. linux kdb内核调试器,linux kdb 内核调试器

    许多读者可能奇怪为什么内核没有建立更多高级的调试特性在里面.答案, 非常简单, 是 Linus 不相信交互式的调试器. 他担心它们会导致不好的修改, 这些修改给问题打了补丁 而不是找到问题的真正原因. ...

  7. Linux旋钮驱动调试(安卓)

    Linux旋钮驱动调试(安卓) Linux旋钮驱动调试(安卓) 一.旋钮特性 二.驱动编写 三.GPIO配置(设备树) 1.dtsi配置节点属性 2.dts配置gpio属性 四.input事件调试 五 ...

  8. 安卓动态调试七种武器之孔雀翎 – Ida Pro – 蒸米

    原文地址:http://drops.wooyun.org/tips/6840 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的, ...

  9. 安卓动态调试七种武器之孔雀翎 – Ida Pro

    作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的,人是活的,如果能搞懂工具的原理再结合上自身的经验,你也 ...

最新文章

  1. 跟益达学Solr5之Schema.xml详解
  2. 跳车开发者Pokkst自述——从BTC到BCH
  3. 点一万个赞:商汤SiamRPN目标跟踪最强算法开源
  4. 抽象类(Abstract)和接口的不同点、共同点(Interface)。
  5. process调用protothread机制的相关宏定义——用HelloWorld进程诠释
  6. 最后一公里极速配送 - 阿里云算法大赛总结
  7. JavaScript中的Function类型总结
  8. Name Disambiguaiton in Aminer论文解读
  9. Matlab2018a破解出现licensing error:-8523
  10. mysql 的相关操作_MySQL(记录相关操作)
  11. 通达信的指标公式改为条件选股公式,进行预警
  12. matlab中fft与fftshift,在matlab中使用fft,ifft和fftshift
  13. c语言编程模拟银行取钱代码,C语言 用初等函数模拟银行取款
  14. 4和2大于号小于号箭头那边_‘’口诀化‘’教学之二――大于号和小于号
  15. 圆通快递单号免费查询接口,附带开发源码
  16. sql查询结果加上序号
  17. amigo幸运字符什么意思_QQ有什么魅力?为什么00后都喜欢?细节都在这些“标识”里...
  18. UnrealEngine5实操--基础概念(持续补充)
  19. android APP开发时,全屏手机适配的问题解决
  20. 苹果订阅的升级、降级、同级转换

热门文章

  1. Huber Loss function
  2. 使用计算机的硬件及参数,硬件参数怎么看?如何选配电脑硬件?
  3. 华为交换机关机方法_华为交换机常用的三种vlan划分方法~
  4. springboot 控制台输出错误信息_SpringBoot 三招组合拳,手把手教你打出优雅的后端接口...
  5. android 7.0原生动态,Android7.0适配教程,心得
  6. python发音模块-python声音模块
  7. 自学python顺序-python数据结构学习之实现线性表的顺序
  8. 廖雪峰python教程-Python 2.7教程
  9. python中文版免费下载-PYTHON自然语言处理(中文最新完整版)pdf下载
  10. python从入门到精通pdf-跟老齐学Python:从入门到精通 完整版PDF[7MB]