HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Упрощенный string replace
  #1  
Старый 12.02.2009, 02:12
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию Упрощенный string replace

Пользовательская функция replace для которой нужны только 3 параметра - (исходный текст, найтичто, заменитьчем)

Написал вот такой реплейсер т.к. встроенный в C++ для меня не неудобен.

Обновлённая версия

Последний раз редактировалось rudvil; 25.02.2010 в 15:10..
 
Ответить с цитированием

Time Before End Of Para 1.0 beta
  #2  
Старый 04.10.2009, 21:55
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию Time Before End Of Para 1.0 beta

Выходные скукота, решил доделать свою идею, которая появилась у меня в начале семестра. А именно, разработать программу, которая показывала бы время до окончания пары. Встречаем! >>> Time Before End Of Para 1.0 beta
  • Программа компактна и весит всего 4 096 байт (писал на Си WinAPI, т. к версию под FASM было очень муторно отлаживать).
  • Открытый исходный код.
  • Не жрет память и автоматически настраивает таймер обновления времени.
  • Имеет файл конфигурации!
Особо её не тестировал отсюда приставка beta. Найдете глюки пишите исправим.
 
Ответить с цитированием

Bruteforce MMP / брут паролей сервиса mail.ru
  #3  
Старый 26.01.2010, 00:45
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию Bruteforce MMP / брут паролей сервиса mail.ru

> intro
Посмотрел сейчас сюжет про linux, про идеи open source (лиценцию GNU GPL) и решил опубликовать исходники.
// тему создавал отдельную, но тут и обсуждать не чего. Пусть хоть исходник потеряется в сабжах нужной темы

> WARNING
Перед тем как компилировать исходники, настоятельно рекомендую прочесть статью 272 часть 2 (до пяти лет) и статью 138 УК РФ (до трёх лет)

- about
Функция генерация пароля взята из статьи "Циклический инкремент паролей", собственно каркас TCP/IP клиента у Криса Касперски, а идеи построения нормального сетевого приложения вычитаны у Йона Снейдера
Клиент MMP собственно мой... многопоточность достигается путем открытия сразу N сокетов, которые в дальнейшем живут своей жизнью.

+ test
При тестировании на скорости ~256 кб/c один сокет проверяет 4 пароля в секунду... 4 сокета соответственно 16 (думаю можно и больше не проверял). Приблизительно через 10 минут сервер попросту закрывает все соединения с данного IP (ну я так думаю, потому что помогает переподключение к инету).

--==[ СОРЦЫ Bruteforce MMP ]==---
 
Ответить с цитированием

Flash grabber by Gar|k
  #4  
Старый 10.02.2010, 00:06
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию Flash grabber by Gar|k

Размер exe - 3.5 Кб
Язык - winAPI

Разрабатывалась для успешной сдачи сесси, препод зажал лекции в электронке

Фишки:
- Копирует скрытые файлы
- Не нужно прав администратора
- Небольшая нагрузка на процессор
- Копирует только файлы определенного формата, пропуская уже скопированные файлы
- Запоминает уже копированные флешки по серийному номеру и запускает повторное сканирование ЭТОЙ только через сутки.

Подробнее о релизе смотреть тут - ИСХОДНИК, EXE

Скомпиленная версия держит форматы doc,docx,ppt,pptx,rtf - все это легко правится из исходника + я предоставил проект vs2008 со всеми настройками
 
Ответить с цитированием

base64_encode [C]
  #5  
Старый 26.03.2010, 02:46
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию base64_encode [C]

Сейчас для HTTP аутентификации понадобилось... Может кому ещё пригодится.
написано с помощью...
Код:
// base64 by Gar|k
//#define B64_DEF_LINE_SIZE   72
//#define B64_MIN_LINE_SIZE    4
// buf - строка для кодирования
// sizebuf - размер строки
// rez - буффер для результата
// функция возвращает размер полученого хеша
int base64_encode(char *buf,int sizebuf,char *rez,int linesize)
{
	static const char cb64[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
	unsigned char in[3], out[4];
	int i, len, blocksout=0,count=0;

	while(count!=sizebuf)
	{
		len = 0;
		for( i = 0; i < 3; i++ ) 
		{
			if( count!=sizebuf )
				{ in[i] = (unsigned char)*buf++; count++; len++; }
			else in[i] = 0;
		}

		if( len ) 
		{
			out[0] = cb64[ in[0] >> 2 ];
			out[1] = cb64[ ((in[0] & 0x03) << 4) | ((in[1] & 0xf0) >> 4) ];
			out[2] = (unsigned char) (len > 1 ? cb64[ ((in[1] & 0x0f) << 2) | ((in[2] & 0xc0) >> 6) ] : '=');
			out[3] = (unsigned char) (len > 2 ? cb64[ in[2] & 0x3f ] : '=');

			memcpy(rez,out,4); rez+=4;
			blocksout++;
		}

		if( blocksout >= (linesize/4) || count==sizebuf )  blocksout = 0;
	}
*rez++=0;
	return count;
}

Последний раз редактировалось Gar|k; 26.03.2010 в 03:01..
 
Ответить с цитированием

MD5 на основе Crypto API
  #6  
Старый 18.04.2010, 23:32
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию MD5 на основе Crypto API

Понадобилось генерировать 128-ми битные ключи для RC4 шифрования, вспомнил про MD5.

вариант с использованием динамически выделяемой памяти
Код:
#include <wincrypt.h>

// на выходе адрес буфера 16 байтного хеша
// после использования выполни VirtualFree(LPVOID lpAddress,0,MEM_RELEASE);
unsigned char *md5(unsigned char *string,DWORD count)
{
	HCRYPTPROV hProv;
	HCRYPTHASH hHash;
	unsigned char *hash_value;

	// Инициализация контекста криптопровайдера
	if (CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0))
	{
		// Cоздание хеш-объекта
		if (CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash))
		{
			// Передача хешируемых данных хэш-объекту.
			if (CryptHashData(hHash, string, count, 0))
			{
				// Получение хеш-значения
				count = 0;
				if (CryptGetHashParam(hHash, HP_HASHVAL, NULL, &count, 0))
				{
					hash_value=(unsigned char *)VirtualAlloc(NULL,count,MEM_RESERVE | MEM_COMMIT,PAGE_READWRITE);
					if (CryptGetHashParam(hHash, HP_HASHVAL, hash_value, &count, 0))
					{
						return hash_value;
					}
				}
			}
		}
	}

	return NULL;
}
но хеш-то всегда 16 байт поэтому можно оптимизировать так
Код:
// hash_value указатель на >=16 байтный буфер (напр. char hash[16];)
BOOL md5(unsigned char *hash_value,unsigned char *string,DWORD count)
{
	HCRYPTPROV hProv;
	HCRYPTHASH hHash;

	// Инициализация контекста криптопровайдера
	if (CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0))
	{
		// Cоздание хеш-объекта
		if (CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash))
		{
			// Передача хешируемых данных хэш-объекту.
			if (CryptHashData(hHash, string, count, 0))
			{
				// Получение хеш-значения
				count = 16;
				if (CryptGetHashParam(hHash, HP_HASHVAL, hash_value, &count, 0)) return TRUE;
			}
		}
	}

	return FALSE;
}

Последний раз редактировалось Gar|k; 19.04.2010 в 00:14.. Причина: хммм а нафига динамически выделять...
 
Ответить с цитированием

  #7  
Старый 21.02.2009, 23:37
eLWAux
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


По умолчанию

Длинная арифметика
программа для считивания, вывода и сравнения двух длинних положительных числел

pascal:
Код:
program crypt_lab1;

uses
   crt;

const
   MaxDig = 1000;  { максимальное количество цифр }
   Osn    = 10000; { основание нашей системы счисления }

type
   TLong = array[0..MaxDig] of integer;

 { считивание длинного числа с файла }
 procedure ReadLong(filename :string; var a:TLong);
 var i  :integer;
     F  :text;
     ch :char;
 begin

     for i:=0 to MaxDig do a[i]:=0;
     a[0]:=1;

     assign(F, filename);
     reset(F);
     while not eof(F) do begin
           read(F,ch);

           for i:=a[0] downto 1 do begin
               a[i+1] := a[i+1] + ( longint(a[i]) *10) div Osn;
               a[i]   := ( longint(a[i]) *10) mod Osn;
               end;

           {val(ch,temp,temp); a[1] := a[1] + temp;}
           a[1] := a[1] + ord(ch) - ord('0');
           if (a[a[0]+1]>0) then inc(a[0]);

    end;
    close(F);

 end;


 { вывод длинного числа на экран из массива}
 procedure WriteLong(var a :TLong);
 var ls,s:string; i:integer;
 begin
      str( Osn div 10, ls);
      write(a[a[0]]); {starwa cufra}
      for i:=a[0] - 1 downto 1 do begin
          str(a[i], s);
          while length(s)<length(ls) do
                s:='0'+s;
          write(s);
      end;
      writeln;
 end;

  { сравнения двох дл. чисел: a == b }
 function Eq(a,b :TLong):boolean;
 var
    i:integer;
 begin
      Eq := false;
      if ( a[0]<>b[0] ) then exit;

      { a[0] == b[0] }
      for i:=1 to a[0] do
       if (a[i] = b[i]) then
         Eq := i = a[0];
 end;

  { сравнения двох дл. чисел: a > b }
 function More(a,b :TLong):boolean;
 var i :integer;
 begin
      if ( a[0]>b[0] ) then More:=true else
                            More:=false;
      for i:=a[0] downto 1 do
          if (a[i]<>b[i]) then
          begin
             if (a[i]>b[i]) then More:=true else More:=false;
             break;
          end;
 end;

  { сравнения двох дл. чисел: a > b }
 function Less(a,b :TLong):boolean;
 var i :integer;
 begin
      Less := Not(More(a, b) Or Eq(a, b))
 end;

  { сравнения двох дл. чисел: a >= b }
 function More_Eq(a, b : TLong) : boolean;
 begin
		More_Eq := More(a, b) Or Eq(a, b)
 end;

  { сравнения двох дл. чисел: a <= b }
 function Less_Eq(a, b : TLong) : boolean;
 begin
	Less_Eq := Not More(a, b)
 end;

 { сложения двух длинних чисел: a + b }
 procedure Sum2Long(var a,b :TLong; var c :TLong);
 var i,k:integer;
 begin
      for i:=0 to MaxDig do  { aHaJlor:                     }
          c[i] := 0;         {   fillchar(c, sizeof(c), 0); }

      if a[0]>b[0] then k:=a[0] else k:=b[0];
      for i:=1 to k do begin
          c[i+1] := (c[i] + a[i] + b[i]) div osn;
          c[i] := (c[i] + a[i] + b[i]) mod osn;
      end;
      if (c[k+1] = 0) then c[0]:=k else c[0] := k+1;
 end;

var
   a,b,c :TLong;
   i     :integer;

begin
   clrscr;

   ReadLong('num1.txt',a);
   ReadLong('num2.txt',b);
   write('a   = ');  WriteLong(a);
   write('b   = ');  WriteLong(b);

   Sum2Long(a,b,c);
   write('a+b = ');  WriteLong(c);

   writeln( 'a > b ', More(a,b) );
   writeln( 'b > a ', More(b,a) );
   writeln( 'c > b ', More(c,b) );
   writeln( 'c > a ', More(c,a) );

   readln;
end.
пример входних данных:
num1.txt: 102030405060708090
num2.txt: 11222333444455555666666777777888888899
 
Ответить с цитированием

Парсинг гугла
  #8  
Старый 22.02.2009, 10:19
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


По умолчанию Парсинг гугла

Парсинг гугла на ссылки.
Используемый язык - C#

Пример использования:
PHP код:
 void Button1Click(object senderEventArgs e
        { 
            var 
= new Google(textBox1.Text) {LinksCount 100}; 
            var 
result = new List<string>(); 
            while(
g.Read()) 
            { 
                var 
tmp g.GetResult(); 
                foreach(var 
s in tmp
                { 
                    
result.Add(s); 
                } 
            } 
            if (
checkBox1.Checked
            { 
                
result result.Distinct().ToList(); 
            } 
            foreach(var 
s in result
            { 
                
textBox2.Text += "\r\n"
            } 
        } 
Подробнее (описание методов и полей) - https://forum.antichat.ru/showthread.php?p=1118071
пример + класс http://www.sendspace.com/file/jbwxtf
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #9  
Старый 12.03.2009, 21:23
eLWAux
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


По умолчанию

HQ9+ интерпретатор:

Код:
program Project1;
 
{$APPTYPE CONSOLE}

uses
  SysUtils;
  var i,ii,x:integer;
  s:string;

begin
  ReadLn(s);

  //Алгоритм работы будет повторяться, пока  пользователь не введет команду exit
  while s<>'exit' do begin
    write('> ');
    ReadLn(s);
    for i:=1 to Length(S)  do
        case s[i] of
                //Если символ равен заглавной или прописной H, вывести  Hello, world!
             'H':writeLn(']  Hello, world!');
             'h':writeLn(']  Hello, world!');
             'Q':writeLn(s);
                //Если символ равен заглавной или прописной Q, вывести  переменную S.
                //Там код программы
             'q':writeLn(s);
             '+':Inc(x); //Если символ равен плюсу, увеличить икс.
             '9':begin //Символ девять выводит стих.
                 writeLn(']  99 bottles of beer');
                 for ii:=98 downto 1 do begin
                     writeLn(']  you take one down, pass it around,');
                     writeLn(']  '+IntToStr(ii)+' bottles of beer on the wall');
                     writeLn(']  ');
                     writeLn(']  '+IntToStr(ii)+' bottles of beer');
                 end;
                 writeLn(']  you take it down, pass it around,');
                 writeLn(']  no more bottles of beer on the wall.');
        end;
    end;
  end;
 
end.
Код:
> HQ++QH
Результат:
> Hello, world. HQ++QH HQ++QH Hello, world.

Последний раз редактировалось eLWAux; 12.03.2009 в 21:28..
 
Ответить с цитированием

  #10  
Старый 22.03.2009, 23:06
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


По умолчанию

http://ru.wikipedia.org/wiki/HQ9%2B
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
О законе. _-[A.M.D]HiM@S-_ Статьи 38 05.11.2015 23:18
Хакер и закон! SladerNon Болталка 17 12.11.2009 09:42
Обзор бесплатных Cms em00s7 PHP 16 03.07.2009 13:13
Программы для работы с железом. Часть I – настройка видеокарт _GaLs_ "Железо" 2 20.12.2006 01:18
Программы для работы с железом. Часть 2 – материнские платы _GaLs_ "Железо" 0 19.11.2006 12:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.