首页 > 其他 > 详细

frida的简单实用

时间:2019-08-15 14:35:25      阅读:82      评论:0      收藏:0      [点我收藏+]

一.环境

  1.环境

1.手机运行服务端
2. 电脑端运行客户端
3.进行端口转发
  adb forward tcp:27042 tcp:27042
  adb forward tcp:27043 tcp:27043

  2. 测试

λ frida-ps -R

成功的标志:

PID Name
---- ------------------------
717 android.process.acore
9080 cat
1301 com.android.defcontainer
882 com.android.download
557 com.android.ime
647 com.android.launcher2
941 com.android.market
597 com.android.phone
523 com.android.systemui
823 com.android.tools

二.使用

  得到android手机当前最前端Activity所在的进程

λ python37 C:\Users\1003441\Desktop\get_front_app.py.py
Application(identifier="com.microvirt.launcher2", name="逍遥桌面", pid=647)

  get_front_app.py.py

import frida
rdev = frida.get_remote_device()
front_app = rdev.get_frontmost_application()
print (front_app)

  枚举android手机所有的进程

λ python37 C:\Users\1003441\Desktop\enum_process.py      
Process(pid=1, name="init")                              
Process(pid=62, name="ueventd")                          
Process(pid=72, name="flush-8:2")                        
Process(pid=73, name="flush-8:3")                        
Process(pid=74, name="logd")                             
Process(pid=75, name="healthd")                          
Process(pid=76, name="lmkd")                             
Process(pid=77, name="servicemanager")                   
Process(pid=78, name="vold")                             
Process(pid=79, name="surfaceflinger")                   
Process(pid=80, name="flush-8:0")                        
Process(pid=81, name="flush-8:4")                        
Process(pid=82, name="netd")                             
Process(pid=83, name="debuggerd")                        
Process(pid=84, name="rild")                             
Process(pid=85, name="drmserver")                        
Process(pid=86, name="mediaserver")                      
Process(pid=87, name="installd")                         
Process(pid=88, name="keystore")                         

  enum_process.py内容如下:

import frida
rdev = frida.get_remote_device()
processes = rdev.enumerate_processes()
for process in processes:
    print (process)

  枚举某个进程加载的所有模块以及模块中的导出函数

import frida
rdev = frida.get_remote_device()
session = rdev.attach("com.tencent.mm")  #如果存在两个一样的进程名可以采用rdev.attach(pid)的方式
modules = session.enumerate_modules()
for module in modules:
    print (module)
    export_funcs = module.enumerate_exports()
    print ("\tfunc_name\tRVA")
    for export_func in export_funcs:
        print ("\t%s\t%s"%(export_func.name,hex(export_func.relative_address)))

 

frida的简单实用

原文:https://www.cnblogs.com/tjp40922/p/11357660.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!