下载ALPHA3

ALPHA3实际上只是配windows,不过有国人制作了适配linux版本的。因为我的环境大多数都是在linux上,所以我直接下载国人修改制作的适配linux版本的ALPHA3:(我也只写了linux教程)

1
git clone https://github.com/TaQini/alpha3.git

我把这个py脚本git到了我的~/Software文件夹下。

直接运行会报错。我是真不理解这是什么错误。上网找了一些教程,最终发现感觉这个文件只支持python2运行。

那么我就要在我的ubuntu里面安装一个python2环境,还要和python3环境兼容

python2环境

这个时候,我们可以用python2来运行程序了。

使用

用起来太麻烦了,每次都要进入这个傻逼目录里面他妈的调用这个傻逼脚本的话,太他妈的麻烦了。我决定创造一个链接,让我可以无时无刻用。

为此我要创建一个叫做.links的隐藏文件夹在我的用户目录下,然后往里面塞链接。

1
2
mkdir ~/.links
sudo ln -s ~/Softwares/alpha3/ALPHA3.py ~/.link/ALPHA3.py

在做一个scmker.py文件,这个放在我的vscode里面,再弄一个ln出去玩:

1
sudo ln -s /home/kanyo/pwn_test/pwncodes/python/scmker/scmker.py ~/.link/scmker.py

测试一下:

1
2
3
4
5
6
7
8
9
10
#python ~/.link/scmker.py > ~/.link/shellcode
#python2 ~/.link/ALPHA3.py x64 ascii mixedcase rax --input="$HOME/.link/shellcode"
#python2 ~/.link/ALPHA3.py x32 ascii mixedcase rax --input="$HOME/.link/shellcode"
from pwn import *

context.arch='amd64'
#context/arch='x86_64'

sc = shellcraft.sh()
print(asm(sc))

非常完美。其实这个代码还需要配合控制台用有点傻逼。不过我现在没有修改他的想法。等我哪天做题崩溃了再来补充吧~、

后注:

似乎python3版本的pwntool威力有点强大,导致有一个问题:为了避免很多不必要的bug,python3的shellcraft又臭又长。

1
Ph0666TY1131Xh333311k13XjiV11Hc1ZXYf1TqIHf9kDqW02DqX0D1Hu3M2O2u2E0Z7m0n7m0R0b2x2o0Y102x0B7O2A1P2J0n102j0V0l2A0T170Z2j0Y7N0O1O137M0I1P132v0H0V10142v060H0f11000J0q11180I1711160J0Z110h0k060V0y0g2E0m0K170u0n110m2H11120n2n0U1N0f7N0m0H192m0n2n0U10112t0H12131k2k0h0l02102w0m0I112m2w0C01

上面使用python3生成的shellcode,下面是python2的老版本pwntools生成的shellcode:

1
Ph0666TY1131Xh333311k13XjiV11Hc1ZXYf1TqIHf9kDqW02DqX0D1Hu3M2G0Z2o4H0u0P160Z0g7O0Z0C100y5O3G020B2n060N4q0n2t0B0001010H3S2y0Y0O0n0z01340d2F4y8P115l1n0J0h0a070t

快他妈的两倍了。所以代码最好改成:

1
2
3
4
5
6
7
8
9
10
11
#全部改用python2
#python2 ~/.link/scmker.py > ~/.link/shellcode
#python2 ~/.link/ALPHA3.py x64 ascii mixedcase rax --input="$HOME/.link/shellcode"
#python2 ~/.link/ALPHA3.py x32 ascii mixedcase rax --input="$HOME/.link/shellcode"
from pwn import *

context.arch='amd64'
#context/arch='x86_64'

sc = shellcraft.sh()
print(asm(sc))