远程调试android Webview JS逆向

一、工具

TBS Studio是面向基于TBS的Web开发者和移动应用开发商(包括微信、手Q,三方App等)打造的开发服务整体解决方案,以提升广大开发者在真机环境下的开发效率,并帮助开发者分析和优化网页的设计,主要功能有网页Inspector调试,网页性能分析等。

远程调试android Webview JS逆向_第1张图片

二、断点类型

远程调试android Webview JS逆向_第2张图片

1.BreakPoint

下的是普通的代码断点,和平时调代码的断点是一样的,当代码运行到断点处断下

2.DOM BreakPoint

DOM变化级断点

  • Subtree modifications。当当前选中的节点的child被移除或新增时触发,或者是child的内容发生改变时。在child的节点属性发生变化时不会触发,或者当前节点改变时不会触发。(亲测当自己被移除时都不会触发)
  • Attributes modifications。当当前选中的节点新增属性,移除属性,或者属性值发生变化时触发。
  • Node Removal。当当前选中的节点被移除时触发。

在改变或者移除一个DOM节点或者它的DOM子节点时会用到DOM change breakpoint。

3.XHR/Fetch breakpoint

当请求包含指定字符串的时候会暂停。

XHR的请求URL包含指定字符串时,使用XHR中断。当XHR调用send()方法时在对应行暂停。
注意:这个特性同样作用于Fetch请求。

在XHR/Fetch上打断点的场景,非常适用于请求一个不正确的URL,而且你想很快找到AJAX或者Fetch 源代码去发现导致错误请求的原因。

设置一个XHR类型的断点的步骤如下:

  • 1.单击Sources tab
  • 2.展开XHR Breakpoints
  • 3.单击Add breakpoint
  • 4.键入你想断点的string。DevTools会在string出现在任何XHR的请求的URL时进入断点
  • 5.按下Enter进行确认

在XHR Breakpoints中为包含URL中的org的任何请求创建XHR断点

实验:
image

当前页有5个来自crm.test.foo.com的请求,每次都会进入到XHR断点。

  • 可以对协议做断点。例如http,https,ws,wss等等。
  • 可以对域名做断点。例如github.com,segmentfault.com等等。
  • 可以对端口号做断点。例如http://test.foo.com:8080,http://test.bar.com:9090等等。
  • 可以对路径做断点。例如http://test.foo.com/bar,http://test.foo.com/bar/baz
  • 可以对参数做断点。例如http://test.foo.com/bar;type=baz
  • 可以对查询字符串做断点。例如http://test.foo.com/bar?type=...
  • 可以对片段做断点。例如http://test.foo.com/bar/#foo

4.Event Listener breakpoints

如果要暂停事件触发后运行的事件侦听器代码,请使用事件侦听器断点。我们可以选择特定的事件,例如click事件;或者事件类别,例如所有的鼠标事件。

  • 1.点击Sources tab
  • 2.展开Event Listener Breakpoints面板。DevTools展示了一个事件目录的列表,例如Animation
  • 3.选中这些事件类别中的一个做断点,这个断点会在事件触发时进入,或者是选择事件类别下的一个或多个做断点。

详细参考:https://segmentfault.com/a/1190000016671687?utm_source=tag-newest 

三、调试 

调试环境本文用的是TBS Studio,同样谷歌浏览器也带有inspect功能,在浏览器输入 chrome://inspect/#devices ,即可进入调试界面,但是通过实验,当进入的时候调试界面是空白的,需要下载插件,FQ后可以进入界面,但是只显示js文件,点击js文件显示不出js代码,且界面严重变形,MAC、windows上都是如此,所以最好的还是使用TBS,流畅。经过实验TBS只能调试一部分webview界面,有大部分的基于webview调试不了,inspect后一直空白,原因待查找。

1.手机打开USB调试模式和enable view attribute inspection

2.进入调试页面

远程调试android Webview JS逆向_第3张图片

远程调试android Webview JS逆向_第4张图片

 远程调试android Webview JS逆向_第5张图片

 其中涉及js和Android客户端的互调,安卓端可以使用AS+DDMS调试,两者可以同步调试。

如此就实现了远端Android Js的调试需求。

你可能感兴趣的:(Android,教程)