zoukankan      html  css  js  c++  java
  • iscc2016 mobile1-TurtleShell.apk解题过程

    拿到程序先运行,简单的验证输入的flag正确与否。jeb加载apk文件

    实在库文件里面验证,所以ida加载之,so文件是加密的,所以看不到关键验证函数,百度搜了下libhackme.so,出来这篇文章:

    http://burningcodes.net/so%E5%8A%A0%E5%9B%BA%E7%B3%BB%E5%88%97%E4%B9%8B%E8%BF%90%E8%A1%8C%E6%97%B6%E8%A7%A3%E5%AF%86/

    看了下调用的函数,可以确定这个so文件就是文章里面所述的加解密方法,加密修改elf头的e_entry和e_shoff字段分别为要加密section的偏移和大小,然后那个section简单的移位操作,运行时解密通过elf头文件的这两个值定位待解密section,然后恢复section到内存中,所以通过dump程序运行时加载的so文件就能得到解密和的so。具体过程如下:

    然后就可以分析so文件的关键函数了:

    dump出的文件拿到ida加载可以看到关键函数crackme,里面调用了bingmeiyoushenmeluanyong函数(然而是有用的),算法很简单,前16位已经给出,后16位替换下就行。

  • 相关阅读:
    jq-demo-阻止冒泡,阻止默认行为
    jq-demo-轮播图
    jq-demo-点击选择(英雄联盟)
    jq-demo-tab切换
    jq-demo-拖拽
    hdu 4031 Attack 线段树
    codeforces 633C. Spy Syndrome 2 hash
    sublime模式下开启vim并修改esc
    codevs 1256 打鼹鼠 LIS
    codevs 1455 路径 计算m^n%p
  • 原文地址:https://www.cnblogs.com/Joe-Z/p/5528395.html
Copyright © 2011-2022 走看看