• BXS入门赛部分writeup


    pwn1  盲打(笑)

    前言:没有听鱼哥的话,事先没有装好环境,于是开始没做出来,然后全程在装pwntools,经过一番努力,失败了0.0

    最终在网上搜了一段python socket连接脚本,终于可以做题了(哭)。这是一个盲打,向服务端发送一定长度的字符串,服务端就会给你最喜欢的flag.

    写下脚本尝试需要多长的字符才可以恰好让服务端给我们flag,脚本如下(由于现在服务端已经关闭,不能实时演示了,请见谅)

    最终只需要如下脚本便可以让服务端乖乖把flag给我们

     

     

    RE

    0x00 Easy_CrackMe

    下载附件,直接拖进IDA进行静态分析,开始点击WinMain函数,没有发现什么关键代码,一个一个函数点下去,点到sub_401080时发现关键代码

    分析程序逻辑,通过关键代码我们可以知道当(v3 == 97 , v4 ==a5y ,v5 == aR3versing ,  String == 69) 时程序输出,其中97是ASCII码,单击它按R可转成字符a, 单击a5y转到它的定义发现它其实是字符串5y,同aR3versing是字符串R3versing,而String通过截图中我们可以看到它位于v3前面。由此我们已经可以推出

    flag: Ea5yR3versing

    0x01 KeygenMe

    拖进IDA进行静态分析,直接点进main函数,F5

    不难看出加密算法,开始我犯了一个错误,我把5B134977135E7D13分成单个字符进行异或解密,得出一串乱码,于是很方,错误脚本见下图

    于是再继续看原加密算法,发现错误处

    首先我们要知道sprintf这个函数的在这里的作用是把异或的结果以16进制存到v13中

    于是修改脚本,如下图

    运行得到flag: K3yg3nm3

    MOBILE

    0x00 Gift

    下载好gift.apk,我没有用jeb对它进行反编译,我用的是dex2jar加jd-gui。它俩的用法请自行百度。这里直接放出反编译后的源码,这很明显就是给我们的gift.如图

    0x01 Register

    查看反编译源码,找到关键判断语句,发现checkSN函数是关键函数。

    找到checkSN函数进行分析

    经过分析我们可以知道此函数作用是取32位MD5中的16单数字符组成注册码。

    于是我们可以自己写一个注册码生成脚本,脚本如下

    这里输入用户名mumuzuishuai,得到注册码b10d7be3557a3021.

    安装Register程序输入用户名和注册码,就会出现flag

    Flag:G00D_YOU_HVCK_IT

    Always believe that good things will come.
  • 相关阅读:
    GIT分支的一些开发心得
    java文件压缩和解压
    java发送邮件
    单例多例
    String,StringBuffer,StringBuilder区别
    GIT文件的三种状态
    javascript 常用技巧
    javascript优化工具 Doloto
    thinkphp 5内置验证规则-基本版
    php+redis配置
  • 原文地址:https://www.cnblogs.com/elvirangel/p/6689885.html
Copyright © 2020-2023  润新知