Hi everyone,
I saw this video on youtube as regards as reversing IPTV cameras and finding security vulnerabilities: Black Hat 2013 - Exploiting Network Surveillance Cameras Like a Hollywood Hacker

I have a basic knowledge of C, C++ and Python.

I have some other questions related to this field:

  1. I've seen that the speaker reverses CGI programs, is this the only filetype involved in reversing MIPS?
  2. if someone who has a lot of experience could give me some advices on what to do, where to start, books to buy and courses I would be very very grateful;
  3. the assembly code that I get disassembling a MIPS binary has something in common as the one I get when disassembling a x86 program? (I thought that I might learn first x86 assembly and then move on learning MIPS assembly since the former is much more covered on the internet and in textbooks);
  4. I would like to know if there are ad-hoc crackmes (I can only find some related to x86 and x86_64) for MIPS architecture;
  5. are routers and other IoT devices such as IPTV cameras and so on based exclusively on the MIPS architecture? Or there are other architectures as well?
  6. what about obfuscated binaries, of course I don't want to rush and everything but I would like to know more;
  7. if I decompile a MIPS firmware on my Intel-powered computer and let's say, in the future I buy an AMD-powered computer, the output of the disassembled program will be the same? With output I mean instruction names and so on;
  8. I'm not trying to be a script kiddie but, from what I know, when talking about disassembling tools play a fundamental role. I've seen that IDA PRO is a good choice, however going to their webpage their price is just too much for a student, but there are other free alternatives such as Radare; the other night I tried to emulate a router's firmware using QEMU but I failed and I gave up; I hate copying and pasting things because you never learn anything and sometimes it doesn't work; are there some tools (other than Radare and Qemu) that may aid in reversing and disassembling MIPS firmware and related documentation?
  9. last but not least, I'm not trying to be the "hollywood hacker" or be the "bad guy", I'm just trying to expand my knowledge.

I know that these questions might be completely dumb, but everyone has been there. I googled everything I could but there are a lot of things and I always get lost. Just to point out, it's not the first time that I try to do reversing in general but I always get demotivated given how hard it is so I though about asking here and getting some advice.

Thanks for your time and everything!

  • 2. Sometimes the best way to start is to jump into the deep end. Pick a device, and start working on it. Yes, it'll be challenging, but you'll learn a ton. Decompilers make it a bit easy to work on different architectures, but knowing the assembly helps a lot too. – multithr3at3d Apr 27 '20 at 15:51
  • Thanks for the advice! – user32648 Apr 27 '20 at 19:04
  1. CGI binary files are just regular executables that export functions that can be called from the outside, like a library file. The most common use for CGI is processing data from a web server.

  2. Don't have a particular one. My advice is to take a RE program, loading the code and start reading instructions, looking up the ones you don't know.

  3. MIPS assembly differs from x86 assembly by quite a bit, but consider it a different programming language. Once you learn the concepts of programming in one language, transforming the knowledge to another language is easier. x86 is what most computers run so it is the most common, also, they can run on a PC without complicated emulations.

  4. Don't know of any, but MIPS is common enough so I'll say that there certainly are.

  5. Many run on MIPS. Many others run on ARM. Other architectures exist. From my own experience, they are pretty rare for this use.

  6. IPTVs, Routers and the like, especially older ones, have unprotected executables. Don't bother yourself with learning about obfuscators before you can handle plain assembly.

  7. Yes, the disassembler is not affected by the underlying processor. Besides, AMD and Intel are compatible.

  8. Radare2 and Ghidra are good and free alternatives for IDA. Emulating a hardware device requires a lot more than just the binary you have at hand, there are hardware components (peripherals), addresses that need to be properly configured and additional filesystems that may exist.

  9. You don't have to explain your intentions. What you do with the information is your choice and responsibility.

  • Thanks for the reply, appreciated! – user32648 Apr 27 '20 at 19:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy