1.打开"人人.apk",进入登陆页面,输入用户名和密码,并用fiddler软件抓包
![974c43ccc7e7c37e8a7d147022750873.png](https://img-blog.csdnimg.cn/img_convert/974c43ccc7e7c37e8a7d147022750873.png)
fiddler抓包如下图所示
![5534d7170cf8de4c7bc9d5f14b575395.png](https://img-blog.csdnimg.cn/img_convert/5534d7170cf8de4c7bc9d5f14b575395.png)
红框所示为登录时向服务器发达的包,下面我们要分析这里面每个字段的产生
2.打开ddms,点击下图红框的按钮,点击人人.apk登录按钮后,马上点击红框处的按钮,查看登录按钮调用的函数
![7ac267592407ca586649ee655efe713b.png](https://img-blog.csdnimg.cn/img_convert/7ac267592407ca586649ee655efe713b.png)
抓取的结果如图所示:
![c277b63cc237799973fe6676685b1df9.png](https://img-blog.csdnimg.cn/img_convert/c277b63cc237799973fe6676685b1df9.png)
在抓取的结果中搜索OnClick函数,可以找到红框所示的函数
![74b0e380e3fc099ac44d7c1604bb2e96.png](https://img-blog.csdnimg.cn/img_convert/74b0e380e3fc099ac44d7c1604bb2e96.png)
用andrroid studio动态调试,在此处下断点,发现点登录按钮会在该函数断下,可确认该函数就是登录按钮对应的函数
3.用jadx-gui分析登录函数
先用SDK/tools目录下uiautomatorviewer.bat抓取登录按钮的ID
![3c7cb240826371736b89eb667093600b.png](https://img-blog.csdnimg.cn/img_convert/3c7cb240826371736b89eb667093600b.png)
![d2c4a452e8e244ed6f66e2cb01666a7d.png](https://img-blog.csdnimg.cn/img_convert/d2c4a452e8e244ed6f66e2cb01666a7d.png)
上图红框处就是登录按钮的ID
回到com.renren.mobile.android.login的OnClick函数可判断下面的代码就为点击登录按钮执行的代码
![b6224905b34320c6eb8c27095f93665b.png](https://img-blog.csdnimg.cn/img_convert/b6224905b34320c6eb8c27095f93665b.png)
这里从用户名和密码框取出字符保存,然后调用了N函数(com.renren.mobile.android.login.N),进入N函数
![e5c40b19097f641e6815f90cff615059.png](https://img-blog.csdnimg.cn/img_convert/e5c40b19097f641e6815f90cff615059.png)
4.进入
com.renren.mobile.android.service类的
public static void a(final String str, final String str2, int i, String str3, String str4, Context context, LoginStatusListener loginStatusListener)
![9a30a5f80b6c58c34243c1837023ce5f.png](https://img-blog.csdnimg.cn/img_convert/9a30a5f80b6c58c34243c1837023ce5f.png)
从上图可以发现POST表单中除了
api_key,call_id和第二个sig字段没有,基本都有了。
![ead8d8a0b497b47932f317b9b18e4545.png](https://img-blog.csdnimg.cn/img_convert/ead8d8a0b497b47932f317b9b18e4545.png)
在此处可以发现api_key,call_id。