Episode: 4686
Title: Debugging Security Cameras: Firmware Updates, Python Scripts and Windows Workarounds
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4686/hpr4686.mp3
Transcribed: 2026-07-31 16:16:46 (official HPR transcript)

---

This is Hacker Public Radio Episode 4686, for 2026-07-20
Today's show is entitled, "Debugging Security Cameras: Firmware Updates, Python Scripts and Windows Workarounds"
The host is operat0r and the duration is 00:41:52
The flag is Explicit, and the license is CC-BY-SA
The summary is "Debug a Uniview camera using Python scripts, firmware updates and Windows hacks."
Hello everyone and welcome to another episode. I have a pre-book video with your host operator
feeling a little under the weather so my voice is kind of we're seeing moody
I mumble so I'm going to try to announce heat especially if I'm 6 so we'll get through this
Anyways, a couple of things
I'm going to talk about fixing my front camera
and um before that I'm telling you how I'm doing my soup
I drop soup the trick to it is get it boiling
and when you um you can make your own broth you can use a beat broth cubes it's
sludge cheaper than buying the whole
stupid chicken broth you can buy the chicken
boolean cubes or whatever chicken boolean cubes do that same thing
can't really help
Anyways, he makes those up however much to want
I got to do one and maybe a couple eggs
the trick is to heat it up to like a rolling boil and then I start
real quickly and I get a little swirl going on
and then I pour the egg down in there from the the egg drop
and I pour it down and let it let's swirl around and that's how you get that rippony
rippony messed up
you'll actually want to have more broth than you really need
um as a ratio so like this is a little junky because
there wasn't quite as much broth but if you want to be perfect you have like tons of
broth and very little egg but I don't want to be wasteful so
uh when I had to move that so what I do is I do usually
once I get that rolling boil I turn off the heat and I spin it around circles
and then I pour the egg in there and I'll let it sit for a second and it's done basically
and then uh since this is actually kind of salty I shouldn't have
put my soy sauce in there usually on but soy sauce but that's kind of where I'm at now
this is my hot soup for my sickness I picked up some kind of something
oh I went camping with my son and uh
went camping and uh for scouts and apparently that's uh I picked up some kind of
crack red so first things first we're going to check the camera itself I have no
browsers um so the camera is a I'll actually tell you
cctvf I did vocal domain names so instead of remembering IP addresses
I put in the UDM device I put um we call that static DHCP basically
so that static IP I think it's like a when they put in like the MAC address and it
results back and that's how you get like a static DHCP I think how it's set up
so anyways um this is some trinysium actually it's not trinysium it's a very good brand
UVN um UVN is there to find the docs on it
UVN UVN you eat and no um UVN no of course not so anyways um this is a
hardware version from where version model number maybe I'll search for the
lot of number it'll come up model yeah look a thing with a good fig
this is a one of those ones is for like a pbpbr a a vansy um DVR or whatever they want you to buy their
stack so as a as a camera by itself it's kind of jeancy it's not kind of doesn't work
so I had to write my own API there's not really an API for it so this is uh the company is
univ you sorry it's an univ you uh why is that ISP warm light deterrent network camera
they're pretty high in cameras the optics are amazing with the past three or four years um you can
get really good optics on these cameras um for relatively low cost um you can find their reseller
for an Arnold like but I don't know how much I paid for this one I think I paid cost for it because
friend does stuff so he I showed him a picture of my horrible black and white mess and he sent me
one of these and and kindly sent me one of these so um now I have a crappy one of the back
and then the fancy one of the front the problem is she's not getting the alerts so
the way I have it set up is this kind of giant fat SD card on it
and that runs uh plugs in power of ether at POE and I think it's a lot of like 30 volts or
some crazy power of ether at some crazy amount of voltage under power of ether that by the way
so I'm going into the server because I think that's where everything lives
unfortunately when you have we are old you'll remember where anything is anymore
and that's why another project I'm working on is my own personal AI so I have a crontab
very crypt that's not it's my SL um CCTV FPY and unbeknownst to me I have a log here so
I can look at this log um it's a Python script that I will put in these
show notes I will do show notes so let me make a new thing here put Python script for API
camp in show notes and a model number I use the clipboard history which is the security
flop because as soon as you copy and paste a password you're screwed so whatever the
all right so we're going to take a look at this Python script first
extra make sure it runs as a current user so we're going to do this whole
it's a crontab entry that says it runs every two minutes well that's aggressive
I also want to put thrallion here so no recordings found in the past 24 hours
which is not great because uh they're definitely been something in the past 24 hours my
while I come home my flat whatever so that's a little weird oh look at the log here so it's a
a Python command followed by the Python script and then the pipe we call it listen or
or greater than greater than greater than in flex and then the errors out to itself
on standard and standard out I never really could understand it so there's no time
it's a time state of sign any of this 11 25 10 20 few is when I first started this script
and it looks like it started it was working this file is massive I use VI and you can press
colon and then a button like a bunch of numbers I'll just mash down the work and I'll take you to
whatever line number so if you do colon one we'll take you to the first line like so like that
so I met the end and it says no recordings in the past 24 hours so one thing this here is
missing is a timestamp me bullet my brains out here
all right so we have some exceptions next retry exceeded with URL
jailtreme streams offset blah blah blah fail a sourcing new connection error whatever
um that's a weird one so I'm going to cut out this file because everybody loves cat
recordings there's a bunch of noise in this file so I think it's called no recordings
and choosing tests recordings found no recording sound in the past 24 hours so we're going to
get rid of that it's going to cat this file so I'm counting the log file and I'm gripping out
grip minus V if you use e-grep it's basically an alias to the grip so I don't
I've gotten out of the habit of using that because it doesn't exist everywhere
what's the kind of one thing to keep in mind so um I've gripped out that no recordings
to an alias something crashed um found one recordings in the past 24 hours
no new recordings across this found record but fail to record fail to get recordings for 01
almost like a off issue
and then there's really big error like a timeout type of thing
probably fire the power went out maybe next retries exceeded with URL blah blah blah
recordings begin time stamp and time stamp limit offset blah blah blah so I'm filtering out by date and time
it looks like so I'm going to go to the actual camera which sucks because again
these things are not made to be used I don't want to say it locally I have to download and
install this weird executable from China it's like a five-meg set up EXE it's like
super-shifty so whatever all these things are kind of scary say at least so I've installed this
little executable which randomly makes me reinstall it I don't know why because I'll install it
and then like two months later whenever next time I have to use it it has to be installed again
which just does make a sense so anyways um I believe there's no callbacks to try that in here
so I've installed this little setup EXE which I think like hooks a DLL so that it can do
whatever silliness needs to do I see a main stream in a substream substreams like the
traditionally a substream is a lower lower quality stream and it's loading like a poop poop poop poop
the local admin password is all the same pretty much my house is like the egg you know
the technology where we get it you're pretty much screwed anyway so if you got somebody on your
network you're kind of screwed anyway so I usually use leave credits default to most stuff
because it doesn't really matter um no it is random so pseudo random should dare I say
the math nerds we'll say that it's a pseudo random so anyways I can't get any playback at all
working it might even just need to be like unplugged and plugged back in because I can't even get a
stream going um I do have somewhere else a different URL which I don't know where it is probably
in my city in notes now um let me search I've been using it up sitting for a little bit
yeah this is a video too I'm still new to obsidian but it's it's the
the front end for my AI assistant that eats uh two three googles one yahu
male and a uh linkedin and google voice mail oh okay so you might be able to hear this
no I can't hear this I see crickets and a tire in her front yard whatever so it's it's working
as he's stuff um the real question is is why is it why is one the playback not working
which I'll close all this out closing on all my browser windows and restarting
maybe that'll help
I've always kind of had issues with the live view
with this camera again a lot of these are made to have like a DVR whatever and you know
they're like a hundred dollars or something who knows oh they have my life only put let me put
it outside gamers wow this is saltiest says hell anyways um yeah I can't even get
upstream or mainstream I can hit it via RTSP but for whatever reason there's no captures in here
I mean it's possible it could have been reset somehow um I don't know but this view eyes
does it say at least take a photo take a photo I have no idea what I'm looking at
let's see free space so there's kind of two ways to do this I had uh a there's like two different
kinds of answers like motion events which I used to have enabled motion detection is off right now
this is like your standard better regular motion detection and it has I don't have to think
it has boundaries like the other thing does I don't think it has boundaries I can't even remember
but that's the more traditional method the one you want is this intelligence thing that's called
intrusion and the intrusion let's see do like these rules and yeah see I still can't see anything
going on with this with this setup try not a coffin your ear let's see try and load it again
that's the thing with this camera it's just like not designed to be managed with a client
um so I don't know it's kind of frustrating I'm gonna do a tale of the
tail tail minus in 10,000 third in 2000 found 15 recordings no no it's like it found 15 recordings
and then through up maybe maybe it needs to be like you know reset because it's trying to pull
in 15 recordings that once and it can't do that right so we're gonna just assume something like that
happened all right now I'm starting to cauff getting um see
content I'm I don't know I the whole crime tab thing there's user
crime tabs and there's root crime tabs and you can have the root crime tabs basically the user
and I feel like I just want to put everything in root but that's not what you're supposed to do so I
have user crime tabs but it's very confusing um because I have different users with different
crime tabs and it's hard to see them all I'm sure it was like me and I can run to see them all but
it's quite I'm not just to throw it back up this first cp like cp my um
either auto hockey that will um it makes paste and copy and paste uh caps locks a and caps like s
but when it's not on I just end up typing caps like s and that caps like a capitalating
capital S um so it's kind of annoying I turned it off because I was going to be near game
so we have some kind of resets out yeah fx file sent sent events is the is flag is a it's like a
placeholder cat oh my god I'm hitting the cast on all the time now so I'm going to go to
go to my user folder start up this thing oh my god what is going on so going on my user folder
I'm going to start up a auto hockey because it drives me insane not to be able to copy and paste
it does much of other stuff things too it's like I'm pretty defined can't um
get don't get something get something send events
all right um and it's like a bunch of timestamps um maybe if I just heard it or echo
I don't know just one the last one two
sent events it's also weird that like sometimes when I copy and paste it's like got
extra characters in it and it's so weird if I use the clipboard history and then I paste
what's in the clipboard history the first time it has like carrot left bracket left bracket 200
uh squiggly and then the paste it version and then squiggly but then if I do it again
it works perfectly fine so don't understand what happens it's weird it's really weird the way uh
the way it works like it doesn't make any sense clipboard Canadians so anyways that sent events
I completely cleared out which I think five eight nine eight four three some kind of time stamp
or right you ID I have no idea that's from with the vibe code it should is it you have no idea
what anything is doing what it does stuff so I'm going to do my contact I'm going to run this
run the script it's who happens so no recordings found the past 24 hours um which might be true
because I can't tell if anything is running anyways so yeah it's proving not to be fine at all
and that's that's the uh the fun of it Jesus um I guess I can turn off my at blockers and my
privacy battery and you black origins that might be it
when every time I refresh at the log in it's like
1990 style session management all right I turn off all the uh at blockers maybe I'll get an
actually stream I'll get an actual stream for this no yeah give it I don't know man um
yeah this is just waste time so I'm about to see what happens okay so I'm about to both the computer
and the camera and I do not see any events for today at all I want to check yesterday
interface for this thing is potato all right so let's do this stuff it's uh 12 523 that was
so long time ago I'm not gonna do a 523 doing 623 6 2019 okay so it hasn't been doing events for
a while not even locally so this is their stupid camera app it's oh my god it's not even now
you know you you you you think um so now I'm uh it's it's now 623 the date I'm going back to
619 I see nothing I want to go back to 523 I see stuff let's go to 615 so the events aren't happening
at all there's no events being generated meaning something's wrong with the the ability
for it to capture events for some reason so we're gonna go with that um I doubt there's any kind
of troubleshooting or any errors or log is there anything with this thing um that is really weird
now can I force a record record you would do like to access storage and you can save images
oh no I'm not that kind of record I want to record on that for server and so this web app thing is
still piece garbage let's see if we don't have Firefox somewhere want to stay up at Firefox on
here anyways it's super exciting obviously let me put jump off for a second okay so a bit of a tangent
I got it working with I found a Firefox executable for a playwright which is for automation
of stuff so I'm I have Firefox running with the viewer and I can actually see the camera
but I noticed that my windows directory is still exists and it's really hard to delete that
windows old the folder what you can't do is a program called there's other ways to do it you can
do the run as okay let me back up there's users in windows there's system and trusted
installer and a lot of people think that admin is admin no it's not admin system is more or less
sort of admin and trusted installer is more like a root if if I had to put them in a bucket
a lot of people do not know how windows permissions work and how that magic is I don't even know
but I know I do know that you can use a trusted installer kind of bypass you think where you
replace the binary of the trusted installer executable or the the trusted installer
command line and replace it with whatever you want see you basically take the trusted installer
service and replace the command to run the trusted installer service with whatever you want it to
actually do as trusted installer and then and then you hopefully revert it back if not all your
adder move add all that stuff having to do the software it's going to get all one key and you will
be able to install stuff but I had a hack that would basically forcefully delete stuff or
forcefully run a specific process using the trusted installer hack by replacing the admin you
have admin rights to replace the trusted installer service binary to run whatever you want and
that's kind of how you hack around the problem with that there's no easy way to do an interactive
trusted installer instance now there's an executable that's been around forever called
exact EXETI.exe exact TI exact trusted installer.exe and this lets you bring up a
windows you you take them run dialogue but you can run whatever command you want as trusted installer
so I type C&D hit enter and I have set and I see compact layer app health installer the
row with the system path is home path is still user internet which is quite interesting
I'm looking at the environment variables for this thing so it's compact layer detectors
app health installer does compatibility window windows compatibility layer I wonder if there's
something there if that's like a way I can be just installer I don't know so there's some other
some other weird chocolate you last update not just okay so we're going to try to delete this
mood directory versus this windows it windows old and I guarantee you it will work with
falsely because trusted installer has writes that not even system has if you try to do see yeah
which system is being used by other process I don't know how this is like how how long I'm
supposed to delete the stuff except do it in dice yeah it's saying like users all users in video
messaging message bus log is being used by another program I hope I'm not actually delete my real
windows folder that would be hilarious I don't think that's the case let me double check
windows directory SQL Microsoft does sure system root SQL Microsoft Windows okay but it says it's
being used by another process which doesn't make any I think sense that's kind of terrifying
so the auto boot links to get rid of this uh that's really the only way to delete stuff
in windows to like won't let you delete um you can do chamada type of stuff and just to complicated
whereas windows or Linux will let you just melt what what what you want and then delete what you want
without having to do take ownership of entire folder and like take ownership of all the files and
all that bullshit um Linux you just go now in a fsmout whatever god um you know there are
some very rare edge cases that that could be a problem but anyways that was a bit of tangent
it's on my website it's uh under actually I'll make a show that's for it trusted installer
exact TI right as where's my notes I started some notes they and then I rebooted
so anyways card drives by the problem with that is it'll trigger every time inside whoa what is that
dude I just saw something purple and glowing what was that
that I was creepy anyways the I buy house lights on so there's a little bit of weird
colors going on so there's a rule that has a compounding box of my driveway and all in
way out to the street but not the street itself motion technically gets picked up by
cars driving down and that motion gets activated and once the motion is activated it looks for an
object such as a motor vehicle or pedestrian and I have sensitivity thresholds whatever
it works good it used to trigger a lot and that was why I switched it from
the regular motion to this intelligence smart thing but the problem with the intelligence smart thing
is that the email alerts we're not working the intrusion detection email it's we're not working
so I had to make my own that's kind of where we're at now I don't know what the problem is
I did go out there and move around and do stuff I read I formatted the storage
so it says total capacity 230 gigs geez man what how much 230 gig micro SD is right now
how much did I buy that for Jesus Christ why did I buy such a massive card
250 250 micro 250 on to say 250 I don't even know where I bought it from
like I see R. I'm looking at my Amazon history I probably bought it through them
with the storage yeah it'd be careful here's a 32 gig 250 and why that's it
okay how much did I buy this for I bought it for 49 dollars
what you can buy 200 if you can see it for 49 bucks I guess it's just like the memory the
ECC or the fancy ram is really expensive this is cheap 450 bucks I'll probably pay more than that
what did I pay let's see I pay 38 okay whatever anyways
yeah that's that I put the just a dollar thing in there I I'm going to try one more thing
and try to trigger it and then I'll come back okay well we got something in how did the date the
system to I got close this other window I looked at the date it says it's November 1st 2011 at 1500
hours is this system time on New York is the right time zone the NTPs NTP server is an IP address
of I don't know where the hell that is so let me ask a I top NTP servers for Linux
didn't even type it correctly it's like deviant what's a deviant one I pulled that NTP
network sure North America pool US pool dot NTP dot org who's an 80 on these test NTP check
failed that's interesting what about it about to
NTP check failed we're okay we're actually get the IP address and put that in maybe that's why
I had an IP address in there is because the IP address is it doesn't take a host name oh that's
fucking weird it doesn't take a host name so that's weird I said so with the computer sync with computer
system time that's not I don't want to do any of that I don't want to do any of that so let me go back
back to cc cc tv fn what's definitely one problem is it thinks it's it thinks it's 2011 for whatever reason
that I wipe it out or something I don't know so I click the download I search for the model number
and I click download firmware and I get this weird as this is the weirdest download I've ever seen
in my life it's at 7% it's dog slow when I click the download button and there's no actual it's
not using the browser it's download but it's using like some Java bullshit so I am just because I'm
crazy I use bolt media downloader that's like a sniffer sort of sorts um so we got this weird
140 mags file that it's downloading it whatever speed so not going to copy and paste this
copy this link it downloads like some json from Lenovo and then it it's files.com wow really
you can even host your own shit you got to use some third party whatever before minutes two minutes one
minute um yeah that's the fastest it's going to get so I can do stream to downloading too so
I'm going to take that link and take it to download manager send to download manager which
can do three threads at a time also download links see if I get three or four threads going
I'm going to be fair it is a like secure link it's got like my IP address in it and like all
kind of stuff um yeah any ID token the token is blank of course off key so it's definitely
some kind of you know temporary thing and the hilarious thing is that it says client IP equals
in my home IP which that's going to be in there it walks anyway so it doesn't make a ton of
sense to put that somewhere um I guess you can deny the download based on somebody else's
if you put their own remote IP in there I don't know I've never heard of files if I LZ.com to
fucking malware why these guys don't support their own downloads is terrifying they got Facebook and
YouTube and all that stuff but I guess that these things are all shady Chinese and whatnot like
what why why why do you have the outsource here your downloads that's kind of gross
so we're almost done 66% so it's not any faster with multi threaded the thing I use from
multi threaded is called turbo download manager and that's for chrome and along with both
media downloader and turbo download manager I can pretty much download almost anything
and then URLs that I can't download directly I'll send to FFNP or YouTube deal
um I have a oh my get up I have a YouTube downloader script that will use RSSC2 to multi threaded
download any video you send it um so you can set it a list of like you know 16 different videos from
the same site across 16 other websites you'd have like 16 times 16 and it would download all those
at the same time I think how I have it set up anyway so here's a file that is a bin which it's supposed
to be I think as a file because the way I downloaded it it's not so let's see what happens when I
click this yeah it's supposed to be blah blah blah does it so I'm gonna copy and paste this weird as
message I'm gonna rename it to a zip file thank god it opens so I have this zip file and
I'm gonna extract it you'll see that it's okay it has a cloud upgrade button which yeah that sounds
terrifying um click the image debug I'm gonna turn that off while I'm doing this I can go ahead and
export my config um file encryption I don't want to encrypt anything can that be empty
that's gonna weird
is it file or something how is it encrypted it's just like this is encrypted like it's a
dot config file I don't understand so I use seven zip which is the mother of all
decompression tools yeah I don't know how to read this I don't know how to read this it's a
weird file um I use bash for a lot of stuff bash I can I bash here they kind of slow bash everywhere
yeah sort of works um IPs IPc it just says data um the file can be just calls it data I have no
idea what this is but we're gonna back it up put it on the uh Google I guess it's just my
config drive like keep like documentation and small things like things I want to be able to search for
essentially in um in Google Drive because it has that kind of index feature
or I can search for stuff so I'm gonna call it the call it some
was it CC TV CC TV CC TV F is it F new I can't remember I'll try to drop it in here
I think it's there so now I have backup of the config the new version is detected no
okay we'll take a while please do not disconnect power that no idea what it's doing it just says it's
gonna take a while oh look the data right so it says 2026 that might be why it's not working because
there's nothing to collect from 2011 maybe the data's so far off you know who knows so we'll go
pop back into the thing and delete that date file maybe that'll help kind of jumpstart it
um or into the no dot to these files
lesson video yeah so that's blanked out and then also we're gonna
I go test to the log file so I need to log file and I look new to the timestamp trigger
think so that knows so that it knows where it's at and then we'll go from there see what happens
at the update all right well uh I guess it says the upgrade will take a while please do not
disconnect power wish me like um looks like the family's heading back here so I do not have
any more time and you know more of the same take it easy
You have been listening to the Hacker Public Radio podcast, at hackerpublicradio.org.
Today's show was contributed by a HPR listener like yourself.
If you ever thought of recording a podcast, then visit the HPR site to find out how easy it really is.
Hosting for HPR has been kindly provided by anhonesthost.com, the Internet Archive, rsync.net, and the HPR Community Content Delivery Network.
Unless otherwise stated, today's show is released under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.
