拿到程序先运行,简单的验证输入的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位替换下就行。

iscc2016 mobile1-TurtleShell.apk解题过程的更多相关文章

  1. Android APK安装过程学习笔记

    1.什么是APK APK,即Android Package,Android安装包.不同平台的安装文件格式都不同,类似于Windows的安装包是二进制的exe格式,Mac的安装包是dmg格式.APK可以 ...

  2. A+B Format 思路及解题过程结果

    A+B Format 思路及解题过程结果 github链接 题目 解题思路 这个题目的难点在于每三位用逗号隔开,以及带不带负号的问题.第一个问题,我的解决办法是先通过取整来取数,再通过取余来去数.第二 ...

  3. 深度探究apk安装过程

    一.先验知识 0.PcakageaManagerService版本号变化 1.概述 2.PackageManagerService服务启动流程 3. PackageManagerService入口 二 ...

  4. Aandroid 解决apk打包过程中出现的“Certificate for <jcenter.bintray.com> doesn't match any of the subject alternative names: [*.aktana.com, aktana.com]”的问题

    有时候,apk打包过程中会出现“Certificate for <jcenter.bintray.com> doesn't match any of the subject alterna ...

  5. 记录手动签名APK的过程

    记录手动签名APK的过程 前两天更新了华为平台上的APK,被驳回,原因是新APK签名和老的APK不一致,老用户安装会失败,用命令行安装会报如下的错误: harlanc@harlancdeMacBook ...

  6. Android Activity启动流程, app启动流程,APK打包流程, APK安装过程

    1.Activity启动流程 (7.0版本之前) 从startActivity()开始,最终都会调用startActivityForResult() 在该方法里面会调用Instrumentation. ...

  7. 一个蒟蒻的解题过程记录——洛谷P1003 铺地毯

    这到题算是我“火线回归”后码的第一道题,病好了心情不错,发篇博客分享一下 目录: ·题目描述 ·题目分析 ·解题思路 ·代码实现 ·总结 ·题目描述: 为了准备一场特殊的颁奖典礼,组织者在会场的一片矩 ...

  8. 【转】android Apk打包过程概述_android是如何打包apk的

    最近看了老罗分析android资源管理和apk打包流程的博客,参考其他一些资料,做了一下整理,脱离繁琐的打包细节和数据结构,从整体上概述了apk打包的整个流程.   流程概述: 1.打包资源文件,生成 ...

  9. Android APK安装过程介绍

    课题路径:从Myfile中点击应用进行安装,到安装完成,过程分析 思想方法:在研究PreloadInstaller的时候我们直接从整个apk的文件结构入手,由整体到部分的分析:但现在整个PMS非常庞大 ...

随机推荐

  1. java 自定义注解以及获得注解的值

    1.自定义注解 import java.lang.annotation.*; @Documented @Target(ElementType.FIELD) @Inherited @Retention( ...

  2. 【转载】Java StringBuffer与StringBuider

    本文转载微学苑java基础教程,原文地址链接:http://www.weixueyuan.net/view/6318.html String 的值是不可变的,每次对String的操作都会生成新的Str ...

  3. C#中英文混合字符串过长截断

    /// <summary> /// 截断字符串 /// </summary> /// <param name="maxLength">最大长度& ...

  4. union关键字 与大小端模式

    union 关键字(主要用来压缩空间,如果一些数据不可能同一时间同时用到,可是考虑使用union) union关键字声明的变量称之为联合体变量: (1)联合体变量只配置一个足够大的空间来容纳最大长度的 ...

  5. Android触摸事件的分发机制

    ---恢复内容开始--- 一.MotionEvent : ACTION_DOWN(下按事件).ACTION_UP(松开事件).ACTION_MOVE(移动事件) 二.三大函数 1.dispatchTo ...

  6. epoll模型的et模式和lt模式

    http://www.cppblog.com/peakflys/archive/2012/08/26/188344.html    评论区讨论,唐诗! http://www.cnblogs.com/e ...

  7. 如果设置http.get超时控制

    var timeout_wrapper = function (req) { return function () { // do some logging, cleaning, etc. depen ...

  8. 在thread 引用pthread_t 空指针的问题

    错误 pthread_t *thr; pthread_create(thr,NULL,threadhander(),NULL); 正确 pthread_t thr; pthread_create(&a ...

  9. JQuery 获取验证码倒计时

    HTML代码: <button id="btn">点击获取验证码</button> Jquery:代码: $(document).ready(functio ...

  10. tomcat context标签中resource配置