419e0da7c1
Don't delete constructors because it might containe stuff we actually want. Instead rename to init and invoke from constructors. Magic.
Adam2016-03-11 20:59:48 -05:00
6e79aece20
Some injecting classes now works
Adam2016-03-11 17:34:09 -05:00
2cbdec1798
Beginning work on inject replace
Adam2016-03-11 14:31:31 -05:00
06c6c5d3b0
constant parameter: annotate methods with constant parameters are @obfuscatedsignature so we can find them later in inject. Remove deobbed 16 jar as it doesnt have up to date annotations anymore.
Adam2016-03-10 23:40:48 -05:00
d888d94fe3
ObfuscatedSignature, still on 16/17
Adam2016-03-10 23:29:42 -05:00
f64fd20d58
Also constructor
Adam2016-03-10 23:26:43 -05:00
575deaf992
Sort stuff isnt required for graph stuff anymore, it was causing order of classes to load to be different when comparing obfuscated jar vs rebuilt jar, which caused class children order to be different, which affects renamer searching for bases which broke the issame comparison in invokeinterface.
Adam2016-03-10 19:35:55 -05:00
d130a2fb4f
Hack to make packet mapping stop at the end of the packet handler
Adam2016-03-10 18:02:56 -05:00
c616eba918
17 was the same as 16, add deobbed 16 jar
Adam2016-03-06 21:24:55 -05:00
3dce3934c4
Try and pull packet info out of source. gamepack 16 and 17 are actually identical, I didn't realize. Interestingly i found if I attempt to map deobbed client that is rebuilt vs the deobbed client, it can't map everything. Some of that might have to do with the packet handling stuff, this currently npes in iinc so I can't tell how many is due to that yet.
Adam2016-03-06 17:36:23 -05:00
ec6fb4bc11
Might be easier to not put this under my package since my tools dont expect it there
Adam2016-03-06 17:10:29 -05:00
d73a52b9fb
Also export packet handler, needed for packet mappings
Adam2016-03-06 16:52:06 -05:00
a16a8a5a38
Begin moving code to do mapping to core. Write out annotation mapper.
Adam2016-02-28 19:39:16 -05:00
7b46ae596f
Once again produces code that compiles
Adam2016-02-28 11:44:24 -05:00
a97ee8881c
This was hard to find. Seems to work better? Old code here was finding wildly irrelevant funcs. Just use the renamer code.
Adam2016-02-27 23:04:44 -05:00
63272b915b
Trying to get deob running again. Somethings broken.
Adam2016-02-27 16:32:22 -05:00
6eeeaf0716
I don't know if this is right. Seeing some dead code still left in which is concerning.
Adam2016-02-27 16:10:13 -05:00
fc82bb8a21
Generated garbage code will make negative sized arrays
Adam2016-02-27 14:53:02 -05:00
1d2a7ba82c
Add RL mappings for the old jars
Adam2016-02-27 13:43:04 -05:00
92b053548a
Fix handling invokevirtual on static methods
Adam2016-02-27 13:37:41 -05:00
fb4ee1ac9b
Store return stack pop with stack context instead of what I was trying to do before
Adam2016-02-27 12:58:44 -05:00
5fea3a9c31
Map multiple field comparison ifs, this maps all of my test rl fields
Adam2016-02-27 12:33:13 -05:00
19f2807c86
Mapping packet handlers works some. Tried to add inlining of results of static methods. Doesnt work well because it inf loops so its disabled usually. I think instead I can track this separately on the stack context and fix resolve() to deal with it.
Adam2016-02-27 11:38:44 -05:00
83f338a2e9
Dont know if this is right, but the pkt handlers at least can be picked up now.
Adam2016-02-14 18:33:51 -05:00
3294e1add0
This took awhile to find.
Adam2016-02-14 15:21:05 -05:00
d9fc79bba5
Test to see how many of the RL fields are mapped. Most but not all.
Adam2016-02-14 00:10:00 -05:00
4d81829128
Beginning of rename deob
Adam2016-02-13 23:38:58 -05:00
8f6efa7717
Remove old graph stuff, all tests pass
Adam2016-02-13 22:51:11 -05:00
1272d7b263
Compare method signatures when comparing invokes
Adam2016-02-12 15:00:41 -05:00
bf03c60731
Map fields from ifs
Adam2016-02-12 14:56:32 -05:00
cdc949abe0
pop stack more, I dont know if this is right, but maps a couple more fields
Adam2016-02-12 13:30:01 -05:00
d4b148f72a
Including mapper map stuff in
Adam2016-02-12 12:03:49 -05:00
4021e3d02f
Interesting work using pme to detect method equality
Adam2016-02-11 22:54:18 -05:00
602afc964c
Make isSame sanity check more in set/put field and invokes
Adam2016-02-10 20:33:45 -05:00
2bfbe1f239
This can map some but not nearly enough. Main problem seems to be the order of the packet handlers is scrambled, as well as their ids. Maybe try detecting/treating the packet handlers as separate "functions" and compare them by seeing if PME can run over both? Maybe try hardening PME mapper to fail more easily (eg setfield of field of two different types, or invoke with wrong signatures?), and then try and brute force methods in general. Can also map methods with unique signatures that are non static method<->method. client clinit?
Adam2016-02-09 19:45:39 -05:00
0662e74369
I dont know why this runs forever.
Adam2016-02-07 21:03:20 -05:00
c4bf4f65df
Actually I think I can just stop the frame if it crashes. This runs forever for some reason.
Adam2016-02-07 14:27:19 -05:00
6906c81455
Mapping of static methods when stepping out in pme
Adam2016-02-07 11:32:18 -05:00
9b2bda10cb
This file was important
Adam2016-02-06 16:10:15 -05:00
2854abfb08
init field order fix
Adam2016-02-05 20:22:13 -05:00
e9103882b4
Also ignore javax. Now on init order ob.
Adam2016-02-05 18:39:54 -05:00
dd0a96436e
ifnonnull vs ifnull
Adam2016-02-05 16:00:51 -05:00
e2afbd3b98
Working on all tests again, hitting more ifconds not lining up
Adam2016-02-05 15:54:33 -05:00
54b83ebda5
Forget trying to keep a 1<->1 of the frames
Adam2016-02-05 14:57:38 -05:00
ac9282da76
I think i see why.
Adam2016-02-03 21:25:58 -05:00
4aa8b23dfd
well this gets further
Adam2016-02-01 20:14:57 -05:00
949ce54fb9
I think i see why.
Adam2016-02-01 16:59:41 -05:00
3faa876ff7
this is all wrong
Adam2016-01-31 22:18:57 -05:00
9d3ba7e1cf
XXX WIP TOTALLYWRONG. pmes are stopping prematurely because returnTo is not being kept across frame dups. if I enable it, i get assert fails on frame.other. This also always steps into invokestatics, for when two are invoked but not really the same function.
Adam2016-01-31 20:49:54 -05:00
8e73f37eba
boolean ifeq vs ificmpne. I want to unwrap these smaller ifs into larger ones to simplify code.
Adam2016-01-30 16:29:22 -05:00
cbe45eddfe
Keep real type of stack contexts, which I think I need later. Exec test passes, not sure of other implications of this.
Adam2016-01-30 15:56:36 -05:00
2a3b9158ea
ifcmpge vs ifcmplt
Adam2016-01-30 14:06:23 -05:00
2b4c47fb25
ifacmpeq vs ifnonnull, ifeq vs ificmpne
Adam2016-01-30 13:56:58 -05:00
f96f9b6c02
ificmpne to ificmpeq
Adam2016-01-30 11:31:52 -05:00
d24411e63f
Make test files configurable
Adam2016-01-30 11:14:02 -05:00
c8d29e3be4
Should be looking up all methods in invokevirtual, not just based off of the pool method and up. With test=true this fails on the constructor inlined constant value obfuscation.
Adam2016-01-29 21:52:39 -05:00
a82a9ba4b9
I guess when I rebuilt the test jar the order of the classes changed, 1->100 not 1->2, which made the class inheritance order inconsistent
Adam2016-01-17 11:32:14 -05:00
67d8bfed47
I don't know why this is failing
Adam2016-01-14 21:02:07 -05:00