240 Commits

Author SHA1 Message Date
JesusFreke@JesusFreke.com
b239745290 Implemented verification for aget/aget-boolean/aget-byte/aget-char/aget-short
git-svn-id: https://smali.googlecode.com/svn/trunk@587 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-25 00:20:56 +00:00
JesusFreke@JesusFreke.com
16a709ba04 Implemented verification for if-ltz/gez/gtz/lez
git-svn-id: https://smali.googlecode.com/svn/trunk@586 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 20:44:05 +00:00
JesusFreke@JesusFreke.com
cb00252b6a Implemented verification for if-eqz/nez
git-svn-id: https://smali.googlecode.com/svn/trunk@585 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 20:43:59 +00:00
JesusFreke@JesusFreke.com
150acd9db9 Implemented verification for if-lt/ge/gt/le
git-svn-id: https://smali.googlecode.com/svn/trunk@584 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 20:43:52 +00:00
JesusFreke@JesusFreke.com
aba6bb0bbd Implemented verification for if-eq and if-ne
git-svn-id: https://smali.googlecode.com/svn/trunk@583 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 20:14:53 +00:00
JesusFreke@JesusFreke.com
f1a74cea19 Implemented verification for float/double/long comparison instructions
git-svn-id: https://smali.googlecode.com/svn/trunk@582 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 19:54:01 +00:00
JesusFreke@JesusFreke.com
b7e7811527 Fix how the address for the array data is calculated
git-svn-id: https://smali.googlecode.com/svn/trunk@581 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 19:35:35 +00:00
JesusFreke@JesusFreke.com
cda44f70cf Implemented verification for packed-switch and sparse-switch
git-svn-id: https://smali.googlecode.com/svn/trunk@580 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 19:33:38 +00:00
JesusFreke@JesusFreke.com
898edda7ce Implemented verification for goto/16/32
git-svn-id: https://smali.googlecode.com/svn/trunk@579 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 19:19:27 +00:00
JesusFreke@JesusFreke.com
ed140ca3e4 Implemented verification for throw
git-svn-id: https://smali.googlecode.com/svn/trunk@578 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 19:17:41 +00:00
JesusFreke@JesusFreke.com
472d3ea584 Implemented verification for fill-array-data
git-svn-id: https://smali.googlecode.com/svn/trunk@577 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 07:52:55 +00:00
JesusFreke@JesusFreke.com
ac8785e5d5 Implemented verification for filled-new-array/range
git-svn-id: https://smali.googlecode.com/svn/trunk@576 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 03:40:43 +00:00
JesusFreke@JesusFreke.com
9e5dd85d83 Implemented verification for filled-new-array
git-svn-id: https://smali.googlecode.com/svn/trunk@575 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 03:06:38 +00:00
JesusFreke@JesusFreke.com
fffb29fd9d Implement ClassPath class, refactor analysis code to use new ClassPath functionality, start adding verification for individual opcodes
git-svn-id: https://smali.googlecode.com/svn/trunk@574 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 00:55:17 +00:00
JesusFreke@JesusFreke.com
2d5d83efca whitespace changes
git-svn-id: https://smali.googlecode.com/svn/trunk@573 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 00:55:05 +00:00
JesusFreke@JesusFreke.com
baabf9a11b Add the SETS_REGISTER flag to Opcode
git-svn-id: https://smali.googlecode.com/svn/trunk@572 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 00:54:59 +00:00
JesusFreke@JesusFreke.com
d27ca7f7a6 Initial commit of analysis stuff.
So far, it only builds the AnalyzedInstruction list, and populates the
predecessors/successors of each instruction

git-svn-id: https://smali.googlecode.com/svn/trunk@566 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:11:00 +00:00
JesusFreke@JesusFreke.com
f3a83f9e4c Minor comment change
git-svn-id: https://smali.googlecode.com/svn/trunk@565 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:10:50 +00:00
JesusFreke@JesusFreke.com
8fcc31d5f2 Add new CAN_CONTINUE flag to Opcode
git-svn-id: https://smali.googlecode.com/svn/trunk@564 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:10:43 +00:00
JesusFreke@JesusFreke.com
42e4ef4892 Refactor the opcode enum to have a flags field, to store the odexOnly and canThrow flags
And get rid of the instructionThrowTable in DeodexUtil

git-svn-id: https://smali.googlecode.com/svn/trunk@558 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:09:35 +00:00
JesusFreke@JesusFreke.com
f568b80d16 Moved DeodexUtil and Deodexerant classes to baksmali
git-svn-id: https://smali.googlecode.com/svn/trunk@556 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:09:19 +00:00
JesusFreke@JesusFreke.com
8a8b2a988b Minor cleanup in DeodexUtil
git-svn-id: https://smali.googlecode.com/svn/trunk@555 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:56:38 +00:00
JesusFreke@JesusFreke.com
6512a81a11 whitespace and comment changes
git-svn-id: https://smali.googlecode.com/svn/trunk@554 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:56:31 +00:00
JesusFreke@JesusFreke.com
096d4ec5ca Use getMethodString() instead of combining separate parts in DeodexUtil.deodexerizeCode()
git-svn-id: https://smali.googlecode.com/svn/trunk@553 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:56:25 +00:00
JesusFreke@JesusFreke.com
16a911620c General cleanup/refactoring/maintentance
- Added some additional context information for exceptions in various locations
- Refactored all code offsets so that they use 2-byte code block address, instead of a byte offset.
- Additionally changed all "offset" terminology refering to code offsets to "address" instead
- Changed the way the getItemByIndex and getOffsettedItemByOffset work, so that they throw an
exception if the index/offset is -1/0.
- Added additional getOptionalItemByIndex and getOptionalOffsettedItemByOffset methods, to be used
in the cases where an index/offset of -1/0 is valid, to indicate the absence of an item
- Other misc cleanup/maintentance

git-svn-id: https://smali.googlecode.com/svn/trunk@552 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:56:16 +00:00
JesusFreke@JesusFreke.com
3ae5a27b60 Remove unused InstructionWriter class
git-svn-id: https://smali.googlecode.com/svn/trunk@551 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:55:08 +00:00
JesusFreke@JesusFreke.com
25df744c31 Delete unused InstructionReader class
git-svn-id: https://smali.googlecode.com/svn/trunk@550 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:55:02 +00:00
JesusFreke@JesusFreke.com
4610bfd7a9 Add FiveRegisterInstruction and RegisterRangeInstruction interfaces
Implement new interfaces on appropriate Instruction classes

git-svn-id: https://smali.googlecode.com/svn/trunk@549 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:13:09 +00:00
JesusFreke@JesusFreke.com
4238ac2dd1 Add missing interfaces to a couple of Instruction classes
git-svn-id: https://smali.googlecode.com/svn/trunk@548 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:12:55 +00:00
JesusFreke@JesusFreke.com
0f78b15cd7 Change the enum name of the execute-inline instruction from INVOKE_EXECUTE_INLINE to EXECUTE_INLINE
git-svn-id: https://smali.googlecode.com/svn/trunk@546 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:36:09 +00:00
JesusFreke@JesusFreke.com
1c6b6d7591 whitespace change
git-svn-id: https://smali.googlecode.com/svn/trunk@545 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:36:01 +00:00
JesusFreke@JesusFreke.com
be2472d6d7 Add support for the upcoming execute-inline/range odexed instruction
git-svn-id: https://smali.googlecode.com/svn/trunk@544 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:35:54 +00:00
JesusFreke@JesusFreke.com
c043c35800 Add execute-inline to the list of instructions that can throw an exception
git-svn-id: https://smali.googlecode.com/svn/trunk@543 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:35:42 +00:00
JesusFreke@JesusFreke.com
c9c2ec3d48 Add "support" for odexed instructions using Format3rms
Also, change the name of the invoke-*-range-quick opcodes to invoke-*-quick/range,
to be consistent with the naming scheme of non-odexed opcodes

git-svn-id: https://smali.googlecode.com/svn/trunk@542 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:35:35 +00:00
JesusFreke@JesusFreke.com
da3b7b1150 change execute_inline to execute-inline, for consistency
git-svn-id: https://smali.googlecode.com/svn/trunk@538 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-31 22:34:37 +00:00
JesusFreke@JesusFreke.com
f29d8ae0b1 fix spelling of propogateRegisters method
git-svn-id: https://smali.googlecode.com/svn/trunk@529 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:06:09 +00:00
JesusFreke@JesusFreke.com
37885c5f82 Fix possible NPE
git-svn-id: https://smali.googlecode.com/svn/trunk@528 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:06:03 +00:00
JesusFreke@JesusFreke.com
64c389570e Resolve inline methods lazily, to prevent issues when types for unused inline methods aren't present in the odex file
git-svn-id: https://smali.googlecode.com/svn/trunk@527 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:05:57 +00:00
JesusFreke@JesusFreke.com
f7c84c8c41 return the correct format for Instruction35s
git-svn-id: https://smali.googlecode.com/svn/trunk@526 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:05:50 +00:00
JesusFreke@JesusFreke.com
6325930f67 read in the field offset for Instruction22cs
git-svn-id: https://smali.googlecode.com/svn/trunk@525 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:05:43 +00:00
JesusFreke@JesusFreke.com
ba04c98bce Whitespace fixes
git-svn-id: https://smali.googlecode.com/svn/trunk@523 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:05:28 +00:00
JesusFreke@JesusFreke.com
3ce2b6fcee remove unneeded TODO
git-svn-id: https://smali.googlecode.com/svn/trunk@521 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:08:23 +00:00
JesusFreke@JesusFreke.com
5f758b60b4 fix an issue that occurs when a switch statement is the first instruction in a method
git-svn-id: https://smali.googlecode.com/svn/trunk@520 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:08:14 +00:00
JesusFreke@JesusFreke.com
b145895c49 remove an invalid assert
git-svn-id: https://smali.googlecode.com/svn/trunk@519 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:08:02 +00:00
JesusFreke@JesusFreke.com
146fbfd33a Throw an error if a switch data pseudo-instruction is encountered when auto-fixing a method.
git-svn-id: https://smali.googlecode.com/svn/trunk@518 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:07:44 +00:00
JesusFreke@JesusFreke.com
a8ca776c1d Remove unneeded TODO
git-svn-id: https://smali.googlecode.com/svn/trunk@517 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:07:33 +00:00
JesusFreke@JesusFreke.com
2e52e0e6e4 remove unneeded TODO: and added a new one
git-svn-id: https://smali.googlecode.com/svn/trunk@516 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:07:23 +00:00
JesusFreke@JesusFreke.com
2904f40603 Fix an issue when the current address immediatly after an AdvancePC debug instruction doesn't point to an instruction
git-svn-id: https://smali.googlecode.com/svn/trunk@515 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 23:46:18 +00:00
JesusFreke@JesusFreke.com
2ededb89b9 Don't set the encoded debug info when nothing needed to be changed
git-svn-id: https://smali.googlecode.com/svn/trunk@514 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 23:46:12 +00:00
JesusFreke@JesusFreke.com
e266117407 Add the offset past the end of the last instruction to the sparse arrays that translate between the new and old offsets
git-svn-id: https://smali.googlecode.com/svn/trunk@513 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 23:46:06 +00:00