Filter Factory - Technical Analysis

Back to main page

Analyzations

Resource overview (PIPL, PARM, SYNM, OPER, FUNC, ...)

Important virtual memory addresses (FilterFactory 3.0.4 for Photoshop/Win32)

PE sections (FilterFactory 3.0.4 for Photoshop/Win32)

PE disassembly for Filter Factory 3.0.4 (COFF Binary File Dumper, IDA Pro with annotations, ASM Dump with annotations), 3.00a (IDA Pro, ASM Dump), 3.00b (IDA Pro, ASM Dump), 3.00 final (IDA Pro, ASM Dump)

PE import table (FilterFactory 3.0.4 for Photoshop/Win32)

PE export table (FilterFactory 3.0.4 for Photoshop/Win32)

Filter Foundry functions

How Plugin.dll sliders work (FilterFactory 3.0.4 for Photoshop/Win32)

How to modify your own filter with a hex editor

Randomization procedures

Misc annotations / Trivia

1. By modifing 0xFF at offset 0x0AEA of the 8BF file (version 3.0.4) you can change the max range of the controls ctl0..ctl7.

2. By modifing 0x00 at offset 0x0AEF of the 8BF file (version 3.0.4) you can change the min range of the controls ctl0..ctl7.
Attention: You may not set the initial slider values below this value when building the filter.
Attention: The maximal value can be 127 (0x7F), otherwise you need to extend the ASM code size. (???)

3. By modifing 0x00 at offset 0x5E3C of a built filter (version 3.0.4) to 0x01 you can make the preview dialog appear even if you don't have any controls enabled!
Note: Offset 0x5E3C is equal to resource PARM:16:1033 offset 0x0028.

4. The beta version of August 1994 mentions the internal name "RGB Factory" and the original filename "Espresso.8BF" in the VersionInfo property. The final version 3.00 changed the VersionInfo to "Filter Factory" and "FFactory.8BF" as the original file name. Some internal names (e.g. the exported function EspressoDlgProc, and the window titles of the dialog resources) still remind of the old name. The display name inside Photoshop was always "Filter Factory", even in the beta.

5. Resource editing is not possible at the moment because some offsets seem to be hardcoded. (tested with version 3.0.4)

6. Version 3.00 and 3.0.4 have the same FUNC, OPER and SYNM resources, which means, the functions behave the same. A notable change is that version 3.00 draws the sliders (in 3.11 style) by itself, and does not use Plugin.dll . Version 3.0.4 uses Plugin.dll to draw the sliders (in Win95 style).

7. The Premiere plugins (Filter Factory for Premiere and Transition Factory) do not store their functions in resources; instead, the functions seem to be hardcoded and therefore we cannot do a patch.