您现在的位置是:主页 > news > 现在做什么网站好/西安网络推广公司网络推广
现在做什么网站好/西安网络推广公司网络推广
admin2025/6/9 13:01:32【news】
简介现在做什么网站好,西安网络推广公司网络推广,网站做联盟还赚钱吗,做黄色网站需要备案吗断点的设置,本质上就是动态调试时,在大量代码中快速找到关键代码的过程。 在 Android 逆向过程中,设置断点有两个思路: 一)。顺流程思路 拿登录流程来说,必定有用户名及密码输入框以及登录按钮࿰…
断点的设置,本质上就是动态调试时,在大量代码中快速找到关键代码的过程。
在 Android 逆向过程中,设置断点有两个思路:
一)。顺流程思路
拿登录流程来说,必定有用户名及密码输入框以及登录按钮!
顺流程思路的关键,就是找到登录按钮点击事件的处理函数!(或者回车键盘处理函数)
然后一级级分析函数的下层调用关系,直到向服务器发送请求数据部分为止
数据加密、封装请求包,一定是在这个过程中进行的!
(注:加密、封包等操作不一定是在同一线程中进行,要分析的目标程序有可能会另外开新线程来做这些操作)
还是拿登录流程来说,当输入错误的密码并点击登录按钮后,
服务器端必定返回登录失败的代码,然后客户端也必定会提示密码错误!
提示密码错误,就是显示字符串的过程,所以,逆流程的关键是:
找到显示这个字符串的函数,然后从这个函数开始,逐层分析上层调用者,直到接收服务器数据的网络请求部分!
数据解密、解封响应包,一定是在这个过程中进行的!
(注:有可能开新线程)
如何找到登录按钮点击事件的处理函数?
第1步:使用android sdk 的 "UI Automator Viewer" 工具找到登录按钮的资源ID:
(这个工具在 android sdk 目录中, 如:D:\Android\sdk\tools\uiautomatorviewer.bat )
第二步:使用 adb shell dumpsys activity | findstr "mFocusedActivity" 指令取当前界面所属的包名及界面的类名
得到的类名像这样:com.lenovo.testApp/.ui.LoginUI
上面两步得到了 登录按钮的资源ID 和 界面的类名
这时,只要在分析反编译出来的代码中分析这个界面类,查找这个资源相关的代码,即可以找到登录按钮的 onclick 函数
但很多时候,资源ID不是一个数字的时候,则说明这个资源ID被做了映射或转化
遇到这种情况也不难找出真正的资源ID
步骤如下:
a). 使用 xsearch 等文件内容搜索工具,在反编译出来的源码目录中搜索type="id" name="从界面找到的那个按钮的资源ID"
<public type="id" name="bd4" id="0x7f100b3a" />
然后再用 xsearch 搜索 7f100b3a, 得到一个变量名: ceo
然后使用 JEB2 定位到 R$h.smali 类, 经 JEB2 反编译后的代码, 这个类名应该变成 R 了
查找 ceo (JAVA 区分大小写)的交叉引用函数,找到如下的代码:
双击找到的交叉引用函数,定位到这个函数体代码
将按钮重命名为 btnLogin 后,找其 onclic 函数也就是扫一眼LoginUI类代码的事。。。
如何找到显示密码错误字符串的函数?
一般的, 在打包 apk 的时候,字符串也被编译成资源, 也一样有资源ID
找人方法跟上面差不多, xsearch 全目录搜索错误提示信息,如:帐号或密码,请重新输入。。。。
跟找按钮资源ID过程的惟一的区别是:
type="id" name="=:> type="string" name="字符串ID"
秀一下成功下断的截图:
以上,就是在反编译代码中,定位到关键类和关键函数的具体步骤!
记个笔记,免得以后忘了。