419e0da7c1Don't delete constructors because it might containe stuff we actually want. Instead rename to init and invoke from constructors. Magic.
Adam
2016-03-11 20:59:48 -05:00
6e79aece20Some injecting classes now works
Adam
2016-03-11 17:34:09 -05:00
2cbdec1798Beginning work on inject replace
Adam
2016-03-11 14:31:31 -05:00
fc452f2008Replace/ObfuscatedOverride
Adam
2016-03-11 14:29:15 -05:00
61f6191228invoker injection.
Adam
2016-03-11 00:26:00 -05:00
06c6c5d3b0constant 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.
Adam
2016-03-10 23:40:48 -05:00
d888d94fe3ObfuscatedSignature, still on 16/17
Adam
2016-03-10 23:29:42 -05:00
f64fd20d58Also constructor
Adam
2016-03-10 23:26:43 -05:00
87b0a36fbbObfuscated Signature
Adam
2016-03-10 23:24:04 -05:00
575deaf992Sort 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.
Adam
2016-03-10 19:35:55 -05:00
d130a2fb4fHack to make packet mapping stop at the end of the packet handler
Adam
2016-03-10 18:02:56 -05:00
c616eba91817 was the same as 16, add deobbed 16 jar
Adam
2016-03-06 21:24:55 -05:00
3dce3934c4Try 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.
Adam
2016-03-06 17:36:23 -05:00
ec6fb4bc11Might be easier to not put this under my package since my tools dont expect it there
Adam
2016-03-06 17:10:29 -05:00
d73a52b9fbAlso export packet handler, needed for packet mappings
Adam
2016-03-06 16:52:06 -05:00
13160a1ae5package, netscape resources. builds.
Adam
2016-03-06 15:53:22 -05:00
f4f8649b00gamepack 16 3/5/16
Adam
2016-03-06 15:42:40 -05:00
c6d3620ab7Method injection works, need to @Import annotate stuff though probably.
Adam
2016-03-06 15:28:11 -05:00
bb81dcf260Import bugfixes. Need to @Import annotations etc since it can't pick up methods from the api atm
Adam
2016-03-05 23:34:47 -05:00
81c5c3831cMerge branch 'master+rename5' of bitbucket.org:Adam-/jbytecode into master+rename5
Adam
2016-03-04 15:37:23 -05:00
f809d2a793Begin inject
Adam
2016-03-04 15:37:12 -05:00
158a4219aeclient 17
Adam
2016-03-03 20:31:10 -05:00
a16a8a5a38Begin moving code to do mapping to core. Write out annotation mapper.
Adam
2016-02-28 19:39:16 -05:00
7b46ae596fOnce again produces code that compiles
Adam
2016-02-28 11:44:24 -05:00
a97ee8881cThis was hard to find. Seems to work better? Old code here was finding wildly irrelevant funcs. Just use the renamer code.
Adam
2016-02-27 23:04:44 -05:00
63272b915bTrying to get deob running again. Somethings broken.
Adam
2016-02-27 16:32:22 -05:00
6eeeaf0716I don't know if this is right. Seeing some dead code still left in which is concerning.
Adam
2016-02-27 16:10:13 -05:00
fc82bb8a21Generated garbage code will make negative sized arrays
Adam
2016-02-27 14:53:02 -05:00
1d2a7ba82cAdd RL mappings for the old jars
Adam
2016-02-27 13:43:04 -05:00
92b053548aFix handling invokevirtual on static methods
Adam
2016-02-27 13:37:41 -05:00
fb4ee1ac9bStore return stack pop with stack context instead of what I was trying to do before
Adam
2016-02-27 12:58:44 -05:00
5fea3a9c31Map multiple field comparison ifs, this maps all of my test rl fields
Adam
2016-02-27 12:33:13 -05:00
19f2807c86Mapping 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.
Adam
2016-02-27 11:38:44 -05:00
83f338a2e9Dont know if this is right, but the pkt handlers at least can be picked up now.
Adam
2016-02-14 18:33:51 -05:00
3294e1add0This took awhile to find.
Adam
2016-02-14 15:21:05 -05:00
d9fc79bba5Test to see how many of the RL fields are mapped. Most but not all.
Adam
2016-02-14 00:10:00 -05:00
4d81829128Beginning of rename deob
Adam
2016-02-13 23:38:58 -05:00
8f6efa7717Remove old graph stuff, all tests pass
Adam
2016-02-13 22:51:11 -05:00
c1bd2d199eFix tests
Adam
2016-02-13 22:28:40 -05:00
770e1f6b2fresolve multidimensional arrays
Adam
2016-02-13 20:54:44 -05:00
d833b53646map value of putfields
Adam
2016-02-13 19:00:18 -05:00
71e0a6d996Require frames to be crashed too to not map, adds +100
Adam
2016-02-13 18:48:43 -05:00
bcc74c6256Map field of invoked object too
Adam
2016-02-13 18:02:20 -05:00
66e9960596this wont work because exception handlers arent run so it wont see all returns
Adam
2016-02-13 17:07:01 -05:00
8efd637a87Attempt to map non static methods using PME too
Adam
2016-02-12 15:34:52 -05:00
466da0bcb3Map invoke arguments
Adam
2016-02-12 15:11:15 -05:00
1272d7b263Compare method signatures when comparing invokes
Adam
2016-02-12 15:00:41 -05:00
bf03c60731Map fields from ifs
Adam
2016-02-12 14:56:32 -05:00
cdc949abe0pop stack more, I dont know if this is right, but maps a couple more fields
Adam
2016-02-12 13:30:01 -05:00
d4b148f72aIncluding mapper map stuff in
Adam
2016-02-12 12:03:49 -05:00
4021e3d02fInteresting work using pme to detect method equality
Adam
2016-02-11 22:54:18 -05:00
602afc964cMake isSame sanity check more in set/put field and invokes
Adam
2016-02-10 20:33:45 -05:00
2bfbe1f239This 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?
Adam
2016-02-09 19:45:39 -05:00
0662e74369I dont know why this runs forever.
Adam
2016-02-07 21:03:20 -05:00
c4bf4f65dfActually I think I can just stop the frame if it crashes. This runs forever for some reason.
Adam
2016-02-07 14:27:19 -05:00
6906c81455Mapping of static methods when stepping out in pme
Adam
2016-02-07 11:32:18 -05:00
9b2bda10cbThis file was important
Adam
2016-02-06 16:10:15 -05:00
74100b152dTrack array stores too, seems to run?
Adam
2016-02-06 13:28:41 -05:00
2854abfb08init field order fix
Adam
2016-02-05 20:22:13 -05:00
e9103882b4Also ignore javax. Now on init order ob.
Adam
2016-02-05 18:39:54 -05:00
dd0a96436eifnonnull vs ifnull
Adam
2016-02-05 16:00:51 -05:00
e2afbd3b98Working on all tests again, hitting more ifconds not lining up
Adam
2016-02-05 15:54:33 -05:00
54b83ebda5Forget trying to keep a 1<->1 of the frames
Adam
2016-02-05 14:57:38 -05:00
ac9282da76I think i see why.
Adam
2016-02-03 21:25:58 -05:00
4aa8b23dfdwell this gets further
Adam
2016-02-01 20:14:57 -05:00
949ce54fb9I think i see why.
Adam
2016-02-01 16:59:41 -05:00
3faa876ff7this is all wrong
Adam
2016-01-31 22:18:57 -05:00
9d3ba7e1cfXXX 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.
Adam
2016-01-31 20:49:54 -05:00
8e73f37ebaboolean ifeq vs ificmpne. I want to unwrap these smaller ifs into larger ones to simplify code.
Adam
2016-01-30 16:29:22 -05:00
cbe45eddfeKeep real type of stack contexts, which I think I need later. Exec test passes, not sure of other implications of this.
Adam
2016-01-30 15:56:36 -05:00
2a3b9158eaifcmpge vs ifcmplt
Adam
2016-01-30 14:06:23 -05:00
2b4c47fb25ifacmpeq vs ifnonnull, ifeq vs ificmpne
Adam
2016-01-30 13:56:58 -05:00
234e42a319Fix previous commit
Adam
2016-01-30 13:52:35 -05:00
f96f9b6c02ificmpne to ificmpeq
Adam
2016-01-30 11:31:52 -05:00
d24411e63fMake test files configurable
Adam
2016-01-30 11:14:02 -05:00
c8d29e3be4Should 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.
Adam
2016-01-29 21:52:39 -05:00
fac66bfe52Test all deep
Adam
2016-01-25 16:32:33 -05:00
91ff039691I dont know if this is right but test all passes again
Adam
2016-01-25 16:27:53 -05:00
6da0b66b2fMerge branch 'master+rename5' into HEAD
Adam
2016-01-25 16:22:03 -05:00
e5e101214cahhhhhhhhhhhhhhhhhhh
Adam
2016-01-25 16:13:21 -05:00
b816944029hm this is horrible
Adam
2016-01-25 14:43:55 -05:00
951a6699c8711 vs 742 but not the same
Adam
2016-01-25 13:44:08 -05:00
a0a2054187ifacmpeq vs ifacmpne, fix ordering methods on initial mappings
Adam
2016-01-25 12:00:12 -05:00
1bbb2f2250ifle <-> ifgt, work on all mapping test
Adam
2016-01-25 11:41:44 -05:00
a56e2b2783Experimenting with using parallel executor for all mapping
Adam
2016-01-24 13:22:10 -05:00
d328551750Trying to see if I can run pme on client init. Failing between unequal number of java string invokes
Adam
2016-01-17 20:29:23 -05:00
c632beac50another test
Adam
2016-01-17 17:00:43 -05:00
a82a9ba4b9I 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
Adam
2016-01-17 11:32:14 -05:00
67d8bfed47I don't know why this is failing
Adam
2016-01-14 21:02:07 -05:00
90d5f5ead0Add to test
Adam
2016-01-13 18:16:39 -05:00
35ca054da8mappable test seems to not work well, I think because of static methods
Adam
2016-01-13 18:02:36 -05:00
3b4ea9ce0dMore tests
Adam
2016-01-13 14:58:15 -05:00
28abf2f343mapOtherBranch stuff, seems to run
Adam
2016-01-13 12:34:05 -05:00
99c51051feBegan thinking about this branch thing
Adam
2016-01-13 10:31:33 -05:00
47b30983cbAdd to test
Adam
2016-01-11 12:23:03 -05:00