pwnable_hacknote_WP
检查保护
i386架构,RELRO半开,开了Canary和NX,没开PIE。
分析ELF
先跑一下
类似菜单的程序,有增、删、查的操作。
IDA反编译后发现主函数主要就是根据选项选择菜单内相应功能的作用,若输入范围之外的数字则会出现错误提示并重新选择。(因为主函数逻辑不是很复杂所以这里就不贴反编译出来的代码了)
Add note
unsigned int add_note()
{
int v0; // ebx
int i; // [esp+Ch] [ebp-1Ch]
int size; // [esp+10h] [ebp-18h]
char buf[8]; // [esp+14h] [ebp-14h] BYREF
unsigned int v5; // [esp+1Ch] [ebp-Ch]
v5 = __readgsdword(0x14u);
if ( dword_804A04C <= 5 )
{
for ( i = 0; i <= 4; ++i )
{
if ( !*(&ptr + i) )
{
*(&ptr + i) = malloc(8u); // chunk0
if ( !*(&ptr + i) )
{
puts("Alloca Error");
exit(-1);
}
*(_DWORD *)*(&ptr + i) = print_content;
printf("Note size :");
read(0, buf, 8u);
size = atoi(buf);
v0 = (int)*(&ptr + i);
*(_DWORD *)(v0 + 4) = malloc