PDA

View Full Version : اس ام اس جعلی



hosseinaryai
سه شنبه 01 مهر 1393, 21:12 عصر
سلام دوستان
توی یه قمستی از برنامه ام میخوام از طرف خود برنامه ام بصورت پیغام گوشیم اس ام اس ارسال بشه .. چطور می تونم این کارو بکنم ؟
یعنی باید از همون کدی که اس ام اس معمولی رو ارسال می کنیم استفاده کنم ؟ یا کد جدایی داره؟
البته این کدو برای ارسال اس ام اس جعلی دارم :
private static void createFakeSms(Context context, String sender, String body) {
//Source: http://stackoverflow.com/a/12338541
//Source: http://blog.dev001.net/post/14085892020/android-generate-incoming-sms-from-within-your-app
byte[] pdu = null;
byte[] scBytes = PhoneNumberUtils
.networkPortionToCalledPartyBCD("0000000000");
byte[] senderBytes = PhoneNumberUtils
.networkPortionToCalledPartyBCD(sender);
int lsmcs = scBytes.length;
byte[] dateBytes = new byte[7];
Calendar calendar = new GregorianCalendar();
dateBytes[0] = reverseByte((byte) (calendar.get(Calendar.YEAR)));
dateBytes[1] = reverseByte((byte) (calendar.get(Calendar.MONTH) + 1));
dateBytes[2] = reverseByte((byte) (calendar.get(Calendar.DAY_OF_MONTH)));
dateBytes[3] = reverseByte((byte) (calendar.get(Calendar.HOUR_OF_DAY)));
dateBytes[4] = reverseByte((byte) (calendar.get(Calendar.MINUTE)));
dateBytes[5] = reverseByte((byte) (calendar.get(Calendar.SECOND)));
dateBytes[6] = reverseByte((byte) ((calendar.get(Calendar.ZONE_OFFSET) + calendar
.get(Calendar.DST_OFFSET)) / (60 * 1000 * 15)));
try {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
bo.write(lsmcs);
bo.write(scBytes);
bo.write(0x04);
bo.write((byte) sender.length());
bo.write(senderBytes);
bo.write(0x00);
bo.write(0x00); // encoding: 0 for default 7bit
bo.write(dateBytes);
try {
String sReflectedClassName = "com.android.internal.telephony.GsmAlphabet";
Class cReflectedNFCExtras = Class.forName(sReflectedClassName);
Method stringToGsm7BitPacked = cReflectedNFCExtras.getMethod(
"stringToGsm7BitPacked", new Class[] { String.class });
stringToGsm7BitPacked.setAccessible(true);
byte[] bodybytes = (byte[]) stringToGsm7BitPacked.invoke(null,
body);
bo.write(bodybytes);
} catch (Exception e) {
}

pdu = bo.toByteArray();
} catch (IOException e) {
}

Intent intent = new Intent();
intent.setClassName("com.android.mms",
"com.android.mms.transaction.SmsReceiverService");
intent.setAction("android.provider.Telephony.SMS_RECEIVED");
intent.putExtra("pdus", new Object[] { pdu });
intent.putExtra("format", "3gpp");
context.startService(intent);
}

private static byte reverseByte(byte b) {
return (byte) ((b & 0xF0) >> 4 | (b & 0x0F) << 4);
}

توی شبیه ساز اس ام اسو نشون میده اما توی گوشی فورس کلوز می کنه

barnamenevisjavan
سه شنبه 01 مهر 1393, 23:56 عصر
بیا تو این تاپیک قبلا یه کد رو توسعه دادم ازش استفاده کن
http://barnamenevis.org/showthread.php?462088-%D9%BE%DB%8C%D8%A7%D9%85%DA%A9-%D8%AC%D8%B9%D9%84%DB%8C&p=2070136#post2070136

hosseinaryai
چهارشنبه 02 مهر 1393, 16:07 عصر
ممنونم بابت جوابت .. دیدم اون تایپیکو .. اما موفق نشدم .. برام مهم نیست لیست مخاطبینو بخونه یا نه ..
فقط می خوام اس ام اس جعلی از طرف خود برنامه ام به گوشی ای که برنامه توش نصبه بیاد .. کدی که خودم گذاشتم لااقل توی امولیتور جواب میداد ، کدای اون تایپیک که کلن خطا می گرفت .. چه توی امولیتور چه توی گوشی اصلی ..
ببینم ، لازمه به منیفست چیزی اضافه کنم ؟

barnamenevisjavan
چهارشنبه 02 مهر 1393, 18:57 عصر
ممنونم بابت جوابت .. دیدم اون تایپیکو .. اما موفق نشدم .. برام مهم نیست لیست مخاطبینو بخونه یا نه ..
فقط می خوام اس ام اس جعلی از طرف خود برنامه ام به گوشی ای که برنامه توش نصبه بیاد .. کدی که خودم گذاشتم لااقل توی امولیتور جواب میداد ، کدای اون تایپیک که کلن خطا می گرفت .. چه توی امولیتور چه توی گوشی اصلی ..
ببینم ، لازمه به منیفست چیزی اضافه کنم ؟
کدای تاپیک قبلی هیچ مشکلی ندارن خودم کاملا تستشون کردم! (پست 14 و 19)
بله باید پرمیشن SMS رو اضافه کنید

hosseinaryai
چهارشنبه 02 مهر 1393, 21:36 عصر
کدای تاپیک قبلی هیچ مشکلی ندارن خودم کاملا تستشون کردم! (پست 14 و 19)
بله باید پرمیشن SMS رو اضافه کنید

ممنونم که پیگیر هستی و سپاسگزارم ..
حالا یه سوال و آخرین سوال :
در این حالت که هزینه ای از سیم کارت طرف کسر نمیشه ؟!! میشه؟

barnamenevisjavan
پنج شنبه 03 مهر 1393, 18:33 عصر
ممنونم که پیگیر هستی و سپاسگزارم ..
حالا یه سوال و آخرین سوال :
در این حالت که هزینه ای از سیم کارت طرف کسر نمیشه ؟!! میشه؟
ن به هیچ عنوان ربطی به هزینه نداره
خودم روی شبیه ساز BlueStacks و گوشیم Xperia SP تست کردم