博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
How to make shellcode
阅读量:5346 次
发布时间:2019-06-15

本文共 1634 字,大约阅读时间需要 5 分钟。

;hello.asm[SECTION .text]global _start_start:        jmp short ender        starter:        xor eax, eax    ;clean up the registers        xor ebx, ebx        xor edx, edx        xor ecx, ecx        mov al, 4       ;syscall write        mov bl, 1       ;stdout is 1        pop ecx         ;get the address of the string from the stack        mov dl, 5       ;length of the string        int 0x80        xor eax, eax        mov al, 1       ;exit the shellcode        xor ebx,ebx        int 0x80        ender:        call starter	;put the address of the string on the stack        db 'hello'

$ nasm -f elf hello.asm$ ld -o hello hello.o$ objdump -d ./PROGRAM|grep '[0-9a-f]:'|grep -v 'file'|cut -f2 -d:|cut -f1-6 -d' '|tr -s ' '|tr '\t' ' '|sed 's/ $//g'|sed 's/ /\\x/g'|paste -d '' -s |sed 's/^/"/'|sed 's/$/"/g' or            by python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from
subprocess
import
Popen, PIPE
import
sys
 
def
shellcode_from_objdump(obj):
    
res
=
''
    
p
=
Popen([
'objdump'
,
'-d'
, obj], stdout
=
PIPE, stderr
=
PIPE)
    
(stdoutdata, stderrdata)
=
p.communicate()
    
if
p.returncode
=
=
0
:
        
for
line
in
stdoutdata.splitlines():
            
cols
=
line.split(
'\t'
)
            
if
len
(cols) >
2
:
                
for
b
in
[b
for
b
in
cols[
1
].split(
' '
)
if
b !
=
'']:
                    
res
=
res
+
(
'\\x%s'
%
b)
    
else
:
        
raise
ValueError(stderrdata)
 
    
return
res
 
 
if
__name__
=
=
'__main__'
:
    
if
len
(sys.argv) <
2
:
        
print
'Usage: %s <obj_file>'
%
sys.argv[
0
]
        
sys.exit(
2
)
    
else
:
        
print
'Shellcode for %s:'
%
sys.argv[
1
]
        
print
shellcode_from_objdump(sys.argv[
1
])
    
sys.exit(
0
)
 
 

转载于:https://www.cnblogs.com/bittorrent/archive/2012/10/26/2741721.html

你可能感兴趣的文章
zoj 1232 Adventure of Super Mario
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
oracle job
查看>>
Redis常用命令
查看>>
[转载]电脑小绝技
查看>>
windos系统定时执行批处理文件(bat文件)
查看>>
thinkphp如何实现伪静态
查看>>
BZOJ 2243: [SDOI2011]染色( 树链剖分 )
查看>>
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
c++中的string常用函数用法总结!
查看>>
[DLX精确覆盖+打表] hdu 2518 Dominoes
查看>>
SuperMap iServerJava 6R扩展领域开发及压力测试---判断点在那个面内(1)
查看>>
Week03-面向对象入门
查看>>
一个控制台程序,模拟机器人对话
查看>>
web.xml 中加载顺序
查看>>
pycharm激活地址
查看>>
hdu 1207 四柱汉诺塔
查看>>
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
查看>>
我的PHP学习之路
查看>>
【题解】luogu p2340 奶牛会展
查看>>