Logout

ida

使用

shift + F5编译 Tab键跳到变量或函数对应的IDA-view窗口 通过键盘快捷键“Shift+E”可以打开提取数据界面,将数据按照指定的数据格式提取到TXT文本文档中 通过右键点击空白处,添加注释,也可直接使用快捷键“分号”,快速打开注释界面。 a:将数据转换为字符串 shift+f12:可以打开string窗口,一键找出所有的字符串,右击setup,还能对窗口的属性进行设置 x:对着某个函数、变量按该快捷键,可以查看它的交叉引用 g:直接跳转到某个地址 n:更改变量的名称 y:更改变量的类型 C code光标地址出内容解析成代码 P 在函数开始处使用P,从当前地址处解析成函数 D data解析成数据 菜单栏中的搜索功能中 有ALT+T 搜索文本 ALT+B 搜索16进制 搜索opcode 如ELF文件头

创建数组

首先点击选中你想要转换成数组的一块区域: 接着在菜单栏中选择:edit-->array,就会弹出如下的选项框 ![](_v_images/20220807155012395_1994.png =402x) Array element size 这个值表示各数组元素的大小(这里是1个字节),是根据你选中的数据值的大小所决定的 Maximum possible size 这个值是由自动计算得出的,他表示数组中的元素的可能的最大值 Array size 表示数组元素的数量,一般都根据你选定的自动产生默认值 Items on a line 这个表示指定每个反汇编行显示的元素数量,它可以减少显示数组所需的空间 Element print width 这个值用于格式化,当一行显示多个项目时,他控制列宽 Use “dup” construct :使用重复结构,这个选项可以使得相同的数据值合并起来,用一个重复说明符组合成一项 Signed elements 表示将数据显示为有符号数还是无符号数 Display indexes 显示索引,使得数组索引以常规的形式显示,如果选了这个选项,还会启动右边的Indexes选项栏,用于选择索引的显示格式 Create as array 创建为数组,这个一般默认选上的

API

judge=0x600B00
for i in range(182):
    addr=0x600B00+i
    byte=get_bytes(addr,1)#获取指定地址的指定字节数
    byte=ord(byte)^0xC
    patch_byte(addr,byte)#打patch修改字节,设置虚拟地址处的字节值

pwn

基本工具

python pwntools gdb(插件pwndbg)

gdb操作: ![](assets/20210529102714694_29171.png =503x)

寄存器相关

根据Intel在x64中,以下寄存器称为通用寄存器(RAX,RBX,RCX,RDX,RBP,RSI,RDI,RSP和R8-R15

RBP和RSP是专用寄存器(RBP指向当前堆栈帧的基础,RSP指向当前堆栈帧的顶部)

https://www.cnblogs.com/chenpingzhao/p/6562415.html https://xz.aliyun.com/t/6957 http://www.91ri.org/8985.html http://www.91ri.org/11110.html https://su18.org/post/EiNzuduRG/ 大马 https://github.com/su18/Stitch 蠕虫马https://blog.csdn.net/qq_38154820/article/details/106330119 https://github.com/3sNwgeek/awd_worm_phpwebshell_framework/ 绕过disable_functions https://github.com/zhinaonet/bypass_disablefunc_via_LD_PRELOAD