您现在的位置是:主页 > news > 现在做什么网站好/西安网络推广公司网络推广

现在做什么网站好/西安网络推广公司网络推广

admin2025/6/9 13:01:32news

简介现在做什么网站好,西安网络推广公司网络推广,网站做联盟还赚钱吗,做黄色网站需要备案吗断点的设置,本质上就是动态调试时,在大量代码中快速找到关键代码的过程。 在 Android 逆向过程中,设置断点有两个思路: 一)。顺流程思路 拿登录流程来说,必定有用户名及密码输入框以及登录按钮&#xff0…

现在做什么网站好,西安网络推广公司网络推广,网站做联盟还赚钱吗,做黄色网站需要备案吗断点的设置,本质上就是动态调试时,在大量代码中快速找到关键代码的过程。 在 Android 逆向过程中,设置断点有两个思路: 一)。顺流程思路 拿登录流程来说,必定有用户名及密码输入框以及登录按钮&#xff0…

断点的设置,本质上就是动态调试时,在大量代码中快速找到关键代码的过程。


在 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"




秀一下成功下断的截图:








以上,就是在反编译代码中,定位到关键类和关键函数的具体步骤!

记个笔记,免得以后忘了。