Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong diff for obfuscated artifacts #96

Closed
mateuszkwiecinski opened this issue Sep 13, 2020 · 0 comments · Fixed by #215
Closed

Wrong diff for obfuscated artifacts #96

mateuszkwiecinski opened this issue Sep 13, 2020 · 0 comments · Fixed by #215

Comments

@mateuszkwiecinski
Copy link
Contributor

When running:

diffuse diff old_obfuscated.apk new_obfuscated.apk

the diff shows output with invalid +- stats

 DEX     │ old   │ new   │ diff               
─────────┼───────┼───────┼────────────────────
   files │     1 │     1 │  0                 
 strings │ 15365 │ 15368 │ +3 (+2449 -2446)   
   types │  3315 │  3317 │ +2 (+2250 -2248)   
 classes │  2564 │  2566 │ +2 (+2182 -2180)   
 methods │ 16360 │ 16364 │ +4 (+9971 -9967)   
  fields │ 15108 │ 15108 │  0 (+13635 -13635) 

and prints all strings, types, classes, methods and fields within the app twice (once visible as added and once as removed), resulting in large, unreadable text outputs.

collapsed expanded
image image

running diffuse diff --help reveals additonal parameters --old-mapping and --new-mapping, but they don't change the output.
Looking at the source code, the DexDiff doesn't take mapping parameters into account. And actually none of existing Diff types leverage the ApiMapping class.

Expected behavior:
diffuse diff old_obfuscated.apk new_obfuscated.apk --old-mapping old_mapping.txt --new-mapping new_mapping.txt shows actuall diff

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant