1168 Commits

Author SHA1 Message Date
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
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
2a0192cec1 Use a consistent error message for common superclass lookup
git-svn-id: https://smali.googlecode.com/svn/trunk@571 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 00:54:53 +00:00
JesusFreke@JesusFreke.com
41d8cd7df2 use spaces instead of tabs in deodexerant
git-svn-id: https://smali.googlecode.com/svn/trunk@570 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-24 00:54:48 +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
7eef1e37e7 Add addition "FirstInstrucitonTest" method to the deodex_test1 baksmali test
git-svn-id: https://smali.googlecode.com/svn/trunk@563 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:10:37 +00:00
JesusFreke@JesusFreke.com
daa8cef392 Add new RecursiveExceptionHandler example
git-svn-id: https://smali.googlecode.com/svn/trunk@562 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:10:30 +00:00
JesusFreke@JesusFreke.com
b2e1e2067d deodex refactoring part 1
Significantly simplified how instructions are handled in baksmali. Normal
disassembly seems to be working, deodexing definitely not.

git-svn-id: https://smali.googlecode.com/svn/trunk@561 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:10:23 +00:00
JesusFreke@JesusFreke.com
575bd4ce54 Remove unused 'fixed' field from DeodexUtil.insn
git-svn-id: https://smali.googlecode.com/svn/trunk@560 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:09:51 +00:00
JesusFreke@JesusFreke.com
563bc66041 whitespace change
git-svn-id: https://smali.googlecode.com/svn/trunk@559 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:09: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
1f478c3228 Added comment for Deodexerant class
git-svn-id: https://smali.googlecode.com/svn/trunk@557 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 08:09:26 +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
a3a9f0fe82 Wording change in the error message that smali outputs when it encounters an odexed instruction
git-svn-id: https://smali.googlecode.com/svn/trunk@547 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:38:49 +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