-
Notifications
You must be signed in to change notification settings - Fork 1
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
locating decompression functions #1
Comments
I can't remember anymore how I located the But I see a few possibilities:
I don't know about the scripting capabilities of IDA but I'd like to invite you to take a look at Rizin for this. I wrote the Hexagon disassembler for it and it was not hard to script something like this for Rizin with Python.
Strings are stored in a separated |
Thank you for the advice.
Doing this in Binja (which turned out to identify these automatically) helped me locate a few interesting functions. I'll definitely give Rizin a try, been using IDA and Binja for this project. Also noticed one of the |
Another idea would be to locate and dump the decompression function of the Pixel 2 and search for an algorithm which measures similarity between byte strings. This way you can compare all found functions with the Pixel 2 byte string and hope that you get a match. I don't know much about the function analysis capabilities of Binja and IDA. But I think the plugins don't handle function prologues. And only Binja supports emulation of some instructions. So probably a lot of functions, which are only reached via indirect calls/jumps, get never analyzed. Please correct me if I am wrong here. |
That's an interesting approach. I'm still very inexperienced with reverse engineering so I appreciate the ideas.
Yes, my understanding is the same. |
I stumbled across this repo as I was trying to follow the process of https://research.checkpoint.com/2021/security-probe-of-qualcomm-msm/ to decompress the compressed segments in Pixel 5 modem firmware.
I've managed to identify at least one compressed segment by analyzing in IDA a function which seems to check the integrity of compressed segments. However, I see no other references to this address, so unless I've generated the modem elf incorrectly, i'm not able to find any functions that refer to the address / or any q6zip / dlpager strings so far.
I was wondering if you had any tips to locate the decompression functions?
The text was updated successfully, but these errors were encountered: