2024年 | 我的开源项目

1,265 阅读1分钟

画饼

2024 年画个大饼,将离线分析项目全部推倒重来,重新设计底层实现,功能以及性能均比内部更强更完善,同时这版本是开源的,因此只能牺牲掉周末愉快的游戏时间以及平时下班时间来完成,当然进度会比较慢,也欢迎感兴趣的同学参与开发。

项目地址用途
OpenCoreSDKgithub.com/Penguin38/O…用于用户态程序捕获自身进程 Core 文件的开发组件
OpenCoreAnalysisKitgithub.com/Penguin38/O…用于分析 OpenCoreSDK 抓取 Core 内存文件的工具箱
OpenLinuxAnalysisKitgithub.com/Penguin38/O…基于 crash-utility 项目解析内核插件集合

进展情况

抓取 Core 可以集成 OpenCoreSDK,具体可参考《Android 应用程序如何抓取 Coredump》即可。

01-26 22:52:52.558 11146 11146 I Opencore-SDK: Init OpenCoreSDK-1.4.3 environment..
01-26 22:53:12.627 11146 11189 I Opencore-arm64: Wait (11414) coredump
01-26 22:53:12.630 11414 11414 I Opencore-arm64: Coredump /storage/emulated/0/Android/data/penguin.opencore.tester/files/core.opencore.tester_11146_Thread-3_11412_1706280792 ...
01-26 22:53:12.649 11414 11414 I Opencore-arm64: WriteCoreLoadSegment Mode(4)
01-26 22:53:18.209 11414 11414 I Opencore-arm64: Coredump Done.

当前仅支持比较基础的功能,对于解析安卓应用程序相关的,仅实现到 p 指令解析对象数据结构。

130|cupid:/ $ ./data/local/tmp/core-parser
Copyright (C) 2024-present, Guanyou.Chen. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file ercept in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either erpress or implied.
See the License for the specific language governing permissions and
limitations under the License.

For bug reporting instructions, please see:
     https://github.com/Penguin38/OpenCoreAnalysisKit
core-parser>
core-parser> core /storage/emulated/0/Android/data/penguin.opencore.tester/files/core.opencore.tester_11146_Thread-3_11412_1706280792
Core load (0xb40000754cc13000) /storage/emulated/0/Android/data/penguin.opencore.tester/files/core.opencore.tester_11146_Thread-3_11412_1706280792
Core env: /storage/emulated/0/Android/data/penguin.opencore.tester/files/core.opencore.tester_11146_Thread-3_11412_1706280792
  * Machine: arm64
  * PointSize: 64
  * PointMask: 0xffffffffffffffff
  * VabitsMask: 0x7fffffffff
Switch android(31) env.
Android env:
  * ID: SKQ1.211006.001
  * Name: cupid
  * Model: 2201123C
  * Manufacturer: Xiaomi
  * Brand: Xiaomi
  * Hardware: qcom
  * ABIS: arm64-v8a,armeabi-v7a,armeabi
  * Incremental: V13.0.41.0.SLCCNXM
  * Release: 12
  * Security: 2022-09-01
  * Type: user
  * Tag: release-keys
  * Fingerprint: Xiaomi/cupid/cupid:12/SKQ1.211006.001/V13.0.41.0.SLCCNXM:user/release-keys
  * Time: 1664466509
  * Debuggable: 0
  * Sdk: 31
core-parser> p 0x12c00000
Size: 0x18
Object Name: java.lang.ref.WeakReference
  extends java.lang.ref.Reference
    [0x08] java.lang.ref.Reference pendingNext = 0x0
    [0x0c] final java.lang.ref.ReferenceQueue queue = 0x0
    [0x10] java.lang.ref.Reference queueNext = 0x0
    [0x14] volatile java.lang.Object referent = 0x12c00018
  extends java.lang.Object
    [0x00] private transient java.lang.Class shadow$_klass_ = 0x7046e260
    [0x04] private transient int shadow$_monitor_ = 0x0
core-parser> p 0x12c00018
Size: 0x8
Object Name: com.android.internal.os.BinderInternal$GcWatcher
  extends java.lang.Object
    [0x0] private transient java.lang.Class shadow$_klass_ = 0x70f36130
    [0x4] private transient int shadow$_monitor_ = 0x0
core-parser>