IDA Pro和 Linux 使用总结


持续更新ing~~~~

前言

参考并推荐以下博文:

https://xz.aliyun.com/t/4205#toc-11

 

IDA使用

一、操作技巧

  1. C:将十六进制数据分析为代码;D键--当作数据进行分析;P键--将该段代码分析为函数。
  2. CTRL+S:打开段视图,可以选择某个数据段进行跳转。
  3. x:光标停留在某个函数、变量,按该键,可以查看交叉引用。
  4. n:重命名变量或函数。
  5. y:更改变量的类型。
  6. u:取消对函数、代码、数据的定义。
  7. 打开函数调用图:菜单栏中,view-->graphs-->Function calls(快捷键Ctrl+F12)。
  8. CTRL+F7运行至返回,直到遇到RETN(或断点)时才停止。
  9. Alt+K:修改栈指针。实在改不对就nop掉吧。

二、一些疑问和想法

  1. idc脚本的使用--加密与解密P83。
  2. 如果函数中存在花指令或者一些故意破坏堆栈的指令,可以先patch掉后按p分析为函数。
  3. 在创建函数时,若无法确定函数结束位置或者发现非法指令,则会创建失败。alt+p创建一个函数,需要设定开头和结尾。如果还不行,就在编辑里创建一个新的segment。
  4. 导入自己设计的结构体或C库中的:View-->Open Subviews-->Local Types中可以看到本地已有的结构体,在该窗口中右击insert可以添加新的结构体。
  5. ida似乎无法同时调试父子进程(在子进程中使用ptrace(0,0,0,0)时),暂时没有深入研究。
  6. patch后的代码需要在Edit-->Patch Progam-->Apply patches to input file才能保存到原文件。
  7. 撤销patch,Edit-->Keypatch-->undo last patch。
  8. 如果打了很多次patch,不好分清该撤销哪一次的patch,那么可以在菜单栏中打开patched bytes界面。(view-->open subviews-->patched bytes)

Linux使用部分

  1. 查看进程信息:
    ps -ef | grep 进程名
    ls -l /proc/进程id
  2. 。。。

杂七杂八调试技巧汇总

1.javascript调试 

按F12,如下图打开控制台,点击Source,可以在js文件里双击代码所在的行下断点。

 

 

 点击该按钮开始执行程序或继续执行。

 

 添加一句代码console.log( xxx )来打印输出自己想要获取的信息。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM