decomp-permuter icon indicating copy to clipboard operation
decomp-permuter copied to clipboard

Randomly permute C files to better match a target binary

Results 50 decomp-permuter issues
Sort by recently updated
recently updated
newest added

Flattens fields out of a substruct mostly following [these flattening rules](https://gist.github.com/abaresk/132fe737825debb4d2c20ea92d2e4a48). Note, for simplicity we're not restricting the range for downward flattens. Example: [original source](https://gist.github.com/abaresk/1188213fe0d72ddce142ff20f2c239b8), [permutations](https://gist.github.com/abaresk/620f69b4786de817902bdf9ce7b7caf6) Part of #136.

alternate solution for supporting windows or systems without pynacl Let me know what changes you would like or additions, then if this works I will close the other PR

This was complicated to implement and took me awhile, and probably only limited benefit. If its too much work to get it merged in, or don't like it, I may...

default_to_not_stripping_fn_defs, flag to re-enable

Reopening this as WIP PR, I know updates still need to be made to support different compiler types / setups. Right now it works for mwcc though.

### Nesting The permuter should be able to create substructs by nesting fields from a larger struct. For example: ``` typedef struct { int foo; int bar; int baz; }...

## Proposal Add a mechanism for users to specify a list of control functions. If the source file contains a series of functions, one of which is the function to...

Once a score of zero (or a user-defined threshold) is reached, the program could then do a second pass in which it prefers removing statements, eliminating variables, etc, making the...

```c void foo(Thing* thing) { thing->a = 0; thing->b = 0; } ``` or ```c void foo(Thing* thing) { thing->a = 0; thing->b = thing->a; } ``` -> ```c void...

new-pass

Alternatively struct member instead of variable. E.g. ```c void foo(Thing* thing) { thing->a = 0; thing->b = 0; } ``` -> ```c void foo(Thing* thing) { thing->a = 0; thing->b...

new-pass