首页
社区
课程
招聘
[原创] 分享一个Jeb3的脚本——人脸识别SDK厂商快速识别
发表于: 2021-6-23 22:27 6192

[原创] 分享一个Jeb3的脚本——人脸识别SDK厂商快速识别

2021-6-23 22:27
6192

好久没冒泡了,丢个脚本刷的存在感^_^

背景

前一段时间帮甲方爸爸搬砖:需要对几十款应用所使用的人脸识别SDK进行快速的识别然后干一些羞羞的事情。

实现

通过搜索引擎找到国内主流的人脸识别SDK厂商,提取特征(纯苦力),在扔进Jeb分析前请先脱壳。不说废话,直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# -*- coding: utf-8 -*-
# FaceSdkDectect
# Code by:我是土匪
 
 
import re
from com.pnfsoftware.jeb.client.api import IScript, IGraphicalClientContext
from com.pnfsoftware.jeb.core import RuntimeProjectUtil
from com.pnfsoftware.jeb.core.actions import Actions, ActionContext, ActionCommentData, ActionXrefsData
from com.pnfsoftware.jeb.core.events import JebEvent, J
from com.pnfsoftware.jeb.core.output import AbstractUnitRepresentation, UnitRepresentationAdapter
from com.pnfsoftware.jeb.core.units.code import ICodeUnit, ICodeItem
from com.pnfsoftware.jeb.core.units.code.java import IJavaSourceUnit, IJavaStaticField, IJavaNewArray, IJavaConstant, IJavaCall, IJavaField, IJavaMethod, IJavaClass
 
face_sdk_classes={
    # 旷视科技
    u'旷视科技-www.megvii.com': r'com.megvii.facepp\S*',
    u'旷视科技-www.megvii.com': r'com.megvii.idcardquality\S*',
    u'旷视科技-www.megvii.com': r'com.megvii.kas\S*',
    u'旷视科技-www.megvii.com': r'com.megvii.kassilentlive.sdk\S*',
    u'旷视科技-www.megvii.com': r'megvii.openapi.access\S*',
 
    # 商汤科技
    u'商汤科技-www.sensetime.com': r'com.sensetime.senseid.sdk\S*',
 
    # 平安科技
    u'平安科技-tech.pingan.com': r'com.pingan.ai.face.entity\S*',
    u'平安科技-tech.pingan.com': r'com.pingan.ai.face.manager\S*',
 
    # 科大讯飞
    u'科大讯飞-www.iflytek.com': r'com.iflytek.cloud.FaceRequest\S*',
    u'科大讯飞-www.iflytek.com': r'com.iflytek.cloud.FaceDetector\S*',
 
    # 海鑫科金
    u'海鑫科金-www.hisign.com.cn': r'com.hisign.FaceSDK\S*',
    u'海鑫科金-www.hisign.com.cn': r'com.hisign.facedetectv1small\S*',
    u'海鑫科金-www.hisign.com.cn': r'com.hisign.matching.UvcInputAPI\S*',
 
    # 爱莫科技   
    u'爱莫科技-www.aimall-tech.com': r'com.aimall.sdk.faceactiondetector\S*',
    u'爱莫科技-www.aimall-tech.com': r'com.aimall.sdk.trackerdetector\S*',
    u'爱莫科技-www.aimall-tech.com': r'com.aimall.core\S*',
 
    # 百度
    u'百度AI-www.ai.baidu.com': r'com.baidu.idl.facesdk\S*',
 
    # (杭州小孔成像)
    u'杭州小孔成像-www.dface.tech': r'com.dface.api.FaceDetect\S*',
    u'杭州小孔成像-www.dface.tech': r'com.dface.api.FaceCompare\S*',
    u'杭州小孔成像-www.dface.tech': r'com.dface.api.FaceTrack\S*',
    u'杭州小孔成像-www.dface.tech': r'com.dface.dto.LicenseInfoType\S*',
 
 
    # Seetatech中科视拓
    u'中科视拓-www.seetatech.com': r'com.seeta.sdk\S*',
 
    # 云从科技
    u'广州云从科技-www.cloudwalk.com': r'cn.cloudwalk.FaceInterface\S*',
    u'广州云从科技-www.cloudwalk.com': r'cn.cloudwalk.callback.FaceInfoCallback\S*',
    u'广州云从科技-www.cloudwalk.com': r'cn.cloudwalk.sdk.FaceInfo\S*',
    u'广州云从科技-www.cloudwalk.com': r'cn.cloudwalk.sdk.realtime.FaceInfoCallback\S*',
    u'广州云从科技-www.cloudwalk.com': r'cn.cloudwalk.libproject\S*',
 
 
    # 杭州虹软
    u'杭州虹软科技-www.ai.arcsoft.com.cn': r'com.arcsoft.facetracking\S*',
    u'杭州虹软科技-www.ai.arcsoft.com.cn': r'com.arcsoft.facerecognition\S*',
 
    # FaceTec
    u'FaceTec-dev.facetec.com/': r'com.facetec.sdk.FaceTecSDK\S*',
    u'FaceTec-dev.facetec.com/': r'com.facetec.sdk.FaceTecSessionStatus\S*',
    u'FaceTec-dev.facetec.com/': r'com.facetec.sdk.FaceTecSDKStatus\S*',
 
 
    # 依图科技
    u'上海依图科技-https://www.yitutech.com/': r'com.yitutech.face\S*',
 
 
 
}
found_sdk=[]
class FaceSdkDectect(IScript):
 
    def run(self, ctx):
        global face_sdk_classes
        global found_sdk
        engctx = ctx.getEnginesContext()
        if not engctx:
            print('Back-end engines not initialized')
            return
 
        projects = engctx.getProjects()
        if not projects:
            print('There is no opened project')
            return
 
        project = projects[0] # Get current project(IRuntimeProject)
        print('Decompiling code units of %s...' % project)
 
        codeUnit = RuntimeProjectUtil.findUnitsByType(project, ICodeUnit, False) # Get the current codeUnit(ICodeUnit)
 
        for unit in codeUnit:
            classes = unit.getClasses() # Get a reference to the Java class defined in this unit
 
            for cls in classes:
                # print(cls)
                for (key, value) in face_sdk_classes.items():
                    pattern =  re.compile(value, re.I)
                    x = pattern.search(str(cls))
                    if(x):
                        found_sdk.append(key)
        found_sdk = list(set(found_sdk))
        print("FaceSdkDectect ------------------------------------------------")
        for sdk in found_sdk:
            print(sdk.encode('utf-8', errors='ignore').decode('utf-8'))
        print("FaceSdkDectect ------------------------------------------------")

Github地址:欢迎提交PR


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2021-6-23 22:33 被我是土匪编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 4752
活跃值: (2923)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
额,有两句想说的,无恶意;

一是1202 年了咱用 jeb3 吧;
二是简单的功能还是别用 jeb 了,grep 一下可能效果更好;
2021-6-23 22:31
1
雪    币: 546
活跃值: (1707)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
3
LeadroyaL 额,有两句想说的,无恶意; 一是1202 年了咱用 jeb3 吧; 二是简单的功能还是别用 jeb 了,grep 一下可能效果更好;
哈哈,手残了,是jeb3的,jeb用习惯了
2021-6-23 22:33
1
雪    币: 1988
活跃值: (1921)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享。
2021-6-24 11:04
1
游客
登录 | 注册 方可回帖
返回
//