!!! THE HTML FILES WILL CONTAIN CANON COPYRIGHTED MATERIAL !!! If you can leave the computer on for a week, just run this to analyze all your dumps: The same analyses for the 550D firmware takes around 1 day, or less if you help me optimize the algorithms :) If you want a more thorough analysis of the firmware, like this one, run:Ī full analysis of ML firmware takes 1-2 minutes. Run this to create a browseable HTML like this example:Īnd when it's ready, open index.html in a webkit-based browser (firefox is too slow, sorry!) I prefer to run it before generating the HTML. ![]() This will try to find function calls and identify functions inside the firmware. You'll have to load stubs (*.S) files manually: The script will auto-detect IDC files with similar filenames, and load some info from them. Hint: they are sorted after the bin's file name. You will want to assign a short name for each dump. You can select the dumps to load with a regex: If you know how to change it to hex for integers, please leave a message. If you are new to IPython, be sure to skim this tutorial: This is the IPython prompt here you can browse the dumps, find/verify matches between firmware versions, and lots of other cool stuff. Try to give them names similar to the dumps, to help the autodetection.Įxample of contents of the working folder: Some databases, in IDC or Stubs (*.S) format.Include the load address in the dump name. Prepare a working directory where you will put the input files. Step by step setting up on OS X 10.6.7 (by coutts). (This is the reason my scripts run 10-100 times faster than in IDAPython: because I've cached lots of stuff in Python dictionaries.) at least 4 GB of RAM (or skills to optimize the script).IPython version 0.11 and 0.12 are not compatible current ARM-console, downgrade to 0.10.2.arm-elf-gcc in your PATH (see Build instructions/550D for how to do that).Sympy 0.7.1 causes problems when decompiling. Sudo easy_install pydot easygui cheetah ahocorasick profilestats Sudo apt-get install python-setuptools python-matplotlib Sudo apt-get install python python-dev python-scipy python-tk python-profiler graphviz libpng12-dev Python (I use 2.6 under Linux, but it should run under any major operating system).3.9 Matching functions and addresses between different firmware versions.3.7 Annotating addresses in the firmware.3.6 Browsing the firmware: IPython console.I do not plan to implement an equivalent of the following from easygui:Įasygui.buttonbox - use get_list_of_choices() instead (however, see comment from below. Possible variation of get_fields (see 6 above) where some fields can be specified to be masked.Change password dialog (with verification/confirmation of new password) Done.An about dialog (with possible variations) - see description in comment below.: Note: most of this is available using show_file, with an appropriate html file.possibly implement get_image_selection() : showing multiples images and having the user choosing one of them something very similar to the idea of get_choice() used for text items.possibly implement get_username_and_password() with a viewable username field and a "masked" password field.possibly set_default_position() right now the widgets are displayed centered on the screen, it might make sense to position them at a user-defined location (I believe this was a request for the original easygui).get_date() - with a nice calendar dialog Done.get_color_rgb() - implemented via PyQt's color dialog Done.equivalent to easygui.multenterbox() - probably called get_fields() and returning a dict Done name=get_many_strings.or show_code, depending on how the code is obtained. equivalent to debox() - probably called show_code() Done name=show_file.equivalent to easygui.textbox() - probably called show_text() Done name = show_file. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |