Magic Lantern Firmware Wiki


gensig is a tool written by CHDK people to create functions signatures based on function address, its name and a camera memory dump. Then, finsig is using signatures to find functions addresses in new camera, thus help porting CHDK.

The general explanation for CHDK build chain is here:

Update: gensig2/finsig2

How to create signatures for DryOS DSLR[]

I used these tools (slightly modified, for minor reasons):

1. first I created sig_ref_dryos_218_110.txt (for 5d2 v1.1.0, 218 is the model id) based on (because it is the most complete stub file for 5d2, and can be tested on 204)
and sig_ref_dryos_270_108.txt (for 550d v1.0.8) from

2. then I applied signatures generation on the related dumps:

./ sort dryos "218_110 270_108" >signatures_dryos_AI.h
  • "sig_ref_dryos_218_110.txt" is signatures file for 5d2 1.1.0, dump is "sig_ref_dryos_218_110.bin", loaded at 0xff810000.
  • "sig_ref_dryos_270_108.txt" is signatures file for 550d 1.0.8, dump is "sig_ref_dryos_270_108.bin", loaded at 0xff010000.

Result: "signatures_dryos_AI.h" contains signatures for all functions described for 5d2 110 and 550d 108.

How to use signatures[]

then I recompiled finsig with these new signatures (just changed #include"signatures_dryos_AI.h".

then I used finsig to find functions addresses in 5d2 204 and 550d 106.

finsig.exe 5d2_204.bin 0xff810000 >5d2_204_finsig3.h
finsig.exe 0270_106_09.bin 0xff010000 >550_106_finsig3.h

I tested all of this under mingw/msys + gcc under windows 7. Thanks a lot to CHDK people for gensig and finsig !!!

See also on the Mailing list:
find automatically addresses of known functions for a new firmware: gensig and finsig