![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
... вас не заманишь кодом не чистым!!!
Но я таки попытаюсь. ;)
Ув. тов. Программеры!
Мне тут попался преинтереснейший жабовый троян (кейлогер+бот+еще куча гадости), неизвестного турецкого художника.
Пытаюсь найти его коммандный центр. Декомпильнул ихние классы, интересно работает ;)
Есть там такой класс:
UPD: да уж... пока от вас дождешься... уже не надо ;)
Гугл твой френд навеки-веков ;)))
А в замен, я вам потомрасскажу не расскажу чем это все закончилось ;)))
ПС: там по ди.фм (di.fm/trance.pls) идет 350 эпизод АСОТа, аж 7 часов!!!!
Но я таки попытаюсь. ;)
Ув. тов. Программеры!
Мне тут попался преинтереснейший жабовый троян (кейлогер+бот+еще куча гадости), неизвестного турецкого художника.
Пытаюсь найти его коммандный центр. Декомпильнул ихние классы, интересно работает ;)
Есть там такой класс:
public class Decyrptor
{
public Decyrptor()
{
}
private static int Cevap(String s)
{
int i = 0;
int j = 1;
boolean flag = false;
for(int l = s.length(); l > 0; l--)
{
char c = s.charAt(l - 1);
int k = Integer.parseInt("" + c) * j;
j *= 2;
i += k;
}
return i;
}
public static String Decyrpt(String s)
{
String s1 = "";
String s3 = "";
String s4 = "";
String s6 = "";
boolean flag = true;
boolean flag1 = false;
boolean flag2 = false;
boolean flag3 = false;
s6 = "";
String s7 = "";
for(int l = 0; l < s.length(); l++)
{
int i = 1;
boolean flag4 = false;
String s8 = "";
byte byte0;
do
{
char c1 = s.charAt(l);
byte byte1 = (byte)c1;
byte0 = byte1;
Character character = new Character(c1);
if(byte0 != 32)
{
s8 = s8 + character.toString();
l++;
}
} while((byte0 != 32) & (l != s.length()));
byte0 = 0;
int k1 = Integer.parseInt(s8);
for(int l1 = 0; l1 < 77; l1++)
i = (i * k1) % 221;
if(l == s.length() - 1)
{
flag4 = true;
int k = s3.length() % 8;
}
String s2 = "";
for(int i2 = 6; i2 > 0; i2--)
{
int j = i % 2;
Integer integer = new Integer(j);
s2 = s2 + integer.toString();
i /= 2;
}
StringBuffer stringbuffer = new StringBuffer(s2);
s2 = stringbuffer.reverse().toString();
if(flag4)
s2 = s2.substring(0, 8 - s3.length() % 8);
s3 = s3 + s2;
s8 = "";
}
for(int i1 = 0; i1 < s3.length() / 8; i1++)
{
String s5 = s3.substring(i1 * 8, i1 * 8 + 8);
int j1 = Cevap(s5);
char c = (char)j1;
s6 = s6 + c;
}
return s6;
}
}
------------
Кто нибудь может дать внятный алгоритм этой поеботины?
Или хотя бы скажите, как это запустить, чтобы оно хавало криптованый стринг и выдавала клир текст?
Пример криптованого стринга: "207 15 0 37 207 32 218 29 163 120 215"
(я конечно понимаю, что могу и сам допереть, но накуренные мозги уж очень туго соображают ;)))
{
public Decyrptor()
{
}
private static int Cevap(String s)
{
int i = 0;
int j = 1;
boolean flag = false;
for(int l = s.length(); l > 0; l--)
{
char c = s.charAt(l - 1);
int k = Integer.parseInt("" + c) * j;
j *= 2;
i += k;
}
return i;
}
public static String Decyrpt(String s)
{
String s1 = "";
String s3 = "";
String s4 = "";
String s6 = "";
boolean flag = true;
boolean flag1 = false;
boolean flag2 = false;
boolean flag3 = false;
s6 = "";
String s7 = "";
for(int l = 0; l < s.length(); l++)
{
int i = 1;
boolean flag4 = false;
String s8 = "";
byte byte0;
do
{
char c1 = s.charAt(l);
byte byte1 = (byte)c1;
byte0 = byte1;
Character character = new Character(c1);
if(byte0 != 32)
{
s8 = s8 + character.toString();
l++;
}
} while((byte0 != 32) & (l != s.length()));
byte0 = 0;
int k1 = Integer.parseInt(s8);
for(int l1 = 0; l1 < 77; l1++)
i = (i * k1) % 221;
if(l == s.length() - 1)
{
flag4 = true;
int k = s3.length() % 8;
}
String s2 = "";
for(int i2 = 6; i2 > 0; i2--)
{
int j = i % 2;
Integer integer = new Integer(j);
s2 = s2 + integer.toString();
i /= 2;
}
StringBuffer stringbuffer = new StringBuffer(s2);
s2 = stringbuffer.reverse().toString();
if(flag4)
s2 = s2.substring(0, 8 - s3.length() % 8);
s3 = s3 + s2;
s8 = "";
}
for(int i1 = 0; i1 < s3.length() / 8; i1++)
{
String s5 = s3.substring(i1 * 8, i1 * 8 + 8);
int j1 = Cevap(s5);
char c = (char)j1;
s6 = s6 + c;
}
return s6;
}
}
------------
Кто нибудь может дать внятный алгоритм этой поеботины?
Или хотя бы скажите, как это запустить, чтобы оно хавало криптованый стринг и выдавала клир текст?
Пример криптованого стринга: "207 15 0 37 207 32 218 29 163 120 215"
(я конечно понимаю, что могу и сам допереть, но накуренные мозги уж очень туго соображают ;)))
UPD: да уж... пока от вас дождешься... уже не надо ;)
Гугл твой френд навеки-веков ;)))
А в замен, я вам потом
ПС: там по ди.фм (di.fm/trance.pls) идет 350 эпизод АСОТа, аж 7 часов!!!!