od/ida笔记

od笔记
程序运行到被调用的地方,暂停od,alt+k 查看主线程调用栈,找到被调用函数的地方
根据ida 找到上层调用函数,在return 处回车。看是哪调用的。找到比对的点。修改汇编 右键保存到可执行文件,复制全部。右键 保存文件

编辑内存改字符串 alt+m 进入内存,ctrl+b 查找unicode ctrl+e 编辑

od快捷键

Ctrl + F2 重启程序,即重新启动被调试程序( 重新载⼊程序 )。如果当前没有调试的程序,OllyDbg会运⾏历史列表[historylist]中的第⼀个程序。
Alt + F2   关闭,即关闭被调试程序。如果程序仍在运⾏,会弹出⼀个提⽰信息,询问您是否要关闭程序。
F2      设置断点(INT3型断点),只要在光标定位的位置按 F2 键即可,再按⼀次 F2键则会删除断点。
Shift + F2    设置条件断点
F7     单步步⼊到下⼀条命令( 单步进⼊ ),如果当前命令是⼀个函数[Call],则会停在这个函数体的第⼀条命令上
Ctr l+ F7    ⾃动步⼊,⼀条⼀条的执⾏命令
F8     单步步⼊到下⼀条命令( 单步跳过 ),如果当前命令是⼀个函数[Call],则会一次执行完毕
Ctrl + F8   ⾃动步过,⼀条⼀条的执⾏命令
F9     运⾏,遇到断点则停在断点位置。如果没有设置相应断点的话,被调试的程序将直接开始运⾏直到结束。
Ctrl + F9   把本层call执⾏完。即执⾏函数代码内的命令,直到遇到 RETN 命令,⽤于跳出函数体。在此期间不进⼊⼦函数也不更新CPU数据。
F12     暂停程序,F9 可以继续运⾏。
空格     击反汇编窗⼝,可以修改原有汇编代码
回车 Enter   如果当前命令是⼀个跳转、函数或者是转换表的⼀个部分,则进⼊到⽬的地址。即在返汇编窗⼝⾥⾯点击 call,可以查看 call 内反汇编代码。

Alt + B 显⽰断点窗⼝。在这个窗⼝中,您可以编辑、删除、或跟进到断点处。
Alt + C 显⽰ CPU 窗⼝。
Alt + E 显⽰模块列表[list of modules]。
Alt + K 显⽰调⽤栈[Call stack]窗⼝。
Alt + L 显⽰⽇志窗⼝。
Alt + M 显⽰内存窗⼝
Alt + O 显⽰选项对话框[Options dialog]
Alt + X 关闭 OllyDbg。

 

ida快捷键
shift+f12:可以打开string窗口
F5 查看伪代码
g:直接跳转到某个地址
ctrl+鼠标滚轮:能够调节流程视图的大小
esc:回退键,能够倒回上一部操作的视图(只有在反汇编窗口才是这个作用,如果是在其他窗口按下esc,会关闭该窗口)

空格键 反汇编窗口切换文本图形
tab 反汇编和汇编切换
找到system调用的地方:ctrl+f 左侧搜索system F5(反汇编) x(查看引用)tab切换到汇编 查看内存地址

 

ROPgadget

x86都是靠栈来传递参数的而x64换了它顺序是rdi, rsi, rdx, rcx, r8, r9如果多于6个参数才会用栈

ROPgadget --binary 文件名 --only "pop|ret" | grep rdi
ROPgadget --binary 文件名 --only "pop|ret" | grep rsi
ROPgadget --binary 文件名 --only "pop|ret"
ROPgadget --binary 文件名 --only 'int' 查找有int 0x80的地址


ROPgadget --binary 文件名 --string '/bin/sh'
ROPgadget --binary 文件名 --string '/sh'
ROPgadget --binary 文件名 --string 'sh'
ROPgadget --binary 文件名 --string 'cat flag'
ROPgadget --binary 文件名 --string 'cat flag.txt'


参考链接:https://wenku.baidu.com/view/1e114d3b5aeef8c75fbfc77da26925c52cc591cb.html

 

posted @ 2022-06-11 17:48  boybai  阅读(32)  评论(0编辑  收藏  举报