240 Commits

Author SHA1 Message Date
JesusFreke@JesusFreke.com
ef24b31c98 Refactor the MethodAnalyzer API so that the instructions are returned as a read-only list
git-svn-id: https://smali.googlecode.com/svn/trunk@662 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-03-03 03:26:17 +00:00
JesusFreke@JesusFreke.com
7974e53f15 Use an integer to hold the state of the MethodAnalyzer, in preparation for splitting the analysis logic into an analysis pass and a verification pass.
git-svn-id: https://smali.googlecode.com/svn/trunk@661 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-03-03 03:25:53 +00:00
JesusFreke@JesusFreke.com
00fc68adf2 Update copyright notices
git-svn-id: https://smali.googlecode.com/svn/trunk@644 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-22 07:04:58 +00:00
JesusFreke@JesusFreke.com
09ee2ce454 When searching for the boot class path files, try alternate file endings as well
git-svn-id: https://smali.googlecode.com/svn/trunk@641 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-22 07:01:58 +00:00
JesusFreke@JesusFreke.com
819e8b92a0 Allow multiple class path directories to be specified
git-svn-id: https://smali.googlecode.com/svn/trunk@639 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-22 07:01:40 +00:00
JesusFreke@JesusFreke.com
e9b722eab0 Misc cleanup
git-svn-id: https://smali.googlecode.com/svn/trunk@638 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-22 07:01:23 +00:00
JesusFreke@JesusFreke.com
0c65e0f4f5 Implemented deodex functionality
git-svn-id: https://smali.googlecode.com/svn/trunk@637 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-22 00:57:15 +00:00
JesusFreke@JesusFreke.com
2ba2d0f16b Use a pre-allocated buffer in Utf8Utils.utf8BytesToString, to avoid having to allocate a buffer on each call
git-svn-id: https://smali.googlecode.com/svn/trunk@636 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-22 00:56:36 +00:00
JesusFreke@JesusFreke.com
d79d9ebbe9 Tweak dexlib's "skip instructions" functionality so that it doesn't read in the CodeItems or DebugInfoItems at all
git-svn-id: https://smali.googlecode.com/svn/trunk@635 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-22 00:56:26 +00:00
JesusFreke@JesusFreke.com
928790f293 remove the "disable interning" functionality in dexlib
- rename the getInterned* methods to intern*
- add a lookup* method to a few item types that performs the same function, except that
it returns null if the item isn't found, instead of interning it

git-svn-id: https://smali.googlecode.com/svn/trunk@632 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-22 00:55:50 +00:00
JesusFreke@JesusFreke.com
3f7739cd09 Add support for specifying a base dir for the BOOTCLASSPATH files
git-svn-id: https://smali.googlecode.com/svn/trunk@629 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-15 02:00:58 +00:00
JesusFreke@JesusFreke.com
20cfe7aa0f After analyzing a method, change any "Unknown" registers to "Uninit"
git-svn-id: https://smali.googlecode.com/svn/trunk@627 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-14 21:57:38 +00:00
JesusFreke@JesusFreke.com
eac512ae67 Add support for the "Uninit" register type
git-svn-id: https://smali.googlecode.com/svn/trunk@626 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-14 21:57:27 +00:00
JesusFreke@JesusFreke.com
1c56c7e750 Add finer grained control of what register information is printed out
git-svn-id: https://smali.googlecode.com/svn/trunk@625 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-14 20:04:59 +00:00
JesusFreke@JesusFreke.com
db385ec3fd Don't load the instructions in a code item when loading the BOOTCLASSPATH dex files
git-svn-id: https://smali.googlecode.com/svn/trunk@623 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-14 20:04:20 +00:00
JesusFreke@JesusFreke.com
1ed567427b Add support for unresolved types. This isn't fatal in all cases
git-svn-id: https://smali.googlecode.com/svn/trunk@622 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-14 20:04:03 +00:00
JesusFreke@JesusFreke.com
c9be5e1303 Tons of fixes related to getting "verbose register info"/type analysis to work
git-svn-id: https://smali.googlecode.com/svn/trunk@621 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-11 00:58:02 +00:00
JesusFreke@JesusFreke.com
7e24a9f010 Preliminary implementation of "verbose register info" functionality
git-svn-id: https://smali.googlecode.com/svn/trunk@620 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:28:37 +00:00
JesusFreke@JesusFreke.com
caea37a7d2 Implemented verification for the literal binary operation instructions
git-svn-id: https://smali.googlecode.com/svn/trunk@619 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:28:24 +00:00
JesusFreke@JesusFreke.com
122eba5cec Implemented verification for the 2-register binary operation instructions
git-svn-id: https://smali.googlecode.com/svn/trunk@618 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:28:18 +00:00
JesusFreke@JesusFreke.com
195e1a1071 Implemented verification for binary operation instructions
git-svn-id: https://smali.googlecode.com/svn/trunk@617 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:28:12 +00:00
JesusFreke@JesusFreke.com
1483cc8e68 Implemented verification for unary operation instructions
git-svn-id: https://smali.googlecode.com/svn/trunk@616 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:28:07 +00:00
JesusFreke@JesusFreke.com
85e17ca30a refactor the validation for source register types
git-svn-id: https://smali.googlecode.com/svn/trunk@615 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:28:01 +00:00
JesusFreke@JesusFreke.com
ee7ca05c81 Change the return value of analyzeInstruction and all the handle* methods from bool to void
git-svn-id: https://smali.googlecode.com/svn/trunk@614 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:27:55 +00:00
JesusFreke@JesusFreke.com
89e1413ef3 Implemented verification for invoke instructions
git-svn-id: https://smali.googlecode.com/svn/trunk@613 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:27:49 +00:00
JesusFreke@JesusFreke.com
300ad56aa3 Add the logic to iterate over all the instructions as the register information for them is updated
git-svn-id: https://smali.googlecode.com/svn/trunk@612 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:27:42 +00:00
JesusFreke@JesusFreke.com
fa323d30a0 When merging register types, an Unknown type and a known type should merge to the known type
git-svn-id: https://smali.googlecode.com/svn/trunk@611 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:27:36 +00:00
JesusFreke@JesusFreke.com
a0314c265e Handle uninitialized referenced appropriately
git-svn-id: https://smali.googlecode.com/svn/trunk@610 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:27:30 +00:00
JesusFreke@JesusFreke.com
b615ba6f51 Add concrete implementations of RegisterIterator for Format35c and Format3rc
git-svn-id: https://smali.googlecode.com/svn/trunk@609 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:27:23 +00:00
JesusFreke@JesusFreke.com
6192896f88 Add pastEnd() method to RegisterIterator
git-svn-id: https://smali.googlecode.com/svn/trunk@608 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:27:18 +00:00
JesusFreke@JesusFreke.com
06d1aacf61 Add getCount() method to RegisterIterator
git-svn-id: https://smali.googlecode.com/svn/trunk@607 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-02-08 02:27:12 +00:00
JesusFreke@JesusFreke.com
6d11e9062d Fix the register check for the source register in handleIputObject, and add misc TODO
git-svn-id: https://smali.googlecode.com/svn/trunk@606 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 07:09:38 +00:00
JesusFreke@JesusFreke.com
51cec00885 Implemented verification for sput-object
git-svn-id: https://smali.googlecode.com/svn/trunk@605 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 07:09:32 +00:00
JesusFreke@JesusFreke.com
f08a9e1c2c Implemented verification for sput-wide
git-svn-id: https://smali.googlecode.com/svn/trunk@604 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 07:09:26 +00:00
JesusFreke@JesusFreke.com
9d45d563fe Implemented verification for sput/sput-boolean/sput-byte/sput-char/sput-short
git-svn-id: https://smali.googlecode.com/svn/trunk@603 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 06:22:11 +00:00
JesusFreke@JesusFreke.com
2d6d6eb22c Implemented verification for sget-object
git-svn-id: https://smali.googlecode.com/svn/trunk@602 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 04:56:23 +00:00
JesusFreke@JesusFreke.com
2f233fefd9 Implemented verification for sget-wide
git-svn-id: https://smali.googlecode.com/svn/trunk@601 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 04:54:00 +00:00
JesusFreke@JesusFreke.com
bd215cd95b Clean up handle32BitPrimitiveSget a bit
git-svn-id: https://smali.googlecode.com/svn/trunk@600 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 04:53:53 +00:00
JesusFreke@JesusFreke.com
052f4890ab Implemented verification for sget/sget-boolean/sget-byte/sget-char/sget-short
git-svn-id: https://smali.googlecode.com/svn/trunk@599 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 04:37:16 +00:00
JesusFreke@JesusFreke.com
50ff624741 Implemented verification for iput-object
git-svn-id: https://smali.googlecode.com/svn/trunk@598 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 03:14:25 +00:00
JesusFreke@JesusFreke.com
92616c9f60 Implemented verification for iput-wide
git-svn-id: https://smali.googlecode.com/svn/trunk@597 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 02:44:59 +00:00
JesusFreke@JesusFreke.com
9971346f4c Implemented verification for iput/iput-boolean/iput-byte/iput-char/iput-short
git-svn-id: https://smali.googlecode.com/svn/trunk@596 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 02:16:59 +00:00
JesusFreke@JesusFreke.com
7a58f2434a Implemented verification for iget-object
git-svn-id: https://smali.googlecode.com/svn/trunk@595 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 02:16:52 +00:00
JesusFreke@JesusFreke.com
9d92fd3748 Implemented verification for iget-wide
git-svn-id: https://smali.googlecode.com/svn/trunk@594 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-27 01:53:53 +00:00
JesusFreke@JesusFreke.com
4f84e8f9e9 Implemented verification for iget/iget-boolean/iget-byte/iget-char/iget-short
git-svn-id: https://smali.googlecode.com/svn/trunk@593 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-26 03:17:42 +00:00
JesusFreke@JesusFreke.com
898e750048 Implemented verification for aput-object
git-svn-id: https://smali.googlecode.com/svn/trunk@592 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-25 02:18:24 +00:00
JesusFreke@JesusFreke.com
55d43e36eb Implemented verification for aput-wide
git-svn-id: https://smali.googlecode.com/svn/trunk@591 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-25 01:55:07 +00:00
JesusFreke@JesusFreke.com
c849236be2 Implemented verification for aput/aput-boolean/aput-byte/aput-char/aput-short
git-svn-id: https://smali.googlecode.com/svn/trunk@590 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-25 01:42:45 +00:00
JesusFreke@JesusFreke.com
461a797324 Implemented verification for aget-object
git-svn-id: https://smali.googlecode.com/svn/trunk@589 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-25 01:05:15 +00:00
JesusFreke@JesusFreke.com
c308b24b62 Implemented verification for aget-wide
git-svn-id: https://smali.googlecode.com/svn/trunk@588 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-25 00:36:52 +00:00