I'm looking for help in analyzing a few .bin files. I have a program that installs a "firmware" update when I connect my camera through USB.

I'm on a Mac Os Sierra. Inside the Applications Folder under this Camera App/../../ I find a folder called Resources.

Actual files can be downloaded here: .bin (if you're interested)

I did a binwalk -e to extract the data from each .bin and the did a FILE command to understand a little more of what each individual is. Here are my results below:

enter image description here

I highlighted files I thought were interesting or/and were linked or related. (Again I'm not too sure what the crap I'm doing)

I'd love to get some feedback on someone who better understands all of this. I'm trying to find the "firmware" and possibly decompile it and add a few things then put it all back together.


John Doe,

Again thanks. Here are some images of what I was able to get working on my PC laptop using CHIPSCOPE. Chipscope came with Xilinx WebPack, like I said above in my comment. I was able to connect to my Xilinx via JTAG ports but not much past that. I'll have to research further into how to utilize the microblazer tool chains...

enter image description here

So should I bring over the .ELF files from my Mac and open them up with my SDK Tools? Or better question, where can I learn more about this process so I stop asking stupid questions? I'm not too familiar with how to use the Xilinxs SDK Tools and how to configure the FPGA with these microblazers .ELF files.

enter image description here

Thanks again.

1 Answer 1


Your camera has a Xilinx FPGA inside. FPGA design likely includes Microblaze soft CPU core. Files extracted by binwalk appear to be valid ELF files, so you'll just need to download Microblaze toolchain. The easiest way to do so is to download Vivado WebPack (it's free) and install it — you'll find a toolchain in the Xilinx SDK folder.

$ microblazeel-xilinx-linux-gnu-readelf.exe -S 218CC2
There are 20 section headers, starting at offset 0x111554:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .vectors.sw_excep PROGBITS        00000008 0000b4 000008 00  AX  0   0  4
  [ 2] .vectors.interrup PROGBITS        00000010 0000bc 000008 00  AX  0   0  4
  [ 3] .vectors.hw_excep PROGBITS        00000020 0000c4 000008 00  AX  0   0  4
  [ 4] .text             PROGBITS        c20ca400 0000cc 0b7cd0 00 WAX  0   0 16
  [ 5] .init             PROGBITS        c21820d0 0b7d9c 000038 00  AX  0   0  4
  [ 6] .fini             PROGBITS        c2182108 0b7dd4 000020 00  AX  0   0  4
  [ 7] .rodata           PROGBITS        c2184000 0b7df4 012ca7 00  Ao  0 128684 8192
  [ 8] .sdata2           NOBITS          c21a36ac 0d76ac 000004 00  WA  0   0  1
  [ 9] .data             PROGBITS        c21a36b0 0caa9b 0461be 00 WAo  0 869620  4
  [10] .ctors            PROGBITS        c2277ba4 110c59 000004 00 WAo  0   8  4
  [11] .dtors            PROGBITS        c2277bac 110c5d 000004 00 WAo  0   8  4
  [12] .eh_frame         PROGBITS        c2277bb4 110c61 0007b5 00 WAo  0 2048  4
  [13] .jcr              PROGBITS        c22783b4 111416 000002 00 WAo  0   4  4
  [14] .gcc_except_table PROGBITS        c22783b8 111418 000080 00 WAo  0 140  4
  [15] .sdata            NOBITS          c2278444 1ac440 000004 00  WA  0   0  1
  [16] .bss              NOBITS          c2278448 1ac440 002244 00  WA  0   0  4
  [17] .stack            NOBITS          c227a690 1ac440 000c00 00  WA  0   0  1
  [18] .heap             NOBITS          c227b290 1ac440 1dd84d70 00  WA  0   0  1
  [19] .shstrtab         STRTAB          00000000 111498 0000ba 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)
  • Thank you so much, it does have an FPGA Spartan 6. I've figured out the JTAG ports to it and I've connected it with Xilinx Programmer Cable. Opening it up in JTAGPort Analyser from Xilinx connects me. The only thing is all this .bin files and binwalking was done in my Mac Osx and the Xilinx JTAG port Programs I've done in my old PC Laptop. Should I copy the Extracted .bin files over to my PC? I'm sorry to ask this but how do I use the .ELF files with the Xilinx SDK Tools? Commented Dec 21, 2016 at 16:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.