『reverse』2016年全国大学生信息安全大赛——珍贵资料解题报告

博客介绍了参与2016年全国大学生信息安全大赛的解题过程,主要涉及安卓逆向技术。通过分析未知文件,发现其为一个隐藏的apk包,使用apktool反编译后,再借助dex2jar和jdgui进行Java代码反编译。在源码中找到关键代码段,通过理解并操作移位算法,解密出密码"amanisnobody",从而得出flag为"flag{amanisnobody}"。
摘要由CSDN通过智能技术生成

  将题目文件下载、解压,得到两个文件,unknown和unknown2:


文件系统显示unknown2为压缩文件,unknown为二进制文件,而unknown2则为zip压缩文件,,归档管理器查看unknown2,发现以下文件结构:

显然是apk包,将文件改名为unkown2.apk,使用apktool反编译,得到以下文件目录


用dex2jar + jdgui反编译,得到java文件


搜索所有文件,发现未出现flag关键字,故flag应该与文件代码相关。通过阅读分析代码,发现WelcomeAvtivity.java中以下代码

protected void onCreate(Bundle paramBundle)  {
   super.onCreate(paramBundle);
    setContentView(2130903042);
    paramBundle = (TextView)findViewById(2131165192);
    String str = getIntent().getStringExtra("i");
    try
    {
      paramBundle.setText;
      return;
    }
    catch (Exception paramBundle)
    {
      paramBundle.printStackTrace();
    }
}
 
其中str为可疑点,在LogoActivity.java中发现对应代码
<pre name="code" class="java">protected void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    requestWindowFeature(1);
    setContentView(2130903041);
    this.progressBar = ((ProgressBar)findViewById(2131165189));
    this.backButton = ((Button)findViewById(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值