1.简介 这个题目是一位吾爱破解的坛友在面试UC的Android逆向工程事时,遇到的题目.此题不难,与阿里移动去年移动安全比赛的题目差不多,题目的验证方式也是查表对比,并且这个表的数据是放在文件中的. 2.题目分析 直接使用JEB对UC-crackme.apk程序进行反编译,得到下面的结果: 获取查询的密码表,即文件abcdefghddddd的文件偏移0x15D81开始到0x16081结束的0x300字节的数据. 获取中间参与最终字符串比较的18字节的数据即文件abcdefghddddd的文件偏…
博客链接:http://blog.csdn.net/qq1084283172/article/details/52133172 一.简介 这个题目是别人面试UC优视集团Android逆向工程师一职位的面试题,相比较前面的面试题1,增加了一些难度. 二.题目分析 1.使用JEB程序对UC-crackme-2.apk进行反编译分析,函数clacSnFuntion就是对用户输入的注册码进行校验的. 2.校验用户输入的用户名和注册码的函数clacSnFuntion是在Native层实现的,具体的实现在l…
你们发现了吗?Android逆向.安全方面的工程师真的越来越"稀有"了. 以腾讯.美团.百度为代表的大厂们,在某招聘网站上居然薪酬高达30-60k. 现在移动端市场越来越火热,APP越来越多, 经常有APP爆出窃取个人隐私.强行定位.拉取通讯录好友信息等各种霸道条款,还有很多病毒是我们不知道的. 因此APP安全将面临巨大的市场,而安卓逆向就能解决APP安全的问题,逆向APP一攻一防才能知道问题出来哪里,用什么办法解决. 但是安卓逆向是一个杂学,要学的技能很多,考验的是知识广度+深度+经…
https://www.cnblogs.com/huangjialin/p/8657565.html(存在不少答案错误,可参照知识点复习,答案不可全信)  上 https://www.cnblogs.com/huangjialin/p/8657696.html  下  25. https://www.cnblogs.com/huangjialin/p/8622506.html  面试经历 19.String为什么要设计成不可变的? 1.字符串池的需求 字符串池是方法区(Method Area)中…
1.请谈一下Android系统的架构. 答:Android系统采用了分层架构,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层. 2.谈谈android大众常用的五种布局. 答:在Android中,共有五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局). (1)FrameLayout 框架布局,放入其中的…
1.    请描述下Activity的生命周期. 必调用的三个方法:onCreate()--> onStart() --> onResume(),用AAA表示 (1)父Activity启动子Activity,子Actvity退出,父Activity调用顺序如下 AAA --> onFreeze() --> onPause() --> onStop() --> onRestart()--> onStart(),onResume() - (2)用户点击Home,Act…
1:Android中五种数据存储方式分别是什么?他们的特点?     (1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML的格式存放在设备中 (2) SQLite数据库,存放各种数据,是一个轻量级的嵌入式数据库 (3) File文件,通过读取写入方式生成文件存放数据 (4) ContentProvider,主要用于让其他应用程序使用保存的数据 (5) 通过网络获取数据和写入数据到网络存储空间    答:Android提供了五种存取数据的方式  2:说…
Message:消息:其中包含了消息ID,消息对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理 Handler:处理者:负责Message发送消息及处理.Handler通过与Looper进行沟通,从而使用Handler时,需要实现handlerMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等(主线程中才行) MessageQueue:消息队列:用来存放Handler发送过来的消息,并按照FIFO(先入先出队列)规则执行.…
前言 发现一个有趣的现象,似乎程序员们对面试题总是抱有热情,多看几道面试题,自己的面试能力就可以提高一点. 作为一个研发工程师,看过很多公司的面试题,也参与过很多公司的面试,发现大厂的面试题更加具有代表性,虽然现在很多大厂的面试官也懒得自己出题了,不过经验老到的他们还是更清楚如何高效率地考察面试者. 而小公司的面试题往往五花八门,有的更加贴近公司自身业务,希望面试者结合业务给出解决方案,有的干脆直接从书本上找题目,考察一些死记硬背的概念,当然,有的初创公司逼格很高,则会搞一些高难度的面试题,角度…
一.在SO中关键函数上下断点 刚学逆向调试时.大多都满足于在SO中某关键函数上下断点.然后通过操作应用程序,去触发这个断点,然后进行调试 详细的步骤可以参见非虫大大的<Android软件安全与逆向分析> 简单说:在libsyclover.so文件中有一个函数jnicall1.每次单击按钮的时候,便会调用此函数. 1.静态载入此so文件,找到函数的偏移地址为:0x132C 2.执行android_server3.端口转发 adb forward tcp:23946 tcp:23946 4.运行程…