How to unpack such a firmware with header ''#SKYVIIA#
Linux - Embedded & Single-board computerThis forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
you can see the very first of the output is #SKYVIIA#, I google it, found it stands for a company in Taiwan. here it is http://www.skyviia.com.tw
it is a IC design provider. Are there anyone can help me to unpack this image?
Any ideas will be appreciated.
Tell us what you mean by 'extract'. This is similar to other questions you've posted recently. There is no generic 'unpack' or 'extraction' method for arbitrary lumps of binary data, and it doesn't matter whether the blobs of data came from a ROM, flash media, or an arbitrary file. In order to make some meaningful interpretation of the data, it is necessary to know some context for it. It may be a filesystem image or block device image, binary object code (for some particular CPU), image data in the sense of visual imagery (JPEGs, PNGs, etc), or simply data acquired by a running program.
Tell us what you mean by 'extract'. This is similar to other questions you've posted recently. There is no generic 'unpack' or 'extraction' method for arbitrary lumps of binary data, and it doesn't matter whether the blobs of data came from a ROM, flash media, or an arbitrary file. In order to make some meaningful interpretation of the data, it is necessary to know some context for it. It may be a filesystem image or block device image, binary object code (for some particular CPU), image data in the sense of visual imagery (JPEGs, PNGs, etc), or simply data acquired by a running program.
--- rod.
Hi,
You understand me quite well. tell you what, I am doing a kind of service which requires to find out how many parts of GPL software, and find out its corresponding source code. that is GPL auditing or something like verifcation. So, at first, I need to unpack firmware, there are some method I have uesd in other fimware, for example , unyaffs, mount to loop, etc.
Inverse compilation of object code is somewhere between impractical and impossible. I lean toward the impossible end of that spectrum.
Having said that, you may be able to gain some insight to the use of particular source code by finding embedded string data. Typically, compilers don't mangle literal strings in source code, and these can be found in the object code. There are probably invariant signature code segments such as C startup code which could be used to identify the key points within object code. It would take a very large sample of the binary data in order for anyone to locate such signatures. It is not necessarily the case that object code lives at any particular location within a block of non-volatile storage media. There may well be unused gaps within the media, as well a regions of random non-zero data. If any effort has been made to conceal the use of licensed code, it will be even more difficult to reverse engineer.
Inverse compilation is extremely difficult, especially given the huge number of compilers, versions, compilation options, and target architectures that may have produced a given object code module. I hope you're not betting the farm on the success of your venture.
Inverse compilation of object code is somewhere between impractical and impossible. I lean toward the impossible end of that spectrum.
Having said that, you may be able to gain some insight to the use of particular source code by finding embedded string data. Typically, compilers don't mangle literal strings in source code, and these can be found in the object code. There are probably invariant signature code segments such as C startup code which could be used to identify the key points within object code. It would take a very large sample of the binary data in order for anyone to locate such signatures. It is not necessarily the case that object code lives at any particular location within a block of non-volatile storage media. There may well be unused gaps within the media, as well a regions of random non-zero data. If any effort has been made to conceal the use of licensed code, it will be even more difficult to reverse engineer.
Inverse compilation is extremely difficult, especially given the huge number of compilers, versions, compilation options, and target architectures that may have produced a given object code module. I hope you're not betting the farm on the success of your venture.
--- rod.
No, it is not inverse compilation, also it is too difficult for me. I'd better take an example for you, what I should do is to make the firmware image upacked, in other words, I can access to the directory tree which contianed in the firmware. if a folder, let's call it bin, contians ,for example, iwlist/iwconfig/iwcontrol(wireless tool under GPLd) or lib/modules/ contains a xxx.ko (also under GPLd). with those binary modules, I could use strings command to read printable stings , for example, licnese, GPL, GNU General Public License etc to verify whether those modules are compliance with GPL. if yes, I must find their corresponding source code, and If the electronics provider failed to provide the corresponding source code with other people, then they infracts GPL, possible lawsuit will be launched by original developer of those tools (mentioned in previous, wireless tool, for example).
While your data might very well be a block device or filesystem image, it is impossible to tell from the very small sample size. It is very likely not object code, at least the portion you showed. 'Firmware', to me usually suggests a set of subroutines, functions, whatever you want to call them, with some organized method of invoking those routines, such as an entry point where arguments are used to dispatch to the caller's desired service. There is no filesystem involved with such an organization. Assuming that there is a filesystem of any sort in your data may send you on a long dead-end road. What is the nature of the original media that contained the data? That may reveal something about it's structure.
While your data might very well be a block device or filesystem image, it is impossible to tell from the very small sample size. It is very likely not object code, at least the portion you showed. 'Firmware', to me usually suggests a set of subroutines, functions, whatever you want to call them, with some organized method of invoking those routines, such as an entry point where arguments are used to dispatch to the caller's desired service. There is no filesystem involved with such an organization. Assuming that there is a filesystem of any sort in your data may send you on a long dead-end road. What is the nature of the original media that contained the data? That may reveal something about it's structure.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.