Commit Graph
430 Commits
Author SHA1 Message Date
Adam 7b46ae596f Once again produces code that compiles 2016-02-28 11:44:24 -05:00
Adam a97ee8881c This was hard to find. Seems to work better? Old code here was finding wildly irrelevant funcs. Just use the renamer code. 2016-02-27 23:04:44 -05:00
Adam 63272b915b Trying to get deob running again. Somethings broken. 2016-02-27 16:32:22 -05:00
Adam 6eeeaf0716 I don't know if this is right. Seeing some dead code still left in which is concerning. 2016-02-27 16:10:13 -05:00
Adam fc82bb8a21 Generated garbage code will make negative sized arrays 2016-02-27 14:53:02 -05:00
Adam 1d2a7ba82c Add RL mappings for the old jars 2016-02-27 13:43:04 -05:00
Adam 92b053548a Fix handling invokevirtual on static methods 2016-02-27 13:37:41 -05:00
Adam fb4ee1ac9b Store return stack pop with stack context instead of what I was trying to do before 2016-02-27 12:58:44 -05:00
Adam 5fea3a9c31 Map multiple field comparison ifs, this maps all of my test rl fields 2016-02-27 12:33:13 -05:00
Adam 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. 2016-02-27 11:38:44 -05:00
Adam 83f338a2e9 Dont know if this is right, but the pkt handlers at least can be picked up now. 2016-02-14 18:33:51 -05:00
Adam 3294e1add0 This took awhile to find. 2016-02-14 15:21:05 -05:00
Adam d9fc79bba5 Test to see how many of the RL fields are mapped. Most but not all. 2016-02-14 00:10:00 -05:00
Adam 4d81829128 Beginning of rename deob 2016-02-13 23:38:58 -05:00
Adam 8f6efa7717 Remove old graph stuff, all tests pass 2016-02-13 22:51:11 -05:00
Adam c1bd2d199e Fix tests 2016-02-13 22:28:40 -05:00
Adam 770e1f6b2f resolve multidimensional arrays 2016-02-13 20:54:44 -05:00
Adam d833b53646 map value of putfields 2016-02-13 19:00:18 -05:00
Adam 71e0a6d996 Require frames to be crashed too to not map, adds +100 2016-02-13 18:48:43 -05:00
Adam bcc74c6256 Map field of invoked object too 2016-02-13 18:02:20 -05:00
Adam 66e9960596 this wont work because exception handlers arent run so it wont see all returns 2016-02-13 17:07:01 -05:00
Adam 8efd637a87 Attempt to map non static methods using PME too 2016-02-12 15:34:52 -05:00
Adam 466da0bcb3 Map invoke arguments 2016-02-12 15:11:15 -05:00
Adam 1272d7b263 Compare method signatures when comparing invokes 2016-02-12 15:00:41 -05:00
Adam bf03c60731 Map fields from ifs 2016-02-12 14:56:32 -05:00
Adam cdc949abe0 pop stack more, I dont know if this is right, but maps a couple more fields 2016-02-12 13:30:01 -05:00
Adam d4b148f72a Including mapper map stuff in 2016-02-12 12:03:49 -05:00
Adam 4021e3d02f Interesting work using pme to detect method equality 2016-02-11 22:54:18 -05:00
Adam 602afc964c Make isSame sanity check more in set/put field and invokes 2016-02-10 20:33:45 -05:00
Adam 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?
2016-02-09 19:45:39 -05:00
Adam 0662e74369 I dont know why this runs forever. 2016-02-07 21:03:20 -05:00
Adam c4bf4f65df Actually I think I can just stop the frame if it crashes. This runs forever for some reason. 2016-02-07 14:27:19 -05:00
Adam 6906c81455 Mapping of static methods when stepping out in pme 2016-02-07 11:32:18 -05:00
Adam 9b2bda10cb This file was important 2016-02-06 16:10:15 -05:00
Adam 74100b152d Track array stores too, seems to run? 2016-02-06 13:28:41 -05:00
Adam 2854abfb08 init field order fix 2016-02-05 20:22:13 -05:00
Adam e9103882b4 Also ignore javax. Now on init order ob. 2016-02-05 18:39:54 -05:00
Adam dd0a96436e ifnonnull vs ifnull 2016-02-05 16:00:51 -05:00
Adam e2afbd3b98 Working on all tests again, hitting more ifconds not lining up 2016-02-05 15:54:33 -05:00
Adam 54b83ebda5 Forget trying to keep a 1<->1 of the frames
I guess this makes it a little more robust but is less complex.
The previous test function actually had code changes it seems and
so I moved it to a simplier function which seems to pass ok..
2016-02-05 14:57:38 -05:00
Adam ac9282da76 I think i see why. 2016-02-03 21:25:58 -05:00
Adam 4aa8b23dfd well this gets further 2016-02-01 20:14:57 -05:00
Adam 949ce54fb9 I think i see why. 2016-02-01 16:59:41 -05:00
Adam 3faa876ff7 this is all wrong 2016-01-31 22:18:57 -05:00
Adam 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.
2016-01-31 20:49:54 -05:00
Adam 8e73f37eba boolean ifeq vs ificmpne. I want to unwrap these smaller ifs into larger ones to simplify code. 2016-01-30 16:29:22 -05:00
Adam cbe45eddfe Keep real type of stack contexts, which I think I need later. Exec test passes, not sure of other implications of this. 2016-01-30 15:56:36 -05:00
Adam 2a3b9158ea ifcmpge vs ifcmplt 2016-01-30 14:06:23 -05:00
Adam 2b4c47fb25 ifacmpeq vs ifnonnull, ifeq vs ificmpne 2016-01-30 13:56:58 -05:00
Adam 234e42a319 Fix previous commit 2016-01-30 13:52:35 -05:00