reproto 0.0.5__py3-none-any.whl → 0.0.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- .git/COMMIT_EDITMSG +1 -24
- .git/index +0 -0
- .git/logs/HEAD +1 -0
- .git/logs/refs/heads/iyue +1 -0
- .git/logs/refs/remotes/gitlab/iyue +1 -0
- .git/logs/refs/remotes/origin/iyue +1 -0
- .git/objects/18/89a4fb55eb3abdc528ce87f0cea039278c06fd +0 -0
- .git/objects/33/181441ab38eded005db356da89b54c7d29f452 +0 -0
- .git/objects/40/84f4567d983a977c49598b7d886e46b13ff50b +0 -0
- .git/objects/a5/b7e4e1b63bfb65288f6553687aaabcfb4d51b1 +0 -0
- .git/objects/e8/2f42ea26b8bf4f0bc92c0648ac8f190f14226d +0 -0
- .git/objects/f5/18c69a6e1bf3052b79da01502b2837ea58f0f4 +0 -0
- .git/refs/heads/iyue +1 -1
- .git/refs/remotes/gitlab/iyue +1 -1
- .git/refs/remotes/origin/iyue +1 -1
- README.md +4 -4
- main.py +2 -2
- pyproject.toml +1 -1
- {reproto-0.0.5.dist-info → reproto-0.0.6.dist-info}/METADATA +5 -5
- {reproto-0.0.5.dist-info → reproto-0.0.6.dist-info}/RECORD +23 -17
- utils/logger.py +2 -2
- {reproto-0.0.5.dist-info → reproto-0.0.6.dist-info}/WHEEL +0 -0
- {reproto-0.0.5.dist-info → reproto-0.0.6.dist-info}/entry_points.txt +0 -0
.git/COMMIT_EDITMSG
CHANGED
@@ -1,24 +1 @@
|
|
1
|
-
feat:
|
2
|
-
|
3
|
-
🎯 核心改进:
|
4
|
-
- 新增类型0(double)和类型50(map)的支持
|
5
|
-
- 实现智能未知类型分析和Java源码优先策略
|
6
|
-
- 完善map类型的自动识别和生成
|
7
|
-
|
8
|
-
🔧 技术改进:
|
9
|
-
- InfoDecoder: 增强类型映射表,新增map类型和double类型支持
|
10
|
-
- JavaParser: 新增原始字段类型解析功能
|
11
|
-
- ProtoGenerator: 修复map类型的import路径处理
|
12
|
-
- EnumParser: 优化UNRECOGNIZED(-1)值的跳过逻辑
|
13
|
-
|
14
|
-
✅ 解决问题:
|
15
|
-
- 修复BulkSearchResult的map字段从空消息到正确类型
|
16
|
-
- 修复ContactAddress的latitude/longitude从未知类型0到double
|
17
|
-
- 实现与AI生成proto文件99%的一致性
|
18
|
-
|
19
|
-
📊 测试结果:
|
20
|
-
- 成功处理33个类型(26消息+7枚举)
|
21
|
-
- 无未知字节码类型警告
|
22
|
-
- 所有proto文件通过protoc验证
|
23
|
-
|
24
|
-
版本: v0.2.0
|
1
|
+
feat: rename reproto
|
.git/index
CHANGED
Binary file
|
.git/logs/HEAD
CHANGED
@@ -1,2 +1,3 @@
|
|
1
1
|
0000000000000000000000000000000000000000 2e11d561668286f3d6d48f399ffab1943a5cdcb2 iyue <ys1231@126.com> 1750922365 +0800 clone: from github.com:ys1231/reproto.git
|
2
2
|
2e11d561668286f3d6d48f399ffab1943a5cdcb2 f22bfffda9fb6a7f37bed04b7c40c9466ef09454 iyue <ys1231@126.com> 1750925875 +0800 commit: feat: 完善Protobuf类型推断系统,支持map和未知类型处理
|
3
|
+
f22bfffda9fb6a7f37bed04b7c40c9466ef09454 e82f42ea26b8bf4f0bc92c0648ac8f190f14226d iyue <ys1231@126.com> 1750927650 +0800 commit: feat: rename reproto
|
.git/logs/refs/heads/iyue
CHANGED
@@ -1,2 +1,3 @@
|
|
1
1
|
0000000000000000000000000000000000000000 2e11d561668286f3d6d48f399ffab1943a5cdcb2 iyue <ys1231@126.com> 1750922365 +0800 clone: from github.com:ys1231/reproto.git
|
2
2
|
2e11d561668286f3d6d48f399ffab1943a5cdcb2 f22bfffda9fb6a7f37bed04b7c40c9466ef09454 iyue <ys1231@126.com> 1750925875 +0800 commit: feat: 完善Protobuf类型推断系统,支持map和未知类型处理
|
3
|
+
f22bfffda9fb6a7f37bed04b7c40c9466ef09454 e82f42ea26b8bf4f0bc92c0648ac8f190f14226d iyue <ys1231@126.com> 1750927650 +0800 commit: feat: rename reproto
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
.git/refs/heads/iyue
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
e82f42ea26b8bf4f0bc92c0648ac8f190f14226d
|
.git/refs/remotes/gitlab/iyue
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
e82f42ea26b8bf4f0bc92c0648ac8f190f14226d
|
.git/refs/remotes/origin/iyue
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
e82f42ea26b8bf4f0bc92c0648ac8f190f14226d
|
README.md
CHANGED
@@ -36,7 +36,7 @@ python main.py <java_sources_dir> <root_class> <output_dir>
|
|
36
36
|
pip install -e .
|
37
37
|
|
38
38
|
# 使用命令行工具
|
39
|
-
|
39
|
+
reproto <java_sources_dir> <root_class> <output_dir>
|
40
40
|
```
|
41
41
|
|
42
42
|
## 📖 使用方法
|
@@ -87,7 +87,7 @@ Java源码 → 字节码提取 → 类型解码 → 依赖发现 → 源码验
|
|
87
87
|
## 📁 项目结构
|
88
88
|
|
89
89
|
```
|
90
|
-
|
90
|
+
reproto/
|
91
91
|
├── main.py # 主程序入口
|
92
92
|
├── core/ # 核心组件
|
93
93
|
│ ├── reconstructor.py # 主协调器
|
@@ -188,8 +188,8 @@ reproto/
|
|
188
188
|
# 指定日志目录
|
189
189
|
python main.py sources/ com.example.Model output/ --log-dir ./my_logs
|
190
190
|
|
191
|
-
# 日志文件格式:
|
192
|
-
# 例如:
|
191
|
+
# 日志文件格式: reproto-YYYY-MM-DD-HH-MM-SS.log
|
192
|
+
# 例如: reproto-2024-01-15-14-30-25.log
|
193
193
|
```
|
194
194
|
|
195
195
|
### 输出格式
|
main.py
CHANGED
@@ -6,10 +6,10 @@ Protobuf重构器 - 命令行入口
|
|
6
6
|
支持任意Android应用,完全基于Java字节码推断
|
7
7
|
|
8
8
|
Usage:
|
9
|
-
python -m
|
9
|
+
python -m reproto.main <java_sources_dir> <root_class> <output_dir> [--log-dir LOG_DIR]
|
10
10
|
|
11
11
|
Example:
|
12
|
-
python -m
|
12
|
+
python -m reproto.main ./out_jadx/sources com.example.Model ./protos_generated --log-dir ./logs
|
13
13
|
|
14
14
|
Author: AI Assistant
|
15
15
|
"""
|
pyproject.toml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: reproto
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.6
|
4
4
|
Summary: 一个强大的逆向工程工具, 能够从任何使用Google Protobuf Lite的Android应用中自动重构出完整的.proto文件结构.
|
5
5
|
License: MIT
|
6
6
|
Author: iyue
|
@@ -51,7 +51,7 @@ python main.py <java_sources_dir> <root_class> <output_dir>
|
|
51
51
|
pip install -e .
|
52
52
|
|
53
53
|
# 使用命令行工具
|
54
|
-
|
54
|
+
reproto <java_sources_dir> <root_class> <output_dir>
|
55
55
|
```
|
56
56
|
|
57
57
|
## 📖 使用方法
|
@@ -102,7 +102,7 @@ Java源码 → 字节码提取 → 类型解码 → 依赖发现 → 源码验
|
|
102
102
|
## 📁 项目结构
|
103
103
|
|
104
104
|
```
|
105
|
-
|
105
|
+
reproto/
|
106
106
|
├── main.py # 主程序入口
|
107
107
|
├── core/ # 核心组件
|
108
108
|
│ ├── reconstructor.py # 主协调器
|
@@ -203,8 +203,8 @@ reproto/
|
|
203
203
|
# 指定日志目录
|
204
204
|
python main.py sources/ com.example.Model output/ --log-dir ./my_logs
|
205
205
|
|
206
|
-
# 日志文件格式:
|
207
|
-
# 例如:
|
206
|
+
# 日志文件格式: reproto-YYYY-MM-DD-HH-MM-SS.log
|
207
|
+
# 例如: reproto-2024-01-15-14-30-25.log
|
208
208
|
```
|
209
209
|
|
210
210
|
### 输出格式
|
@@ -1,4 +1,4 @@
|
|
1
|
-
.git/COMMIT_EDITMSG,sha256=
|
1
|
+
.git/COMMIT_EDITMSG,sha256=Hea4DGHC9RyGOOEnEt-_pfDdB3L7RtWaxnPnBx2rnlk,21
|
2
2
|
.git/HEAD,sha256=ly8yuQLWQE8njkYAapHLPJ1xVg6_fMgQjCoHqKvFIdw,21
|
3
3
|
.git/config,sha256=9ZAySfDWBdI-K9eOXyrEQOhiX68AiaP0Z4CLzH07H10,399
|
4
4
|
.git/description,sha256=hatsFj1DoX6pz3eIMIvKFGbxsKjRzJLibpv2PaQGKu4,73
|
@@ -16,54 +16,60 @@
|
|
16
16
|
.git/hooks/push-to-checkout.sample,sha256=pT0HQXmLKHxt16-mSu5HPzBeZdP0lGO7nXQI7DsSv18,2783
|
17
17
|
.git/hooks/sendemail-validate.sample,sha256=ROv8kj3FRmvACWAvDs8Ge5xlRZq_6IaN3Em3jmztepI,2308
|
18
18
|
.git/hooks/update.sample,sha256=jV8vqD4QPPCLV-qmdSHfkZT0XL28s32lKtWGCXoU0QY,3650
|
19
|
-
.git/index,sha256=
|
19
|
+
.git/index,sha256=YTfUxO97azpqKz93n54JOz0EQrxW2d7pC4DiyZIneSA,1991
|
20
20
|
.git/info/exclude,sha256=ZnH-g7egfIky7okWTR8nk7IxgFjri5jcXAbuClo7DsE,240
|
21
|
-
.git/logs/HEAD,sha256=
|
22
|
-
.git/logs/refs/heads/iyue,sha256=
|
23
|
-
.git/logs/refs/remotes/gitlab/iyue,sha256=
|
21
|
+
.git/logs/HEAD,sha256=DPBwJI-_VLEGt3MjtwCVyFMm-ib4-HXdOfihB3ghdKQ,514
|
22
|
+
.git/logs/refs/heads/iyue,sha256=DPBwJI-_VLEGt3MjtwCVyFMm-ib4-HXdOfihB3ghdKQ,514
|
23
|
+
.git/logs/refs/remotes/gitlab/iyue,sha256=QBjy4D_3oChB5vr-wT4YakTTJnYxfU2yqdXbi2IPJBM,272
|
24
24
|
.git/logs/refs/remotes/origin/HEAD,sha256=4vCPTgC0N80jhmkFXNUlYvHtGllYJkQTGZEn6LlqZgs,163
|
25
|
-
.git/logs/refs/remotes/origin/iyue,sha256=
|
25
|
+
.git/logs/refs/remotes/origin/iyue,sha256=p8CXhH9pCCyFVXjXK6XHxgAPZmVmm6KmcdrZ5aFAxgA,272
|
26
26
|
.git/objects/09/a92517fe9eeb33d2fd7c979e01d163665f7abc,sha256=wyFL5jJ16f0xCpL1MB5EiJvs2opieE0hMEmyDpUV3ps,9356
|
27
27
|
.git/objects/14/d323d58fb90c209a730c17e23fd82a6c735fc1,sha256=rTCuhPM5LYusLIMDv7CLC557SlRFvvbBzgr4jwrjMVg,426
|
28
|
+
.git/objects/18/89a4fb55eb3abdc528ce87f0cea039278c06fd,sha256=Uz8TPtDNnPWR5pfsIx7tMDCDFBdWLIkaPcnYPIJ12oM,2880
|
28
29
|
.git/objects/23/bfbca38e177bcbb423dd782c35b19d127a5ab0,sha256=hYW2b3t3bVGNh4pqyyA7DMlyF4LfNZco5NwedWMwwuI,3700
|
30
|
+
.git/objects/33/181441ab38eded005db356da89b54c7d29f452,sha256=iIM6a2aGs_TGZjxHKnkYYyZj_hA77nAF7r2lMOtN1VA,2021
|
31
|
+
.git/objects/40/84f4567d983a977c49598b7d886e46b13ff50b,sha256=R3w6EvxpJRcVuJvbCslrGDK07kcOjECGGosj5tO-JBo,426
|
29
32
|
.git/objects/48/369b05749e384be9be58e5f943f3a0040d0f37,sha256=KP9dXx-XniZuIEXESlrL_MWWi55zGiFr7xtmp3oD67o,8551
|
30
33
|
.git/objects/7c/00eec7ae9ef5f94fc337e5c8f9793a2a48810d,sha256=Ju-Yuy5EARcIThU4vkHrZuHQWu3MjXSZYGtBDTWR18c,96
|
31
34
|
.git/objects/a3/cedc28e563a1845a7860161b39b0fe58d5f0d3,sha256=Vee0H8dhSj4ERNDSAnRU6vebs0tbY1-lgYr1Nz5X7bc,122
|
35
|
+
.git/objects/a5/b7e4e1b63bfb65288f6553687aaabcfb4d51b1,sha256=9tl9xb48EdvQk9GIg6mEzXSwqUgD6yEVZx-sVxaQVKw,1064
|
32
36
|
.git/objects/d0/9c84ad2142a187bf26a1714b7041b62e404c8f,sha256=twhhaZbfU_mgu5LIlt9ZeGjp_PT_gri_9H231H5nrNc,2172
|
33
37
|
.git/objects/d9/6d7456245232b3e159dcf691f11e51224c557a,sha256=3w45hxiT2rn6ljSdgo36fHMMWZt30r5C1FPvbnjq9tc,597
|
38
|
+
.git/objects/e8/2f42ea26b8bf4f0bc92c0648ac8f190f14226d,sha256=xtbEwloZnqXdNdViAevzyprosfPQ1P--xAu6URGlaYI,155
|
34
39
|
.git/objects/ed/fb5bbf938de738d1f658f80e23c675bb8b3fae,sha256=MOYiuXKTxnd9YcqU3-HUVUq2g9fPU1-AKZOQ-3xsWCk,4237
|
35
40
|
.git/objects/ef/4844af55f7f64b8dd24b81b5a8322a8c80208e,sha256=hO8yllVMOtIE4HeOvwKSqQUByH6lvaA4L-RYrSU4vlg,167
|
36
41
|
.git/objects/f2/2bfffda9fb6a7f37bed04b7c40c9466ef09454,sha256=goQNyEV3NqzS28mMXuus1SWzwb8yXnvEPef14Ugzh5Q,750
|
42
|
+
.git/objects/f5/18c69a6e1bf3052b79da01502b2837ea58f0f4,sha256=r98SFbCvw7yeAYTjzkw-2VMhOVbpm79FLZQiC5A1-pw,123
|
37
43
|
.git/objects/pack/pack-289f7bb06603881c49190e6036de6390223baf77.idx,sha256=KRv1SBEe9bYL9d5V301LwPOBqFs3tMnB0dl4PriMMIw,2416
|
38
44
|
.git/objects/pack/pack-289f7bb06603881c49190e6036de6390223baf77.pack,sha256=R4oMXhr-NcPAUBXStCbAaUvGUDW_SBECmPIbiB9Gy48,42003
|
39
45
|
.git/objects/pack/pack-289f7bb06603881c49190e6036de6390223baf77.rev,sha256=22_3sqyTNB5IbwAK5oCqNz0UxDDqoZ5jcF7p_44Lalo,244
|
40
46
|
.git/packed-refs,sha256=4H0m4wd6q98wZkBk7WfvVeTBuuxQdTE65XxsswYP-oQ,112
|
41
|
-
.git/refs/heads/iyue,sha256=
|
42
|
-
.git/refs/remotes/gitlab/iyue,sha256=
|
47
|
+
.git/refs/heads/iyue,sha256=fqogai84mA-74wSv8UR7XVOxAU72CKbFfMD-1g_-tW0,41
|
48
|
+
.git/refs/remotes/gitlab/iyue,sha256=fqogai84mA-74wSv8UR7XVOxAU72CKbFfMD-1g_-tW0,41
|
43
49
|
.git/refs/remotes/origin/HEAD,sha256=G8pFPTbCqnJ2IkCzz9J-STqOXWU6TrlXfpt1wx5bUWE,30
|
44
|
-
.git/refs/remotes/origin/iyue,sha256=
|
50
|
+
.git/refs/remotes/origin/iyue,sha256=fqogai84mA-74wSv8UR7XVOxAU72CKbFfMD-1g_-tW0,41
|
45
51
|
.gitignore,sha256=ThRUL1E38Z_Q4Lww0xYYl9ziFaPUvvwwqxbmp2cuwco,2068
|
46
52
|
.python-version,sha256=NxOs_9lT1XG8y-FjlRru-YinX5RcBJt_ulPwgDESZ_o,7
|
47
53
|
ARCHITECTURE.md,sha256=JALnUdREwdLRAmcUit5CGAPLpeZ6UfoYpAQkxil3NJc,8322
|
48
|
-
README.md,sha256=
|
54
|
+
README.md,sha256=t7zYDpLSOC7VDFPlQKOOoqe09GN38wLl0fbbJUT5sNg,6019
|
49
55
|
core/__init__.py,sha256=ajz1GSNU9xYVrFEDSz6Xwg7amWQ_yvW75tQa1ZvRIWc,3
|
50
56
|
core/bytecode_parser.py,sha256=87ZGhnyBNGP-gRjIyRUcGfWS2HR1YA_e1OBKafLEEDc,11532
|
51
57
|
core/info_decoder.py,sha256=DgXDlMaNudOYXKJiPKfE3PeIrzN3Da-PlsQkkrnV2Hs,33959
|
52
58
|
core/reconstructor.py,sha256=eOJg6rx0Gkb3bzeuIKB_myt3mC61dsn7AP30EAJyqfg,29377
|
53
59
|
generation/__init__.py,sha256=ajz1GSNU9xYVrFEDSz6Xwg7amWQ_yvW75tQa1ZvRIWc,3
|
54
60
|
generation/proto_generator.py,sha256=nd9rkjoOAJiY-aOSJz8RQd0z5WLN28zOi_vavwvpjes,16131
|
55
|
-
main.py,sha256=
|
61
|
+
main.py,sha256=1qRMdQjetlqowe8HsEh46MCbat3NMx1ym0Nb9MOEFuE,5272
|
56
62
|
models/__init__.py,sha256=WScv63rvEl65y5CWjpb6__hvjNvjpCkl6lz1Z2u0IYc,811
|
57
63
|
models/message_definition.py,sha256=AszUZnNPSBn9SMXne5ORDBiGZz1W2pcYmU8ftGC3Mks,4873
|
58
64
|
parsing/__init__.py,sha256=ajz1GSNU9xYVrFEDSz6Xwg7amWQ_yvW75tQa1ZvRIWc,3
|
59
65
|
parsing/enum_parser.py,sha256=4BjMk1NIYgt2FDZUjTZyOvFfC1uJp_MBZipVdk1tqes,6175
|
60
66
|
parsing/java_parser.py,sha256=6J16XlLIV-qktPDT1ccY70BngpP9VhwlXH0Z76TWHqM,11714
|
61
|
-
pyproject.toml,sha256=
|
67
|
+
pyproject.toml,sha256=ZBqGZxCm8ldtItBhMb5pxKEvnP1IHrvhPWhHKpRkzR0,901
|
62
68
|
requirements.txt,sha256=cQGj3IS6Kj88jbwj_jeKkokMnG-fEezWve91mfW4CJs,96
|
63
69
|
utils/__init__.py,sha256=ajz1GSNU9xYVrFEDSz6Xwg7amWQ_yvW75tQa1ZvRIWc,3
|
64
70
|
utils/file_utils.py,sha256=N1Ei7hmyeOkIyZJFEXyNbtTrfeVF2hP-U8evXAVW2MA,4085
|
65
|
-
utils/logger.py,sha256=
|
66
|
-
reproto-0.0.
|
67
|
-
reproto-0.0.
|
68
|
-
reproto-0.0.
|
69
|
-
reproto-0.0.
|
71
|
+
utils/logger.py,sha256=473DfzFVXzdGpiRTJGY6bBd-V5G80_P07gQqcvDChpQ,2447
|
72
|
+
reproto-0.0.6.dist-info/METADATA,sha256=_RJz-0nYSnt5nxAkqCQoZPf8t-ybLJYOGzqQsYTT3r0,6577
|
73
|
+
reproto-0.0.6.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
74
|
+
reproto-0.0.6.dist-info/entry_points.txt,sha256=6Oro9lK_2DXDgHiB3andNuIE78wxfooqacqp8yY1C-g,37
|
75
|
+
reproto-0.0.6.dist-info/RECORD,,
|
utils/logger.py
CHANGED
@@ -35,9 +35,9 @@ class LoggerManager:
|
|
35
35
|
log_path = Path(log_dir)
|
36
36
|
log_path.mkdir(exist_ok=True)
|
37
37
|
|
38
|
-
# 生成日志文件名:
|
38
|
+
# 生成日志文件名:reproto-YYYY-MM-DD-HH-MM-SS.log
|
39
39
|
timestamp = datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
|
40
|
-
log_file = log_path / f"
|
40
|
+
log_file = log_path / f"reproto-{timestamp}.log"
|
41
41
|
|
42
42
|
# 控制台输出 - 彩色格式
|
43
43
|
logger.add(
|
File without changes
|
File without changes
|