Commit Graph

18161 Commits

Author SHA1 Message Date
Adam
1e893da471 Begin multi pass work 2015-07-04 13:35:01 -04:00
Adam
919ad34996 hm 2015-07-03 22:35:28 -04:00
Adam
500037fc45 Cleanup, prepare to detect more ob'd fields. 2015-07-03 18:54:54 -04:00
Adam
6834504e6c Work on detecting setters, for comparison/some fields which are never
cleanly gettd
2015-07-03 18:05:48 -04:00
Adam
18a914184b Don't count non ob'd fields, down to 50 2015-07-03 16:45:19 -04:00
Adam
7eb32d7df1 Something smarter, down to 82 2015-07-03 16:30:30 -04:00
Adam
c5bbe20791 Unused field stuff was harder than i thought 2015-07-03 01:09:01 -04:00
Adam
7b0776d1ec more arith deob 2015-07-02 17:07:57 -04:00
Adam
e5a8ff8268 cleanup, detect func(field * constant).
Sometimes non storing lvt instructions don't give us the correct getter
value eg

if (lvt > field * constant) -> actually if (lvt > field * x)
2015-07-02 13:48:26 -04:00
Adam
1056006b59 Got unused parameter stuff to run again. atm not bothering with
functions that might be overriden.
2015-06-30 14:46:15 -04:00
Adam
91f189add1 fix unused methods again 2015-06-28 20:45:01 -04:00
Adam
b0f5f33e89 Fixup rest of unused method stuff. It appears there are some garbage
fields too places.
2015-06-28 19:32:54 -04:00
Adam
d9f4d257a5 wip removal of unused methods based on execution from init. 2015-06-27 23:47:43 -04:00
Adam
dfcc41b41c I will need to actually perform method invocations during execution to
be able to pass/get the correct underlying types of variables for the
virtual method lookup.
2015-06-26 13:19:51 -04:00
Adam
0543950013 I think my invokevirtual execution is wrong because it doesn't actually
look for virtual methods on the type, which is why my unused method deob
does weird things. I am seeing methods that still exist after running it
that appear to be using non-inversible constants.
2015-06-25 19:07:46 -04:00
Adam
1eee5a48ae store pushes in instruction context too 2015-06-24 14:48:30 -04:00
Adam
85fc94dd57 Thinking on modinverse 2015-06-23 19:29:32 -04:00
Adam
815b2e2931 works. splitting blocks by instructions jumped to and not checking
whether inlinable blocks were terminal.
2015-06-20 18:39:40 -04:00
Adam
713db7777f remove stack of ifs in illegal state ex deob, get rid of using pcs in
frame to execute, need to remove more of this later, make jumps jump to
instructions, doesn't yet work
2015-06-20 17:56:46 -04:00
Adam
98d85c646b illegal state exception deob, ff doesnt fully like it yet though 2015-06-19 23:30:03 -04:00
Adam
d3142d83ce Simplify jump deob, just destroy and rebuld jump graph instead of trying
to update it which sucks.
2015-06-18 16:49:47 -04:00
Adam
cb172775d4 Don't try and move jumps around in exceptions 2015-06-17 19:03:00 -04:00
Adam
db6269ba7e debugging, idr, exception handler execution support 2015-06-13 21:51:06 -04:00
Adam
6cac8c1cc9 Move deobfuscation methods to their own files 2015-06-13 14:24:04 -04:00
Adam
3140a51f3f Conflicts:
src/main/java/info/sigterm/deob/Deob.java
	src/main/java/info/sigterm/deob/attributes/code/Instructions.java
2015-06-13 11:09:34 -04:00
Adam
a677e64aac Remove unused parameters 2015-06-13 11:01:46 -04:00
Adam
eb986ba708 Eclipse code cleanup 2015-05-31 16:04:57 -04:00
Adam
0fcbcd262c new execute stuff 2015-05-31 16:03:37 -04:00
Adam
1e34e0ec66 Remove instructions correctly 2015-05-11 10:26:48 -04:00
Adam
64d41c6f92 Cleanup block removal 2015-05-11 10:25:00 -04:00
Adam
fa3e9c0262 Hard to follow, exception removal and unused block (only from the now
removed exceptions from what I can tell)
2015-05-10 16:42:47 -04:00
Adam
2edf9d2117 clinit 2015-05-10 15:44:43 -04:00
Adam
ba7486b98b Descriptor stuff 2015-05-10 15:06:50 -04:00
Adam
4af719032d Allow pool to be dynamically rebuilt 2015-05-09 17:00:30 -04:00
Adam
0d21d49d2d Can detect unused parameters 2015-05-05 13:36:54 -04:00
Adam
e70466fc0a Add local var table instruction type and make relevant instructions
implement it
2015-05-04 15:36:38 -04:00
Adam
267efc7940 Remove unused methods 2015-04-25 15:30:22 -04:00
Adam
a9f953b46a Class writing, call graph, eclipse project 2015-04-25 12:47:06 -04:00
Adam
4dc6bfc949 Doesn't execute all paths correctly 2015-02-08 16:35:58 -05:00
Adam
d00e5b03e1 Doesn't work and I don't know why 2015-02-01 22:19:28 -05:00
Adam
027dc6eff9 Some thinking about exceptions 2015-02-01 21:15:14 -05:00
Adam
763d82379e Add eclipse project file 2015-02-01 18:06:18 -05:00
Adam
e38b4c5212 More execution work 2015-02-01 17:49:33 -05:00
Adam
cec4f0ac59 getObject on String should really just return the string 2015-01-26 02:25:42 -05:00
Adam
55dca4fa9b Executor work 2015-01-26 00:40:54 -05:00
Adam
a998491133 Invokeinterface, among others 2014-12-09 02:00:19 -05:00
Adam
463b6df138 Array stuff needs more thinking. 2014-12-05 17:18:16 -05:00
Adam
ea366191ea Some branching/jumping 2014-12-05 16:26:07 -05:00
Adam
ea556bef32 Most other instructions except for function calls and locking 2014-12-04 16:05:41 -05:00
Adam
98b4025a81 More instructions 2014-12-03 14:50:21 -05:00