Re: lameguard - бесполезная хрень
Цитата:
|
Re: lameguard - бесполезная хрень
Цитата:
|
Re: lameguard - бесполезная хрень
Цитата:
|
Re: lameguard - бесполезная хрень
взял и спалил багу не ума не фантазии :facepalm:
|
Re: lameguard - бесполезная хрень
Цитата:
|
Re: lameguard - бесполезная хрень
Автор кусок барана, у вас в сборке кривой код, хоть будет 50 ЛГ стоять, толка не будет.
Баг с подменой байпасов известен всем уже года 3, фиксится на уровне сервера и то подменой назвать это сложно. На моей памяти ЛГ обходился всего 2 раза и далеко не криворукими людьми. Писать, что ЛГ не работает тоже самое, что пить свою дресню из кружки и говорить это чай. :ca::ca::ca::dv: |
Re: lameguard - бесполезная хрень
Цитата:
|
Re: lameguard - бесполезная хрень
а чё её палить? Просто всем ср..ть на кодер/декодер байпассов, вот и всё. Можете сидеть дальше и водить полемику, и эта проблема не только у оверов актуальна. А дальше - думайте товарищи, думайте ;)
П.С - недавно в теме про какую-то сборку уже намекал. |
Re: lameguard - бесполезная хрень
ТС, дарю:
public final class BypassCrypt { private static final char[] CHAR_ARRAY_BYPASS = "bypass".toCharArray(); private static final int LETTER_SMALL_LAST = 'z'; private static final int LETTER_SMALL_FIRST = 'a'; private static final int LETTER_BIG_LAST = 'Z'; private static final int LETTER_BIG_FIRST = 'A'; private static final int NUMBER_LAST = '9'; private static final int NUMBER_FIRST = '0'; private static final int[] DEFAULT_EXCHANGE; static { DEFAULT_EXCHANGE = new int[LETTER_SMALL_LAST - LETTER_SMALL_FIRST + LETTER_BIG_LAST - LETTER_BIG_FIRST + NUMBER_LAST - NUMBER_FIRST + 3]; int index = DEFAULT_EXCHANGE.length, i; for (i = LETTER_SMALL_LAST + 1; i-- > LETTER_SMALL_FIRST;) { DEFAULT_EXCHANGE[--index] = i; } for (i = LETTER_BIG_LAST + 1; i-- > LETTER_BIG_FIRST;) { DEFAULT_EXCHANGE[--index] = i; } for (i = NUMBER_LAST + 1; i-- > NUMBER_FIRST;) { DEFAULT_EXCHANGE[--index] = i; } } private static final char[] getGenExchangeTable() { final TIntArrayList useable = new TIntArrayList(DEFAULT_EXCHANGE.length); useable.add(DEFAULT_EXCHANGE); final char[] exchangeTable = new char[LETTER_SMALL_LAST - NUMBER_FIRST + 1]; for (int i = exchangeTable.length, j; i-- > 0;) { j = i + NUMBER_FIRST; if (ArrayUtil.arrayContains(DEFAULT_EXCHANGE, j)) { exchangeTable[i] = (char) useable.remove(Rnd.get(useable.size())); } else { exchangeTable[i] = (char) j; } } return exchangeTable; } public static final void main(final String[] args) { final char[] exchange = getGenExchangeTable(); System.out.println(encrypt("<bypass -b talk_27816339_page 2>", exchange)); } public static final String encrypt(final String text, final char[] exchange) { final char[] toEncrypt = text.toCharArray(); for (int i = 0, j; i < text.length(); i++) { if (toEncrypt[i] == '<') { for (j = i + 1; j < text.length(); j++) { if (toEncrypt[j] == '>') { checkBypass(i + 1, j, toEncrypt, exchange); i = j; } } } } return new String(toEncrypt); } private static final void checkBypass(int start, int end, final char[] toEncrypt, final char[] exchange) { final int len = end - start; if (len <= CHAR_ARRAY_BYPASS.length) return; for (int j = 0; j < len; j++) { /* if (toEntrypt) pos = toEncrypt[i] - NUMBER_FIRST; if (pos < max && pos >= 0) toEncrypt[i] = exchange[pos];*/ } } @SuppressWarnings("unused") private static final void encrypt(final int start, final int end, final char[] toEncrypt, final char[] exchange) { final int len = end - start; if (len <= 0) return; final int max = exchange.length; for (int i = end, pos; i-- > start;) { pos = toEncrypt[i] - NUMBER_FIRST; if (pos < max && pos >= 0) toEncrypt[i] = exchange[pos]; } } public static final String decrypt(final String text) { return null; } } |
Re: lameguard - бесполезная хрень
Цитата:
От записи в память клиента не защититься никак, если у вас сервер настолько тупой, что рисует то, что просит клиент - это проблема сервера, а не антибота. ЛГ не решает проблем кривого кода, надо всегда учитывать что от клиента могут прийти недостоверные данные, даже в случае обычного сбоя, а не преднамеренного действия. Вспомнается идиотизм с new int[readD()] |
Текущее время: 18:14. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot