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

Increase password padding #23

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

Increase password padding #23

wants to merge 1 commit into from

Conversation

kw217
Copy link

@kw217 kw217 commented Apr 13, 2024

Use 64 bytes for encrypted passsword rather than 32, as required for my firmware Hw_AWT3610E_XHR_E_V1.0_WF_20231114.

Not ready for merge - it should probably be an option whether to use the old or new mechanism, and also I haven't yet proven that the stream data that comes out is usable.

Fixes #22 .

@kw217 kw217 marked this pull request as draft April 13, 2024 21:46
@waheedullahkhan001
Copy link

I tried it and it doesn't fix the problem.
image

@waheedullahkhan001
Copy link

waheedullahkhan001 commented Jun 18, 2024

We could also see the desktop app for testing.
Here is how it does the login:
image

Extra info:
I also copied the data and resent it using python and apparently it gives success? but when I continued to copy paste other packets, camera didn't send anything when the it was supposed to send (I guess) the video data. I took a look at the desktop app and it has some interesting dll files tho I couldn't find something good but I am not good at reverse engineering. I also noticed that login app is separate from the main app and it runs the main app by passing some command line args. If we choose to run it manually by passing the same args we are able to see some interesting logs. I thought the info might help or give new ideas :D

@waheedullahkhan001
Copy link

waheedullahkhan001 commented Jun 18, 2024

Changing the password size to 48 instead of 64 worked for me.

image

image

image

I also did not change the size as done here:
image

Although I am still unable to preview the video the way written in original README.md. The stream keeps restarting after random intervals. I can see some gibberish without piping the output but when I do feed to output to, let's say ffplay, It doesn't show preview.

@kw217
Copy link
Author

kw217 commented Jun 21, 2024

@waheedullahkhan001 I can't tell from your description - are you seeing some valid video but it keeps being interrupted, or are you just seeing noise?

@waheedullahkhan001
Copy link

I am not able to preview it at all. I can only see the (I assume) video data being printed in console which I referred to as gibberish.

@kw217
Copy link
Author

kw217 commented Jul 11, 2024

Yes, that's as far as I got. I've looked at the stream contents and looked at the MP4 specs and cannot figure out what has been done to the video. It has obvious patterns, but nothing that looks like the expected video framing. My best guess is that it's been XORed with some key. I tried reversing the Android app but it has been obfuscated in some way that I haven't yet figured out.

@prsyahmi
Copy link
Owner

@kw217 Can you try changing the key to macro$%video@#*-+^2020

@cuenta1
Copy link

cuenta1 commented Jul 14, 2024

Hi Keith
This version of the android app has the same mechanism as the most recent one and seems to have no obfuscation ;)
https://apkpure.com/es/v380/com.macrovideo.v380/download/6.1.42

@kw217
Copy link
Author

kw217 commented Jul 16, 2024

Thanks both! I'll give this a whirl in the next few days!

@waheedullahkhan001
Copy link

The android app 💀
image

@cuenta1
Copy link

cuenta1 commented Aug 8, 2024

Use 64 bytes for encrypted passsword rather than 32, as required for my firmware Hw_AWT3610E_XHR_E_V1.0_WF_20231114.

Not ready for merge - it should probably be an option whether to use the old or new mechanism, and also I haven't yet proven that the stream data that comes out is usable.

Fixes #22 .

For mine too: Hw_AIC33105_W1_50_WF1_20230519

@cuenta1
Copy link

cuenta1 commented Aug 8, 2024

@kw217 Can you try changing the key to macro$%video@#*-+^2020

Tested with 64-bytes mechanism: "invalid password" :(

@waheedullahkhan001
Copy link

Any luck in decoding the stream?

@Bluscream
Copy link

Same question here, can no one help get this v380 tool actually support v380?

@kw217
Copy link
Author

kw217 commented Sep 27, 2024

I'm hoping to get time to work on this again in the next few weeks. If anyone else is keen, please go ahead!

@cuenta1
Copy link

cuenta1 commented Sep 27, 2024

Hi, I'm interested. How can I help?

@waheedullahkhan001
Copy link

Try setting up the project and getting to the point where you get the stream data using comments here for starters.
Then maybe look into the pc app. I have a feeling anyone with some knowledge of reverse engineering in windows might be able to help a lot. I tried and it makes sense of it overall but I can't really understand what exactly is going on at a particular part. I feel like the answer is just there but I don't know how to read it.

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 this pull request may close these issues.

Login response: unsupported -11, continuing
5 participants