免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1003 | 回复: 0
打印 上一主题 下一主题

[文本处理] shell就近匹配 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-10-31 17:26 |只看该作者 |倒序浏览
有一个非常大的反编译文件,几百M,格式类似附件 WfdCommon.txt (1.6 MB, 下载次数: 1)
格式都是如下


  1. OatDexFile:
  2. location: /system/framework/WfdCommon.jar 包
  3. checksum: 0xa6a5cfaf
  4. 0: Lcom/qualcomm/wfd/ExtendedRemoteDisplay$1; (offset=0x01a72b7c) (type_idx=27) (StatusInitialized) (OatClassAllCompiled) //类 
  5.   0: void com.qualcomm.wfd.ExtendedRemoteDisplay$1.<init>(com.qualcomm.wfd.ExtendedRemoteDisplay, android.view.Surface, int, int, int) (dex_method_idx=68) //函数
  6.     DEX CODE:
  7.       0x0000: 5b01 0600                 | iput-object v1, v0, Lcom/qualcomm/wfd/ExtendedRemoteDisplay; com.qualcomm.wfd.ExtendedRemoteDisplay$1.this$0 // field@6
  8.     OatMethodOffsets (offset=0x01a72b80)
  9.       code_offset: 0x0414d7ec
  10.       gc_map: (offset=0x01da3c10)
  11.     OatQuickMethodHeader (offset=0x0414d7d0)
  12.       mapping_table: (offset=0x01f5afb0)
  13.       vmap_table: (offset=0x01f5d588)
  14.       v0/r19, v1/r20, v2/r21, v3/r22, v4/r23, v5/r24, v65535/r30
  15.     QuickMethodFrameInfo
  16.       frame_size_in_bytes: 80
  17.       core_spill_mask: 0x41f80000 (r19, r20, r21, r22, r23, r24, r30)
  18.       fp_spill_mask: 0x00000000
  19.       vr_stack_locations:
  20.         ins: v0[sp + #88] v1[sp + #92] v2[sp + #96] v3[sp + #100] v4[sp + #104] v5[sp + #108]
  21.         method*: v6[sp + #0]
  22.         outs: v0[sp + #8]
  23.     CODE: (code_offset=0x0414d7ec size_offset=0x0414d7e8 size=176)...
  24.       0x0414d7ec: d1400be8  sub x8, sp, #0x2000 (8192)
  25.       0x0228a8f4: aa1503e1  mov x1, x21
  26.       0x0228a8f8: f9418834  ldr x20, [x1, #784]
  27.       0x0228a8fc: d63f0280  blr x20
  28.       0x0228a900: b9401fe0  ldr w0, [sp, #28]
  29.       0x0228a904: f94046b4  ldr x20, [x21, #136]
  30.       0x0228a908: b50001d4  cbnz x20, #+0x38 (addr 0x228a940)
  31.       0x0228a90c: aa1503f2  mov tr, x21
  32.       0x0228a910: a94653f3  ldp x19, x20, [sp, #96]
  33.       0x0228a914: a9475bf5  ldp x21, x22, [sp, #112]

  34.   1: void com.qualcomm.wfd.ExtendedRemoteDisplay$1.run() (dex_method_idx=69)函数
  35.     DEX CODE:
  36.       0x0000: 5460 0600                 | iget-object v0, v6, Lcom/qualcomm/wfd/ExtendedRemoteDisplay; com.qualcomm.wfd.ExtendedRemoteDisplay$1.this$0 // field@6
  37.     CODE: (code_offset=0x0414d7ec size_offset=0x0414d7e8 size=176)...
  38.       0x0414d7ec: d1400be8  sub x8, sp, #0x2000 (8192)
  39.       0x0228a8f4: aa1503e1  mov x1, x21
  40.       0x0228a8f8: f9418834  ldr x20, [x1, #784]
  41. 1: Lcom/qualcomm/wfd/ExtendedRemoteDisplay$2; (offset=0x01a72b88) (type_idx=28) (StatusInitialized) (OatClassAllCompiled)//类 
  42.   0: void com.qualcomm.wfd.ExtendedRemoteDisplay$2.<init>(com.qualcomm.wfd.ExtendedRemoteDisplay) (dex_method_idx=70)//函数
  43.     DEX CODE:
  44.       0x0000: 5b01 0b00  
复制代码
想找到某个地址属于哪些包,哪些类,哪些函数
现在我是层层过滤,然后人工拼接起来
先拿到包名列表
      jar.list.txt
再过滤类列表
    class.txt
函数列表
    func.txt
以及包,类,函数列表集合
packages.class.function.txt
最后人工在大概位置查找,然后拼接在一起

遇到被调用次数很多的情况,重复动作会持续搞很多次

有什么更好的方法,实现这种需求


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP