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

Found part of u-boot within DJI FW code #6

Open
mefistotelis opened this issue Aug 20, 2019 · 5 comments
Open

Found part of u-boot within DJI FW code #6

mefistotelis opened this issue Aug 20, 2019 · 5 comments

Comments

@mefistotelis
Copy link

So - I found the GPL code in monolithic firmware module. I assume this means we have right for the whole module?

What next?
Should all findings be public, or better to keep details private?

@MrBurnsAT
Copy link

For now I would keep it private ;-)

@mefistotelis
Copy link
Author

Since DJI did not responded to my e-mail, time to share the report:
https://gist.github.com/mefistotelis/ee88b8c5a213e78f6f0467573d28b970

@probonopd
Copy link
Owner

I wonder if one could somehow automate this type of analysis based on statistical methods...

@mefistotelis
Copy link
Author

What I did in first step is just copy strings to Google. That can be automated. Then matching specific functions is harder..

When I started, I assumed DJI used SDK code from Atmel. So I first found Atmel SAM sources they freely (not under GPL) distribute. I expected everything to match Atmel libs. But around SD and MMC functions, there were substantial differences - code didn't matched. So I started googling various strings I found in the code; I was usually getting a few results, but one which was there for every string was u-boot. I downloaded it, reverted GIT repo to around the time when the firmware was published - and then noticed some functions are just identical.

So automated system would need to have at least strings from many GPL projects, best with dates when each line was added to the project. Then it would have to do strings of FW binary, and start matching.

The fact that firmwares are encrypted would have to be handled manually though. I mean, it's not hard to automate if you have a decryptor, like we do with drones up to Mavic. But then you only support the firmwares for which you made automatic decryption procedure.

@probonopd
Copy link
Owner

turnitin.com for source code ;-)

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

No branches or pull requests

3 participants