安装
git
clone
https://github.com/blacknbunny/Shellcode-Encrypter-Decrypter.git &&
cd
Shellcode-Encrypter-Decrypter/
python encdecshellcode.py --
help
示例
Encryption
:
python
encdecshellcode.py --shellcode x41x41x42x42 --key SECRETKEY --option encrypt
Decryption
:
python
encdecshellcode.py --shellcode x41x41x42x42 --key SECRETKEY --option decrypt
各种shellcode
http://shell-storm.org/shellcode/
import
argparse
from
sys
import
argv, stdout, exit
parser = argparse.ArgumentParser(description=
"Encrypting & Decrypting Shellcode"
)
parser.add_argument(
'-s'
,
'--shellcode'
, help=
'Shellcode To Encrypt & Decrypt'
)
parser.add_argument(
'-k'
,
'--key'
, help=
'Key Of The Shellcode To Encrypt & Decrpyt'
, default=
'key'
)
parser.add_argument(
'-o'
,
'--option'
, help=
'Argument For Encrypting or Decrypting The Shellcode'
)
args = parser.parse_args()
def
EncryptShellcode
(shellcode, key)
:
shellcode_encrypted_hex = []
shellcode_decrypted_hex = []
shellcode_replaced_hex =
''
count =
0
for
d
in
range(
0
, len(shellcode) /
4
):
count +=
4
shellcode_decrypted_hex.append(shellcode[count
-4
:count].replace(
r'x'
,
''
))
for
x
in
range(
0
, len(shellcode_decrypted_hex)):
for
d
in
range(
0
, len(key)):
shellcode_encrypted_hex.append(hex(ord(shellcode_decrypted_hex[x].decode(
'hex'
)) ^ ord(key[d])))
for
y
in
range(
0
, len(shellcode_encrypted_hex)):
shellcode_replaced_hex += shellcode_encrypted_hex[y].replace(
'0x'
,
r'x'
)
return
shellcode_replaced_hex
def
DecryptShellcode
(shellcode, key)
:
shellcode_decrypted = []
shellcode_xor_headers = []
shellcode_replaced_hex =
''
string =
''
for
x
in
shellcode:
string += shellcode.replace(
r'x'
,
''
)
break
count =
0
for
y
in
string:
shellcode_xor_headers.append(string[count:count+
2
])
count +=
6
while
''
in
shellcode_xor_headers:
shellcode_xor_headers.remove(
''
)
for
z
in
range(len(shellcode_xor_headers)):
shellcode_decrypted.append(hex(ord(shellcode_xor_headers[z].decode(
'hex'
)) ^ ord(key[
0
])))
for
h
in
range(
0
, len(shellcode_decrypted)):
shellcode_replaced_hex += shellcode_decrypted[h].replace(
'0x'
,
r'x'
)
return
shellcode_replaced_hex
def
PrintHelp
()
:
parser.print_help()
exit(
1
)
def
main
()
:
try
:
shellcode = args.shellcode
key = args.key
if
args.option ==
"encrypt"
:
print(
"Encrypted Shellcode = "
+ EncryptShellcode(shellcode, key) )
elif
args.option ==
"decrypt"
:
print(
"nDecrypted Shellcode = "
+ DecryptShellcode(shellcode, key) )
else
:
PrintHelp()
except
Exception
as
e:
PrintHelp()
print(e)
if
__name__ ==
'__main__'
:
exit(main())
项目地址:https://github.com/blacknbunny/encdecshellcode
原文始发于微信公众号(白帽学子):Shellcode 加解密脚本
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论