de4dot
b4cec5acbf
Ignore opt/req modifiers
2012-04-13 05:03:52 +02:00
de4dot
2bf60b17b0
Calli pops the func ptr
2012-04-13 05:03:37 +02:00
de4dot
5c61f7618f
Support invalid try handlers where start == end
2012-04-11 03:11:00 +02:00
de4dot
b97dacbc54
Merge branch 'cs'
2012-04-10 16:32:40 +02:00
de4dot
c756d543c1
Rename PE namespace
2012-04-10 16:32:15 +02:00
de4dot
ffa61e6a89
Move PE code to a common assembly
2012-04-10 15:09:59 +02:00
de4dot
11a5553305
Enable warnings-as-errors in release mode
2012-04-07 21:41:27 +02:00
de4dot
9cfe8431f6
Add shared deobfuscator data/methods
2012-04-04 21:06:10 +02:00
de4dot
ab3c970cf4
Remove useless using statement
2012-03-29 04:52:39 +02:00
de4dot
b323612508
New version: 1.7.4
2012-03-23 10:14:26 +01:00
de4dot
0272a11713
Add XNA public key token
2012-03-21 03:20:59 +01:00
de4dot
6f01d48593
Change getCalledMethods() return type
2012-03-17 20:36:41 +01:00
de4dot
d9aec67fcb
Rename
2012-03-16 22:39:50 +01:00
de4dot
996a245ba3
New version: 1.7.3
2012-03-15 23:39:42 +01:00
de4dot
a0db68742f
Add callsMethod() methods
2012-03-15 19:29:56 +01:00
de4dot
fd18add5a2
Add method to detect .NET type
2012-03-15 19:03:22 +01:00
de4dot
e4fe749559
Use hasInteger() method
2012-03-15 02:19:35 +01:00
de4dot
8c5c055066
New version: 1.7.2
2012-03-11 15:59:36 +01:00
de4dot
f5ee6e3e5e
Move dll files to a bin sub dir
2012-03-10 20:47:42 +01:00
de4dot
8b220697e0
New version: 1.7.1
2012-03-08 19:51:02 +01:00
de4dot
c3c92ebfaa
New version: 1.7.0
2012-03-01 22:14:23 +01:00
de4dot
da1d649ef4
Make sure no generic methods are inlined
2012-02-25 06:33:38 +01:00
de4dot
fb832ca3de
New version: 1.6.1
2012-02-23 16:25:47 +01:00
de4dot
bf0f136ec9
Allow zero target switch instructions
2012-02-12 21:18:57 +01:00
de4dot
f7abb70475
New version: 1.6.0
2012-02-12 18:07:53 +01:00
de4dot
c15773b709
Merge branch 'cv' into next_version
...
Conflicts:
blocks/DotNetUtils.cs
2012-02-12 14:47:24 +01:00
de4dot
ff55be46b6
Rename getField() to getFieldByName() and add a real getField() method
2012-02-12 12:53:36 +01:00
de4dot
51b21c9f9f
Check for invalid locals index
2012-02-08 22:01:47 +01:00
de4dot
18f020912d
Make sure method operand isn't null
2012-02-05 22:52:34 +01:00
de4dot
5bcb0e51c1
Move code to new checkSameMethods() method
2012-02-03 14:21:58 +01:00
de4dot
d4b5744894
Add a paramIndex parameter
2012-02-03 09:42:55 +01:00
de4dot
7a279ebc19
Add copyBodyFromTo() method
2012-02-03 04:24:43 +01:00
de4dot
975d195dbc
Don't need to prefix the method with the class name
2012-02-03 04:24:16 +01:00
de4dot
8e89e011e9
Add method to re-read all blocks
2012-02-03 04:23:08 +01:00
de4dot
01a893a799
Make canInline() virtual and move some logic there
2012-02-02 10:38:56 +01:00
de4dot
f3525d8980
New version: 1.5.1
2012-02-01 08:09:40 +01:00
de4dot
a7fa23e2d8
New version: 1.5.0
2012-01-29 18:58:26 +01:00
de4dot
7762147877
Add createFieldDefinition()
2012-01-28 22:18:28 +01:00
de4dot
96c13fb05e
Cache values to get 30% speed up with some files (DNR)
2012-01-27 03:10:37 +01:00
de4dot
dce16e9f12
Remove useless code
2012-01-27 01:03:41 +01:00
de4dot
887ee7c9e8
Fix method signature
2012-01-27 01:02:17 +01:00
de4dot
cd46fb9793
Don't use iterator for speed
2012-01-27 00:30:53 +01:00
de4dot
cac39b8a01
Don't use cecil coll iterator for speed
2012-01-27 00:16:23 +01:00
de4dot
91cc161a9d
Create instances of common constants
2012-01-26 23:57:37 +01:00
de4dot
247cb2be20
Compare ElementType instead of calling verifyType for speed
2012-01-26 22:40:19 +01:00
de4dot
ec45974605
Speed up getUnknownValue() method. 16-17% execution time -> ~6%
2012-01-26 22:22:24 +01:00
de4dot
5704e90423
Allow inlining value type methods
2012-01-25 12:19:45 +01:00
de4dot
9831dbdcdb
Ignore prefix instrs
2012-01-24 02:28:21 +01:00
de4dot
82dbb2a218
Add matching get hash code method
2012-01-23 09:11:39 +01:00
de4dot
8c946bfd34
Add peek() method
2012-01-22 19:33:20 +01:00
de4dot
7962de961c
Add getModuleTypeCctor() method
2012-01-22 11:15:14 +01:00
de4dot
2dadd773ec
Use ParameterDefinition.Sequence
2012-01-21 20:31:47 +01:00
de4dot
3c85b3f964
Fix toBoolean()
2012-01-21 20:04:13 +01:00
de4dot
f65adc81d8
Inline block if it's a conditional switch branch
2012-01-21 19:57:04 +01:00
de4dot
6a5ddba022
Move methods to base class
2012-01-21 19:55:37 +01:00
de4dot
6c7bcbed79
Use the ThisParameter if available
2012-01-21 19:54:33 +01:00
de4dot
f3f8975f01
If instance explicit, 'this' is 1st param
2012-01-20 19:30:40 +01:00
de4dot
2ad9a9a087
New version: 1.4.4
2012-01-17 05:46:06 +01:00
de4dot
788488dffa
New version: 1.4.3
2012-01-17 03:01:48 +01:00
de4dot
172f497535
Allow null input
2012-01-17 02:51:23 +01:00
de4dot
3d48bceda3
New version: 1.4.2
2012-01-14 12:40:41 +01:00
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