de4dot
c28b575f7a
Add MethodCallInliner prop to cflow deob class
2012-01-11 06:44:44 +01:00
de4dot
17327902c3
Refactor method call inliner code
2012-01-11 04:38:02 +01:00
de4dot
9079445e01
Add another getField overload
2012-01-11 02:32:36 +01:00
de4dot
0d0a40376d
Update copyright years
2012-01-09 23:02:47 +01:00
de4dot
12b327bef3
Add constant folding
2012-01-09 01:25:25 +01:00
de4dot
d3369279bc
Add another method overload
2012-01-08 22:40:11 +01:00
de4dot
061f793f68
Add public local/arg set methods
2012-01-08 22:39:52 +01:00
de4dot
1e21845448
Make method public
2012-01-08 22:39:20 +01:00
de4dot
0398666c93
Update detection of <Module> type
2012-01-08 18:46:23 +01:00
de4dot
9d08a7fe34
Add type ref updater base class
2012-01-07 19:33:57 +01:00
de4dot
635c414c1b
Update code to take a GenericInstanceMethod param
2012-01-07 00:02:31 +01:00
de4dot
e0295980f5
Add two more methods
2012-01-06 23:59:20 +01:00
de4dot
d61e2b6d72
Update code to handle another case
2012-01-02 14:24:08 +01:00
de4dot
eb4a38163d
Add emulate() method
2012-01-02 14:23:10 +01:00
de4dot
08f8a2809d
Add append() method
2012-01-02 14:22:51 +01:00
de4dot
ac30b8c213
Rename method to getValues()
2012-01-01 12:09:16 +01:00
de4dot
9a505b156e
Update getKeys() method
2012-01-01 12:05:23 +01:00
de4dot
99d4e2a770
Add getKeys() methods
2011-12-31 16:14:25 +01:00
de4dot
a817a14688
Add compareFieldReferenceAndDeclaringType() method
2011-12-31 12:57:08 +01:00
de4dot
959b6c8229
Add some more utility methods
2011-12-29 08:21:19 +01:00
de4dot
221dcc3cc9
Don't inline method if ldarga is used
2011-12-28 16:40:03 +01:00
de4dot
ffbceae488
Update methods inliner code
2011-12-28 13:28:17 +01:00
de4dot
91c406b2a0
Add findAny() methods
2011-12-28 13:22:41 +01:00
de4dot
c6572aa75e
Allow invalid (null) targets
2011-12-28 13:21:21 +01:00
de4dot
2a89e28b5e
New version: 1.4.1
2011-12-26 20:41:16 +01:00
de4dot
9aa65c5702
Fix block order bug.
2011-12-26 01:03:39 +01:00
de4dot
259ec3455b
Rename method
2011-12-25 23:10:17 +01:00
de4dot
7e1121ae0a
Re-order the blocks some more for better decompiler output
2011-12-25 23:08:19 +01:00
de4dot
d40816d495
Add another check
2011-12-25 23:07:07 +01:00
de4dot
261e5c88cc
Keep the most public reference
2011-12-23 18:26:22 +01:00
de4dot
7ed11cffb9
New version: 1.4.0
2011-12-22 23:53:59 +01:00
de4dot
7b71a565ec
Move method to DotNetUtils
2011-12-22 05:37:10 +01:00
de4dot
a6d8762d13
Move methods to DotNetUtils
2011-12-21 18:04:18 +01:00
de4dot
534aba0dfe
Move methods to DotNetUtils.cs
2011-12-21 06:38:01 +01:00
de4dot
c65b76583c
Add CflowDeobfuscator
2011-12-20 20:11:05 +01:00
de4dot
b96ab54ba6
New version: 1.3.8
2011-12-16 19:34:55 +01:00
de4dot
f30b0ef749
Add type, method, field, prop, event dictionaries
2011-12-16 18:56:45 +01:00
de4dot
d35e92b53c
Update field type
2011-12-15 16:17:04 +01:00
de4dot
0b5d4d864c
Remove nop blocks
2011-12-15 10:04:04 +01:00
de4dot
a3c9221410
Rename method
2011-12-15 10:01:46 +01:00
de4dot
c73459f1be
New version: 1.3.7
2011-12-11 12:38:48 +01:00
de4dot
5b7806cc1f
New version: 1.3.6
2011-12-06 17:38:30 +01:00
de4dot
f8ef5d9b9f
Update property creator method to take a getter and setter method
2011-12-05 23:46:05 +01:00
de4dot
04940d785c
Update version: 1.3.5
2011-12-04 20:02:18 +01:00
de4dot
7a6af40832
Update version: 1.3.4
2011-12-03 14:33:37 +01:00
de4dot
0db4222c10
Update version: 1.3.3
2011-12-02 15:21:18 +01:00
de4dot
49701686e5
Update version: 1.3.2
2011-12-02 13:19:38 +01:00
de4dot
2734a9ee95
Update the code that resolves typedefs
2011-12-01 22:32:09 +01:00
de4dot
04ae6e116f
New version: 1.3.1
2011-11-26 12:34:59 +01:00
de4dot
a90fd1fa2f
Update detection of the empty class
2011-11-26 12:34:17 +01:00
de4dot
e4e9f6787c
New version: 1.3.0
2011-11-24 11:01:08 +01:00
de4dot
1d8fe39f59
Add isEmptyObfuscated() method
2011-11-24 10:35:42 +01:00
de4dot
76420f4736
Add createEventDefinition() method
2011-11-23 06:38:10 +01:00
de4dot
121bb35633
Add createPropertyDefinition()
2011-11-21 10:32:57 +01:00
de4dot
3f3814001c
Update method sig, rename stuff
2011-11-16 22:56:36 +01:00
de4dot
dba4e3ab79
Update the code to fix some problems
2011-11-16 22:53:53 +01:00
de4dot
695da497a7
Set version: 1.2.3
2011-11-14 06:23:03 +01:00
de4dot
6bf3de0dee
Set version: 1.2.2
2011-11-12 16:57:00 +01:00
de4dot
d9e138bbe1
Strong name sign all assemblies (except tests)
...
You must create your own private de4dot.key file in the root source dir
before compiling:
sn -k de4dot.snk
2011-11-12 14:08:25 +01:00
de4dot
d7ed7abb99
Add removeGuaranteedDeadBlock() method
2011-11-12 13:27:24 +01:00
de4dot
572d9d376d
Update version: 1.2.1
2011-11-11 21:00:42 +01:00
de4dot
a3e7d9c9d6
Update version: 1.2.0
2011-11-10 14:55:40 +01:00
de4dot
1302608470
Move getInstruction() to DotNetUtils.cs
2011-11-09 11:28:09 +01:00
de4dot
75a464a7f4
Merge branch 'master' into dnr
2011-11-05 14:27:40 +01:00
de4dot
c66c062753
Fix problem when HasPInvokeInfo == true but PInvokeInfo == null
2011-11-05 07:46:24 +01:00
de4dot
30f713f8f8
Rename isDelegateType() -> derivesFromDelegate()
2011-11-04 00:39:48 +01:00
de4dot
76241db427
Add isDelegate() method
2011-11-04 00:06:25 +01:00
de4dot
c1820f1a82
Add method to replace generic params with generic args.
...
The code only handles basic cases, eg. T -> int, but not T[] -> int[].
2011-11-03 22:53:04 +01:00
de4dot
555ca393e2
No need to check for typedef since it's checked elsewhere
2011-11-03 18:52:21 +01:00
de4dot
3dd8649859
Merge branch 'master' into dnr
2011-11-03 07:11:10 +01:00
de4dot
f351a09564
Update symbol renamer to load referenced assemblies.
...
This way it's possible to use a rename-all regex (.*) without renaming
symbols that shouldn't be renamed (eg. methods that are defined in an
interface in a non-deobfuscated module, eg. Dispose()). A warning is
displayed if an assembly can't be loaded.
2011-11-03 06:43:33 +01:00
de4dot
b8879e74e6
Merge branch 'master' into dnr
2011-11-02 04:26:12 +01:00
de4dot
8b780a4696
Add ScopeAndTokenKey. Make sure other keys are immutable.
2011-11-02 04:14:59 +01:00
de4dot
ade1720d32
Use type cache to look up types (huge speedup in DNR code)
2011-11-02 02:25:07 +01:00
de4dot
f342a481a9
Update Conv_XX emulation. Default case should push unknown int32/64.
2011-11-02 01:19:18 +01:00
de4dot
2fcd13000b
Add option to disable method inlining
2011-11-01 14:18:29 +01:00
de4dot
651072e2d4
Add methods to get ParameterDefinition
2011-10-31 23:56:02 +01:00
de4dot
b530c1a313
Add isSystemObject() method
2011-10-31 19:39:00 +01:00
de4dot
1eedf7cb3e
Update if expr. It was wrong
2011-10-31 19:38:36 +01:00
de4dot
cbf37e8732
Move getLocalVar() and add getArgType()
2011-10-31 19:37:26 +01:00
de4dot
11781b2875
Check for null methods
2011-10-31 00:08:38 +01:00
de4dot
deda2d5d60
Handle case where try handler block is before try block
2011-10-28 01:27:00 +02:00
de4dot
61b1f7a06a
Ignore invalid metadata tokens in code
2011-10-27 15:57:33 +02:00
de4dot
0c0093ff76
Add createLdci4() method
2011-10-26 21:01:38 +02:00
de4dot
349ebc4e72
Make InstructionEmulator class public
2011-10-26 14:17:33 +02:00
de4dot
e92c2ce97b
Use available method, and get rid of useless code
2011-10-24 19:45:31 +02:00
de4dot
129da2e7f9
Set version 1.1.3
2011-10-24 15:48:19 +02:00
de4dot
d9012fbbd3
Make sure we don't get stuck in an infinite loop
2011-10-24 15:12:32 +02:00
de4dot
4d5d1b9089
Inline short methods (for DNR)
2011-10-24 12:45:20 +02:00
de4dot
46309f2f78
New version: 1.1.2
2011-10-23 22:09:27 +02:00
de4dot
779d1a8a31
Update version to 1.1.1
2011-10-23 20:13:25 +02:00
de4dot
b2ac811875
ParameterDefinition.Index is 1-based or 0-based
2011-10-23 20:12:10 +02:00
de4dot
3f1b9152bd
Add CO deobfuscator. Can decrypt embedded assemblies.
2011-10-22 14:31:38 +02:00
de4dot
99bd79e418
Change to version 1.1.0
2011-10-21 22:27:26 +02:00
de4dot
603fa74ceb
Only use DNR hack if methods have same declaring type
2011-10-21 21:47:06 +02:00
de4dot
88f7a31ff1
Print number of removed instructions
2011-10-21 21:35:35 +02:00
de4dot
2ff8a0ea7a
Remove old cflow deobfuscator code
2011-10-21 20:35:13 +02:00
de4dot
d14f52660d
Remove old comments
2011-10-21 20:19:51 +02:00
de4dot
cdd92d1415
Add fix for old DF
2011-10-21 20:14:25 +02:00
de4dot
a594b11254
Remember to add this as first arg if HasThis is set
2011-10-21 19:32:37 +02:00
de4dot
8c2f26bfcb
Replace stloc + ldloc with dup + stloc only if it's a bool local
2011-10-21 18:53:36 +02:00
de4dot
4b3c52c44f
Truncate values when emulating stloc/starg
2011-10-21 18:45:59 +02:00
de4dot
c1290ec3ee
Should be instance variables
2011-10-21 18:05:24 +02:00
de4dot
2bba9e688a
Remove more dead code and useless stores
2011-10-21 18:02:58 +02:00
de4dot
58af131485
Add code to remove dup + pop
2011-10-20 12:29:19 +02:00
de4dot
8e83bc22f2
Update isBranchBlock() method
2011-10-20 05:43:01 +02:00
de4dot
9df4a6c9d2
Undo dup fix
2011-10-20 04:50:58 +02:00
de4dot
948d5c1744
Only use the DNR inline method hack if it's a static method
2011-10-20 03:34:05 +02:00
de4dot
f79b12d4f3
Make sure blocks are laid out in a verifiable order
2011-10-20 02:58:30 +02:00
de4dot
865cfb9536
Get rid of the useless list
2011-10-20 02:45:55 +02:00
de4dot
c8500b4f33
Remove unused local variables
2011-10-20 02:38:44 +02:00
de4dot
c3d6e25ad7
Add instructions that clear the stack
2011-10-20 01:43:33 +02:00
de4dot
debc4b346a
Nops are removed
2011-10-20 00:47:38 +02:00
de4dot
28f95d386e
Fix problem with dup, and don't include nops
2011-10-20 00:36:30 +02:00
de4dot
d7c61c65fe
Remove pop instrs and code that pushes the value
2011-10-19 15:49:19 +02:00
de4dot
f519d6f6d8
Update switch cflow deob code to handle more cases
2011-10-19 09:13:27 +02:00
de4dot
7fe71a963a
Add inline bool method hack for DNR
2011-10-19 01:53:42 +02:00
de4dot
80acf1d59f
Add switch cflow deobfuscator
2011-10-18 23:31:50 +02:00
de4dot
f374308d1e
Emulate instrs only if last instr is bcc/switch
2011-10-18 08:28:23 +02:00
de4dot
98936364f7
Add code to emulate switch and ldelem
2011-10-18 08:17:21 +02:00
de4dot
de8e63d140
Emulate more instructions
2011-10-17 21:34:00 +02:00
de4dot
122878a094
Update div and rem emu code
2011-10-17 20:19:17 +02:00
de4dot
778bc7e940
Fix some copy paste errors. Update add/sub emu code
2011-10-17 09:06:46 +02:00
de4dot
d34184f811
Return 0 if we emulate x - x
2011-10-17 07:55:06 +02:00
de4dot
fdd3c119f5
Make sure the unknown bool is pushed
2011-10-17 07:51:20 +02:00
de4dot
718cdb0487
Add validMask field to Int32/64Value
2011-10-17 07:28:53 +02:00
de4dot
05065d6ac7
Start work on new cflow deobfuscator
2011-10-17 00:22:22 +02:00
de4dot
9ade539ecd
Update version to 1.0.3
2011-10-08 20:03:10 +02:00
de4dot
d2b621b5b3
Netmodules are better supported now
2011-10-05 08:20:32 +02:00
de4dot
15c715e312
Fix for instructions with invalid targets
2011-10-05 03:36:01 +02:00
de4dot
75752f7388
Added more checks in case metadata is invalid
2011-10-03 09:36:46 +02:00
de4dot
004f25d818
Set version to 1.0.2
2011-09-29 01:29:02 +02:00
de4dot
eeb12adf87
Removed 'in' and 'out' from delegates
2011-09-27 23:42:06 +02:00
de4dot
c257f16787
Methodsrewriter is now working
2011-09-27 22:06:43 +02:00
de4dot
695dd81b43
Merged master
2011-09-27 02:05:46 +02:00
de4dot
e14a18971b
Added a methods rewriter class
2011-09-27 01:48:47 +02:00
de4dot
9945b8b47c
Moved code to blocks assembly
2011-09-24 10:26:29 +02:00