We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Kiosk provider seeking an 8051 assembly language developer to patch firmware to: * Add two i2c commands: 1-turn on 2-turn off Notes: 1. Device has pre-existing soft power control. 2. Device has pre-existing operational I2C interface. 3. Current firmware is available only as ROM image. 4. We -possibly- have some C source code for the 8051-based controller, but it is not configured for the product, nor includes past manufacturer provided customizations. It is probably mostly useful as a reference tool. Deliverable Requirements 1. ROM image: a. With new I2C on/off command functionality. b. Upon boot, the device must start in the existing on state. c. All existing functionality must still be operational. d. Provided in the same ROM-able Intel hex format the original firmware image was supplied in. 2. New functionality in deliverable #1 must pass 100 I2C command off/on test cycles. 3. Assembly language listing for deliverable #1, with descriptive comments documenting changes. 4. Deliverables must be provided within 6 business days from when both parties agree to commencement of work. Available Resources We can provide for the duration of the work: * One controller board for development/testing. -and- * One end-product module which uses the controller board. Work Quotation Please e-mail: * Your all-in fixed price for the work. * Relevant qualifications. * The option of partial payment mid-way through project requires two strong references. Otherwise, payment is upon receipt of the required deliverables.
Note that you can find 8051 chips with at least 1MB of code flash. So way, way larger would, in my language, mean that you have disassembled at least 10MB+ binaries.
Certainly in excess of a few MB. Haven't you?
Per, please stop being such a pompous git.
Richard Marshall BEng(Hons)
Something is seriously wrong if there is a need to make a total reverse engineering of a multi-MB project.
Unless the goal is to steal someone elses code, most situations where reverse engineering is needed would relate to quite small blocks within a larger binary. Such as the interfacing of the binary with a specific hardware device, to allow totally new code to be written for existing, but badly documented hardware.
Small fixes for a binary with missing source code is normally produced by patching in new code at the end of the binary and just patch the existing binary to access this new code.
Large fixes for a binary with missing source code? Normally solved by rewriting everything. Or suggest that the hardware is old enough that it is better to make a completely new product with new electronics and get a product where the customer both owns documented source code, and have a cheaper hardware platform to produce and sell for possibly quite a number of years.
In the end, reverse-engineering of larger projects is normally a huge fail. Wrong route to solve a problem after having already huge fail of losing the source code.