Coder Social home page Coder Social logo

smid_project's Introduction

smid_project

该项目是『数盟可信id的获取』的样本。由于商业合作才可以拿到,一般在市面上鲜于见到。该样本出自一家接入过数盟解决方案的第三方公司APP,通过逆向的技术拿到了样本。

由于key是app唯一的,每次初始化请求会记一次,所以请手下留情!

关于数盟

官网传送门:https://www.shuzilm.cn

关于数盟ID

『数盟ID』:可信ID技术由数字联盟自主研发,用于准确描述移动设备,每个编码对象获得一个唯一的、不变的标识ID。可信ID能帮助APP公司在不同场景下确认设备唯一性,识别修改设备及复用、虚拟机刷量等行为,可以反作弊、防刷单,并通过数字联盟生成的设备ID和客户账户体系的关联,实时有效识别小号恶意注册等行为,并精确识别历史版本用户、弱账户APP的换机状态等。

可信ID不随任何非硬件信息变化而更改,是真正唯一、真实、安全、高可用的移动设备指纹。

说明

经调研,发现该id并不依赖于传统的设备ID,如imei、mac地址、android_id等。在xpose劫持的情况修改,imei等参数并不会导致该ID修改。C方法拦截未测试。

在app第一次启动会初始化ID,并上传至数盟服务器(api.shuzilm.cn)。因为考虑到计费统计,所以可信ID的获取至少需要网络访问的权限。

<uses-permission android:name="android.permission.INTERNET" />

可信ID.png

可信ID的获取过程:

  • 程序启动后在主进程中初始化SDK
  • 注册传感器监听
  • 获取网络权限成功后,尝试获取并散列88位可信ID
  • 在sp中缓存以便下次进来使用
  • 推送ID和相关信息至服务端接口api.shuzilm.cn

程序只有在第一次启动才会执行计算ID和计费的操作。

smid_project's People

Contributors

gavinme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smid_project's Issues

大兄弟,请问目前有找到解决方法了吗

我也是想破解此,但想不到可靠的思路,于是尝试搜索下有没有同道中人,就找到这里了…… 文章的思路与我验证的基本大致,提到的方法我都尝试过,得到的答案就是在so文件中,但这个应该做防破解处理,IDA看不到什么有用的东西,最大的原因是自身水平不够……

数盟id相关见解

我这边经过调试分析,发现数盟id 主要获取底层一写信息。/proc/version ,uname -r ,uname -a,
getprop 等等 ,特比执行了ip link。所有java 层 hook mac 一定会失败。 市面上的硬改手机只修改了 mac 、sn 、和 imei 。就可以过风控,说明了数盟id唯一性靠这几个参数主要保证。如果有兴趣的可以一起交流。希望在此能认识几个逆向大牛交流学习。qq:451675788

生成不变id,那肯定需要一个依据,既然不采用设备id,那可能是别的东西,这个东西肯定在手机里面。

生成不变id,那肯定需要一个依据,既然不采用设备id,那可能是别的东西,这个东西肯定在手机里面。
经过测试,不同的模拟器副本smid会改变,所以我测试过,手机双清后smid也不会改变,那肯定还是读取的设备imei之类的硬件参数,只是获取方式不是我们常用的java和native方法,也许是自己实现了硬件驱动层的读取方式,所以我想唯一可靠的破解方法就是自己编译系统和驱动,硬改imei,然后刷入手机

Originally posted by @wjy000 in #1 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.