逆向入门系列(2)静态分析工具ida的使用

博客已经转移

https://noone-hub.github.io/

先,ida的下载这个自己可以吧,不会的可以找我要ida6.8版本跟7.0版本,我只有这两个版本,6.8兼容32和64位系统,7.0只兼容64位系统,本文用的是6.8,在linux下,我用wine运行的逆向入门系列(2)静态分析工具ida的使用_第1张图片打开ida后通常是这个界面,点击new

逆向入门系列(2)静态分析工具ida的使用_第2张图片

找到你要的文件,linux下的elf文件要选择all files才能找到,如何判断是elf文件,这我也不谈,可以自己百度,逆向入门系列(2)静态分析工具ida的使用_第3张图片双击后便是这个界面,他也会给你判断是什么文件,直接点ok就好,进来后不要直接f5,会提示错误的,这里还不是main函数,你f5也没用,f5是转c代码的,

逆向入门系列(2)静态分析工具ida的使用_第4张图片,学过c的都知道,main是起始函数,双击main进入,按esc可以返回上一层

逆向入门系列(2)静态分析工具ida的使用_第5张图片然后F5便可以显示c代码,有时候函数多的时候你连main函数都不知道在哪,re的题目通常都没加密字符串,所以我教你们另一种可行办法,若为图形界面

逆向入门系列(2)静态分析工具ida的使用_第6张图片右键,text view,查看汇编代码,然后alt+T搜索可用的字符串,字符串你可以运行程序获得,也可以用工具获得,radare2也是一个神器,在此不多说,我也不怎么会用,搜索到后可以利用

逆向入门系列(2)静态分析工具ida的使用_第7张图片那个箭头进行回溯,找到真正的主要函数,此题没字符串,就不多讲,这里直接F5查看c代码,

逆向入门系列(2)静态分析工具ida的使用_第8张图片

发觉一点有用的信息也没有,在此我已经不知道怎么做了,看了writeup后知道,这里传入的是flag的顺序,

逆向入门系列(2)静态分析工具ida的使用_第9张图片

也就是这一串字符里含有flag,打开ida的hex窗口,hex是16进制

逆向入门系列(2)静态分析工具ida的使用_第10张图片

在小窗口里有的选,发觉一串可疑字符,里面可疑独处含有flag,顺序明显被打乱了,还有一堆乱码混淆我们,然后通过手动整理可以得到传入的参数为 

list=[6,9,0,1,0xA,0,8,0,0xB,2,3,1,0xD,4,5,2,7,2,3,1,0xC],

有未知参数,在.bss段,未初始化的全局变量,这里网上的writeup解释得都很模糊,我从c语言的学习中得知,全局变量未初始化便为0,所以未知的参数全填充为0,(个人理解),然后在那串字符中,找规律得到flag为奇数位的字符,偶数位的字符只是拿来加密的(在下找规律从小学开始就不好,恕我愚钝,没看出),然后就是得到奇数位字符,奇数位的数据你按r可以转换成字符

 flag=['a','g','i','n','b','e','f','j','m','l','{','z','}','_']
偶数位字符

xor=[0x4c,0x59,0x29,0x42,0x0D,0x71,0x34,0xC6,0x8A,0x7F,0xAE,0x92,0xEC,0x57]

然后通过python脚本跑一下就出来了

  1 #!/usr/bin/env python
  2 # coding=utf-8
  3 list=[6,9,0,1,0xA,0,8,0,0xB,2,3,1,0xD,4,5,2,7,2,3,1,0xC]
  4 flag=['a','g','i','n','b','e','f','j','m','l','{','z','}','_']
  5 xor=[0x4c,0x59,0x29,0x42,0x0D,0x71,0x34,0xC6,0x8A,0x7F,0xAE,0x92,0xEC,0x57]
  6 result=""
  7 for i in range(21):
  8     result+=flag[list[i]]
  9 print result

题目下载:下载地址密码: j4fn

你可能感兴趣的:(逆向,reverse,Linux)