Commit Graph

241 Commits

Author SHA1 Message Date
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