WinPwn 笔记

调试

win_server监听某个程序,虚拟机中remote连接,raw_input()等待windbg attach之后再发送数据。

常用命令:

bp [exe_name]+offset:断在offset处
bp pe_base+offset:断在offset处
lm:查看加载的dll及pe地址空间
u addr:查看addr处的代码
g:运行到断点
p:单步步过
t:单步步入
!address [target_addr]:查看target_addr所属的地址范围
dps [addr]:查看addr处开始的一段范围内的值,并且搜索出二进制对应的符号
s -d 0x0 l?0x7fffffff 0x12345678 全局搜索0x12345678

寻找gadget:

1
ropper --file ./ntdll.dll --nocolor > gadget

基础知识

保护

  • GS:类似canary
  • ASLR:地址随机化,但是只有开机的时候才会随机一次

异常

scopeTable结构体中保存了try块相匹配的except,__finally的值,在main函数开始的入口就被压入到栈中。

在遇到异常时,先执行except_handler4函数,该函数首先将scope_table的地址同security_cookie异或得到实际地址,之后验证gs的值,满足要求后当try_level=0xfffffffe(-2)时,调用scope_table中的filter_func。


WinPwn 笔记
https://www.w4y2sh3ll.top/2024/04/11/WinPwn-笔记/
作者
W4y2Sh3ll
发布于
2024年4月11日
许可协议