Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fake Virus Shield AV
package com.deviant.security.shield;
public final class BuildConfig {
public static final String BUILD_TYPE = "debug";
public static final boolean DEBUG;
public static final String FLAVOR = "";
public static final String PACKAGE_NAME = "com.deviant.security.shield";
public static final int VERSION_CODE = 4;
public static final String VERSION_NAME = "2.2";
static {
DEBUG = Boolean.parseBoolean("true");
}
}
package com.deviant.security.shield;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import com.deviant.security.shield.utility.NotificationHelper;
public class MainActivity extends ActionBarActivity {
public static final String PREFS_NAME = "ShieldPrefs";
public boolean isEnabled;
private Menu menu;
SharedPreferences settings;
public MainActivity() {
this.isEnabled = false;
}
private void toggleShield() {
ImageView enableButton = (ImageView) findViewById(R.id.enableButton);
boolean isEnabled = this.settings.getBoolean("isEnabled", false);
Editor editor = this.settings.edit();
MenuItem status = this.menu.findItem(R.id.action_status);
if (isEnabled) {
editor.putBoolean("isEnabled", false);
status.setTitle(R.string.action_status_disabled);
enableButton.setImageResource(R.drawable.shield_disabled);
} else {
editor.putBoolean("isEnabled", true);
status.setTitle(R.string.action_status_enabled);
enableButton.setImageResource(R.drawable.shield_enabled);
}
editor.commit();
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.settings = getSharedPreferences(PREFS_NAME, 0);
setContentView(R.layout.activity_main);
ImageView enableButton = (ImageView) findViewById(R.id.enableButton);
if (this.settings.getBoolean("isEnabled", false)) {
enableButton.setImageResource(R.drawable.shield_enabled);
} else {
enableButton.setImageResource(R.drawable.shield_disabled);
}
enableButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
MainActivity.this.toggleShield();
}
});
new NotificationHelper(getApplicationContext()).createNotification();
}
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;
getMenuInflater().inflate(R.menu.main, menu);
boolean isEnabled = this.settings.getBoolean("isEnabled", false);
MenuItem status = menu.findItem(R.id.action_status);
if (isEnabled) {
status.setTitle(R.string.action_status_enabled);
} else {
status.setTitle(R.string.action_status_disabled);
}
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == 2131165246) {
return true;
} else {
if (id == 2131165245) {
toggleShield();
}
return super.onOptionsItemSelected(item);
}
}
}
package com.deviant.security.shield.utility;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat.Builder;
import com.deviant.security.shield.R;
public class NotificationHelper {
private int NOTIFICATION_ID;
private Builder mBuilder;
private PendingIntent mContentIntent;
private CharSequence mContentTitle;
private Context mContext;
private Notification mNotification;
private NotificationManager mNotificationManager;
public NotificationHelper(Context context) {
this.NOTIFICATION_ID = 1;
this.mContext = context;
}
public void createNotification() {
this.mNotificationManager = (NotificationManager) this.mContext.getSystemService("notification");
this.mBuilder = new Builder(this.mContext);
this.mBuilder.setContentTitle("Scan in progress").setContentText("Scanning for malicious content").setSmallIcon(R.drawable.shield_notification);
this.mBuilder.setContentInfo("0%");
this.mContentIntent = PendingIntent.getActivity(this.mContext, 0, new Intent(), 0);
this.mBuilder.setContentIntent(this.mContentIntent);
new Thread(new Runnable() {
public void run() {
int incr = 0;
while (incr <= 100) {
NotificationHelper.this.mBuilder.setContentInfo(incr + "%");
NotificationHelper.this.mBuilder.setProgress(100, incr, false);
NotificationHelper.this.mNotificationManager.notify(NotificationHelper.this.NOTIFICATION_ID, NotificationHelper.this.mBuilder.build());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
incr++;
}
NotificationHelper.this.mBuilder.setContentTitle("Scan complete");
NotificationHelper.this.mBuilder.setContentText("Your device is secure");
NotificationHelper.this.mBuilder.setProgress(0, 0, false);
NotificationHelper.this.mNotificationManager.notify(NotificationHelper.this.NOTIFICATION_ID, NotificationHelper.this.mBuilder.build());
}
}).start();
}
}
package com.deviant.security.shield;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ToggleButton;
public class Settings extends ActionBarActivity {
public static final String PREFS_NAME = "ShieldPrefs";
SharedPreferences settings;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.settings = getSharedPreferences(PREFS_NAME, 0);
setContentView(R.layout.activity_settings);
ToggleButton toggle1 = (ToggleButton) findViewById(R.id.toggle1);
if (this.settings.getBoolean("realtime", false)) {
toggle1.setChecked(true);
} else {
toggle1.setChecked(false);
}
ToggleButton toggle2 = (ToggleButton) findViewById(R.id.toggle2);
if (this.settings.getBoolean("scanning", false)) {
toggle2.setChecked(true);
return;
} else {
toggle2.setChecked(false);
}
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.settings, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
return item.getItemId() == 2131165250 ? true : super.onOptionsItemSelected(item);
}
public void toggleRealtime(View view) {
Editor editor = this.settings.edit();
ToggleButton toggle = (ToggleButton) findViewById(R.id.toggle1);
if (this.settings.getBoolean("realtime", false)) {
editor.putBoolean("realtime", false);
toggle.setChecked(false);
} else {
editor.putBoolean("realtime", true);
toggle.setChecked(true);
}
editor.commit();
}
public void toggleScanning(View view) {
Editor editor = this.settings.edit();
ToggleButton toggle = (ToggleButton) findViewById(R.id.toggle2);
if (this.settings.getBoolean("scanning", false)) {
editor.putBoolean("scanning", false);
toggle.setChecked(false);
} else {
editor.putBoolean("scanning", true);
toggle.setChecked(true);
}
editor.commit();
}
}
@AlekseyKorzun

Is this source code for Doom 3?

@freeall

Well, that's an overdesigned toggle of one image if ever there was one.

@connorkuehl

This reminds me of the "Enterprise Fizzbuzz" written in Java on /r/shittyprogramming

@scriptingsoul

Wow. That's a lot of money for such crap!

@aaronbuchanan

How impressively disappointing.

@real-napster

Thats why im not Android User... Crap!

@skalski

Why i'm try to work so hard for money... the only thing i must do, is to toggle an image file...

@frog357

Hahaha that serves them right, they kicked me and many others off their crappy market for absolutely nothing. I am personally happy to see them get a black eye like this.

@flying-sheep

@real-napster: because there are shitty apps available? but if you conseqiently hate apple’s app store and microsoft’s store as well because of the assload of shitty apps there, what do you use?

and what this really points out: fuck antivirus software.

@wwin3286tw

This is a part code of android malware
A fake android anti-virus.

Paste by Android Police
中文>
Virus Shield是由名為Deviant Solutions開發的軟體,宣稱可以防止系統被安裝有害程式、確保個人資訊、即時掃瞄應用、設定及多媒體檔案,還能提升電話效能。它甚至宣稱對電池壽命影響極微、可於背景運作,又能封鎖廣告軟體。

不過Android Police指出,經過程式碼解析發現,其實Virus Shield是100%的詐欺軟體,完全不具備任何防護功能,使用者按下掃瞄鍵,它唯一的動作就是將應用中的「X」改成打勾的符號。Android Police並追蹤到Virus Shield的作者之前曾因在某線上論壇中詐騙線上遊戲寶物而被取消會員資格。Android Police並將該app的程式碼公布在Github上以供證明。

@alextsil

"Your device is secure" - Just like that you receive 5star ratings.

@tuky

Reminds me of Lisa's tiger repelling rock™.

@ncbateman

users XD

@timbunch

That is hilariously sad. I think I need to create an app that does nothing for half the cost. And I would promise to not do anything. Just an icon that launches an on/off toggle screen.

@willmorgan

That's a lot of code to do a bunch of sweet fuck all!

@Streusel

woah, so fast!

@danielschulz

This app is more useless than red traffic lights in GTA.

@danielschulz

What kind of people do star this 'project'? 24 and counting...

@chankeypathak

such crap, much money, play store, wow!

@ghost
Unknown commented

The content you are editing has changed. Reload the page and try again.

People who bought that app must be mad

Attach images by dragging & dropping or selecting them. Uploading your files… Unfortunately, we don’t support that file type. Try again with a PNG, GIF, JPG. Yowza, that’s a big file. Try again with an image file smaller than 10MB. This file is empty. Try again with a file that’s not empty. This browser doesn’t support file attachments. We recommend updating to the latest Internet Explorer, Google Chrome, or Firefox. Something went really wrong, and we can’t process that file. Try again.

Nothing to preview

@chymz

Changelog

1.0 : One image
2.0 : Two images
2.2 : Can toggle images !

@fnatalucci

Amazing app! Your life can change after toggle a button..

@xSplit

it is hilarious

@JGibson4

LOL this my friends is classic...

@Dorian

Epic source code is epic!

@nickskull

That is like buying a ticket for this performance - https://www.youtube.com/watch?v=JTEFKFiXSx4

@SharpMan

he will have to put random sleep between 1000 and 1200ms

@Cydrobolt

Nice!

@KOTRET

proof of concept - snake oil, nothing else. or do you think other anti-malware apps for android doing anything else? ;)

@clarmso

Just sleep for 1000 seconds and say "your device is secure"! Nice!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.