Loading... <!-- wp:paragraph --> <p>这道题的源程序有700多K,看起来非常大,但是打开之后发现实际上只有两个函数是有用的,即main和vuln。 但是由于不明原因(也许是函数太多?),无法反编译,我们就只能干看汇编了。</p> <!-- /wp:paragraph --> <!-- wp:image {"align":"center","id":581,"sizeSlug":"large"} --> <div class="wp-block-image"><figure class="aligncenter size-large"><img src="https://www.cjovi.icu/usr/uploads/2020/11/QQ截图20201121215321.png" alt="" class="wp-image-581"style=""></figure></div> <!-- /wp:image --> <!-- wp:image {"align":"center","id":582,"sizeSlug":"large"} --> <div class="wp-block-image"><figure class="aligncenter size-large"><img src="https://www.cjovi.icu/usr/uploads/2020/11/QQ截图20201121215332.png" alt="" class="wp-image-582"style=""></figure></div> <!-- /wp:image --> <!-- wp:image {"id":583,"width":377,"height":70,"sizeSlug":"large"} --> <figure class="wp-block-image size-large is-resized"><img src="https://www.cjovi.icu/usr/uploads/2020/11/QQ截图20201121215337.png" alt="" class="wp-image-583" width="377" height="70"style=""></figure> <!-- /wp:image --> <!-- wp:paragraph --> <p>三段分别出现在main,vuln和vuln的栈空间中,由调用约定,我们知道vuln函数有一个参数,此参数就是var_A0的地址</p> <!-- /wp:paragraph --> <!-- wp:image {"align":"center","id":584,"sizeSlug":"large"} --> <div class="wp-block-image"><figure class="aligncenter size-large"><img src="https://www.cjovi.icu/usr/uploads/2020/11/QQ截图20201121215531.png" alt="" class="wp-image-584"style=""></figure></div> <!-- /wp:image --> <!-- wp:paragraph --> <p>那么这里的gets就是向var_A0读入数据了。</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>然后还有非常不同寻常的两行语句</p> <!-- /wp:paragraph --> <!-- wp:image {"align":"center","id":585,"sizeSlug":"large"} --> <div class="wp-block-image"><figure class="aligncenter size-large"><img src="https://www.cjovi.icu/usr/uploads/2020/11/QQ截图20201121215630.png" alt="" class="wp-image-585"style=""></figure></div> <!-- /wp:image --> <!-- wp:paragraph --> <p>这里帮我们实现了ret2reg这种rop,而执行的地址正是var_A0</p> <!-- /wp:paragraph --> <!-- wp:image {"align":"center","id":586,"sizeSlug":"large"} --> <div class="wp-block-image"><figure class="aligncenter size-large"><img src="https://www.cjovi.icu/usr/uploads/2020/11/QQ截图20201121215805.png" alt="" class="wp-image-586"style=""></figure></div> <!-- /wp:image --> <!-- wp:paragraph --> <p>源程序也没有NX,所以我们直接写入shellcode就行了。</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>于是有exp</p> <!-- /wp:paragraph --> <!-- wp:image {"align":"center","id":587,"sizeSlug":"large"} --> <div class="wp-block-image"><figure class="aligncenter size-large"><img src="https://www.cjovi.icu/usr/uploads/2020/11/QQ截图20201121215903.png" alt="" class="wp-image-587"style=""></figure></div> <!-- /wp:image --> <!-- wp:paragraph --> <p>这道题其实非常简单,就是看汇编功底了。</p> <!-- /wp:paragraph --> 最后修改:2020 年 12 月 30 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,那听听上面我喜欢的歌吧