|
@@ -621,6 +621,7 @@ def _deobfuscate(profile: Profile, project: Project) -> None:
|
|
mapped = mapper.remap_frame(
|
|
mapped = mapper.remap_frame(
|
|
method["class_name"], method["name"], method["source_line"] or 0
|
|
method["class_name"], method["name"], method["source_line"] or 0
|
|
)
|
|
)
|
|
|
|
+ method.setdefault("data", {})
|
|
if len(mapped) == 1:
|
|
if len(mapped) == 1:
|
|
new_frame = mapped[0]
|
|
new_frame = mapped[0]
|
|
method.update(
|
|
method.update(
|
|
@@ -631,6 +632,7 @@ def _deobfuscate(profile: Profile, project: Project) -> None:
|
|
"source_line": new_frame.line,
|
|
"source_line": new_frame.line,
|
|
}
|
|
}
|
|
)
|
|
)
|
|
|
|
+ method["data"]["deobfuscation_status"] = "deobfuscated"
|
|
elif len(mapped) > 1:
|
|
elif len(mapped) > 1:
|
|
bottom_class = mapped[-1].class_name
|
|
bottom_class = mapped[-1].class_name
|
|
method["inline_frames"] = [
|
|
method["inline_frames"] = [
|
|
@@ -641,6 +643,7 @@ def _deobfuscate(profile: Profile, project: Project) -> None:
|
|
if bottom_class == new_frame.class_name
|
|
if bottom_class == new_frame.class_name
|
|
else None,
|
|
else None,
|
|
"source_line": new_frame.line,
|
|
"source_line": new_frame.line,
|
|
|
|
+ "data": {"deobfuscation_status": "deobfuscated"},
|
|
}
|
|
}
|
|
for new_frame in mapped
|
|
for new_frame in mapped
|
|
]
|
|
]
|
|
@@ -648,6 +651,9 @@ def _deobfuscate(profile: Profile, project: Project) -> None:
|
|
mapped_class = mapper.remap_class(method["class_name"])
|
|
mapped_class = mapper.remap_class(method["class_name"])
|
|
if mapped_class:
|
|
if mapped_class:
|
|
method["class_name"] = mapped_class
|
|
method["class_name"] = mapped_class
|
|
|
|
+ method["data"]["deobfuscation_status"] = "partial"
|
|
|
|
+ else:
|
|
|
|
+ method["data"]["deobfuscation_status"] = "missing"
|
|
|
|
|
|
|
|
|
|
@metrics.wraps("process_profile.track_outcome")
|
|
@metrics.wraps("process_profile.track_outcome")
|