smali语法
一、类型
V | void 空类型,仅用做返回类型 |
Z | boolean布尔型 |
B | byte字节型 |
S | short短整型 16位 |
C | char字符型 |
I | int整型 |
J | long 长整型 64位 |
F | float浮点型 |
D | double双精度型 64位 |
(2)对象
(3)数组(数组维度最多255)
[I | 等同于int[ ] |
[[I | 等同于int[ ][ ] |
v1 第二个local register
v2 p0 第一个parameter register
v3 p1 第二个parameter register
v4 p2 第三个parameter register
p1 I
p2,p3 J
p4 Z
invoke-virtual {v0}, Ljava/lang/Object;->toString();
blah.toString();
![smali语法 - danqingdani - 碳基体](http://img2.ph.126.net/B6bSvnUTeysauX7_2mP3IQ==/6597887803307694882.jpg)
![smali语法 - danqingdani - 碳基体](http://img8.ph.126.net/OYUAETOYccD7ljEeaeJ7UQ==/6597656905865854788.jpg)
publicclass example {
privatestaticintCounter;
public example(){Counter=16;}
![smali语法 - danqingdani - 碳基体](http://img3.ph.126.net/biq6C9eoNUyfde_mpHBcIg==/6597200608541687353.jpg)
publicstaticvoidLoopExample()
{
for(int i =0; i <Counter; i++)
System.out.println("current val for loop: "+ i);
}
![smali语法 - danqingdani - 碳基体](http://img1.ph.126.net/ZXrawvqqOYcru-SzJbfpZQ==/6598090113447100531.jpg)
publicstaticvoidSwitchExample()
{
int val =42;
switch(val){
case1:System.out.println("val 1");break;
case2:System.out.println("val 2");break;
case42:System.out.println("val 42");break;
case5:System.out.println("val 5");break;
default:System.out.println("invalid value");break;
}
}
![smali语法 - danqingdani - 碳基体](http://img2.ph.126.net/HVovxgj-O4-szksd0uRrnQ==/1306606841908785472.jpg)
![smali语法 - danqingdani - 碳基体](http://img6.ph.126.net/GcYm4pDzlffWwxTb9dFSJw==/6598288025540101366.jpg)
publicstaticvoidTryCatchExample()
{
String urlStr ="google.com";
try{
// Get the image
URL url =new URL(urlStr);
InputStreamis= url.openStream();
is.close();
}catch(MalformedURLException e){
// Print out the exception that occurred
System.out.println("Invalid_URL"+ urlStr +" :"+ e.getMessage());
}catch(IOException e){
// Print out the exception that occurred
System.out.println("Unable?to?execute"+ urlStr +":"+ e.getMessage());
}
}
![smali语法 - danqingdani - 碳基体](http://img6.ph.126.net/uK4cuhiA66nS73BhkmcQ9w==/6597539258121749036.jpg)
publicstaticvoidArrayExample()
{
String someArray[]=newString[5];
someArray[0]="set value at index 0";
someArray[1]="index 1 has this value";
if( someArray[0].equals(someArray[1]))
{
System.out.println("array at index 0 = 1 (wont?happen)");
}
}
![smali语法 - danqingdani - 碳基体](http://img5.ph.126.net/s6yowWPp-4SdhWL4ZvYhWg==/6598132994400581365.jpg)
Android恶意代码分析 claud