Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
domi007 committed Oct 19, 2013
0 parents commit d3c2dd6
Show file tree
Hide file tree
Showing 10 changed files with 550 additions and 0 deletions.
25 changes: 25 additions & 0 deletions AndroidManifest.xml
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.tomcsanyi.domonkos.silentsms"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="android.uid.system">
<uses-permission android:name="android.permission.SEND_SMS"/>
<permission-group android:name="android.permission-group.MESSAGES"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name="net.tomcsanyi.domonkos.silentsms.SilentSMS"
android:label="@string/app_name"
android:process="com.android.phone">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="net.tomcsanyi.domonkos.silentsms.NetworkService" android:enabled="true">
<intent-filter>
<action android:name="com.android.ZeroSMS.DELIVERED" />
<action android:name="com.android.phone.DELIVERED" />
</intent-filter>
</receiver>
</application>
</manifest>
45 changes: 45 additions & 0 deletions README.md
@@ -0,0 +1,45 @@
SilentSMS
===

An Android-app that can send silent text messages and tell you if the other party received them (= the recipient phone is turned on). It uses reflection and has quite an ugly code in it, but it works ;-). If you want to make it better, fork it and send me a pull request.

It also includes a little telnet-like service which could be used to send silent text messages from any device that can connect to your Android phone (your PC via USB tethering, your other Android device via WiFi tethering etc.). This feature is used for sending automated text messages together with the tmsi-buster tool creating an easy and automated way to uncover a phone number's TMSI.

This code is for educational purposes only, there is no warranty on it, nothing. The author is not responsible for how this code is being used. It's released under GPL (I would have used MIT license, but since there are some paid silent SMS apps I don't want anyone to pay for this code, so GPL it is).

I would like to express my greatest gratitude to Vorex & Kaiyou from Virtualabs for creating ZeroSMS which is the base of SilentSMS. Also a shout out to dnet for creating nfcat which served as a base for the network-service part of the app.

How to install it?
===

1. You will need to turn off code signing on your phone (it is a security risk of course, but you can do it from the recovery menu) OR install Cyanogenmod ROM AND you will need ROOT access to your phone.

2. Download the APK file (signed or unsigned) and connect your phone to your PC

3. Activate USB storage mode and copy the APK over to your phone

4. Open up an adb shell

5. Enter the following commands:
```shell@android:/ # su
shell@android:/ # mount -o rw,remount /system
shell@android:/ # cp /storage/sdcard0/SilentSMS-signed.apk /system/app/SilentSMS-signed.apk
shell@android:/ # reboot```

Your phone will reboot and after it has started up you will see a new app in the menu called SilentSMS

How to remove it?
===
1. Open up an adb shell

2. Enter the following commands:
```shell@android:/ # su
shell@android:/ # mount -o rw,remount /system
shell@android:/ # rm /system/app/SilentSMS-signed.apk
shell@android:/ # reboot```

Troubleshooting
===

1. I can't see the app in the menu
You need to turn off code signing or use Cyanogenmod. If you use the signed APK on a ROM other than Cyanogenmod the app will simply not show up (because of incorrect signatures) or if you use the unsigned APK when code signing is enabled again the app will not show up (because of incorrect signatures)
7 changes: 7 additions & 0 deletions lint.xml
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="NewApi">
<ignore path="src/com/android/smspoofer/SMSpoofer.java" />
<ignore path="src/com/android/zerosms/ZeroSMS.java" />
</issue>
</lint>
36 changes: 36 additions & 0 deletions proguard.cfg
@@ -0,0 +1,36 @@
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembers class * {
native <methods>;
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
14 changes: 14 additions & 0 deletions project.properties
@@ -0,0 +1,14 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-18
Binary file added res/drawable/ic_menu_invite.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added res/drawable/icon.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 53 additions & 0 deletions res/layout/main.xml
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/recipient"
/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/txtPhoneNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="phone"
android:layout_toLeftOf="@+id/btnContact"
android:layout_alignParentLeft="true"
/>
<ImageButton
android:id="@+id/btnContact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/ic_menu_invite" />
</RelativeLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/message"
/>
<EditText
android:id="@+id/txtMessage"
android:layout_width="fill_parent"
android:layout_height="150px"
android:gravity="top"
/>
<Button
android:id="@+id/btnSendSMS"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/send"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
android:id="@+id/output"
/>
</LinearLayout>
12 changes: 12 additions & 0 deletions res/values/strings.xml
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">SilentSMS</string>
<string name="recipient">Recipient phone number:</string>
<string name="message">Message:</string>
<string name="send">Send SMS</string>
<string name="listening">Listening on port %d</string>
<string name="connected">Client connected from %s</string>
<string name="exception">An exception was thrown: %s</string>
<string name="info" >[INFO] %s</string>
<string name="error">[error] %s</string>
</resources>

0 comments on commit d3c2dd6

Please sign in to comment.