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
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #3211  
Старый 03.04.2009, 21:58
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме:
3134311

Репутация: 1467


Отправить сообщение для KaZ@NoVa с помощью ICQ Отправить сообщение для KaZ@NoVa с помощью AIM Отправить сообщение для KaZ@NoVa с помощью Yahoo
По умолчанию

Цитата:
Сообщение от НTL  
Нужен код который будет:

1) Забирать значение поля (text) edit1
2) Искать это значение в файле name.txt (До знака ":")
3) Выводить значение (Только после ":") этой строчки в поле (text) edit2

Пример:

Фаил: name.txt
Код:
1:2
3:4
5:6
7:8
9:10
11:12
13:14
и, т.д.
Значение поля (text) edit1: 5
Значит значение поля (text) edit2 должно быть: 6
вот На C+++
Код HTML:
#include <windows.h>
#include"stdio.h"
HDC hDC;
RECT rect;
static HWND wedit;
static HWND wedit1;
HWND hWnd;
FILE*f;
BYTE chBuff[80],c[80],k,n=0;
int i=0;
WORD cbText;
WNDCLASS wc;

HINSTANCE hInst;
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
LPCSTR AppName = "Прога";
MSG msg;
hInst = hInstance;
WNDCLASS wc;
ZeroMemory(&wc, sizeof(wc));
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(hInst, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName = AppName;
RegisterClass(&wc);
hWnd = CreateWindow(AppName,AppName,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0,100, 130,NULL,NULL,hInst,NULL);
FreeConsole();
ShowWindow(hWnd, SW_SHOW); // Отображаем окно
UpdateWindow(hWnd); // Перерисовываем окно
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CREATE:
CreateWindow("BUTTON","OK",WS_CHILD|BS_PUSHBUTTON|WS_VISIBLE,10,60,90,20,hWnd,0,1,NULL);
wedit=CreateWindow("edit", "",WS_CHILD | WS_VISIBLE| WS_BORDER| ES_CENTER | ES_MULTILINE | ES_WANTRETURN ,5, 5, 100, 20, hWnd, NULL, 1, NULL);
wedit1=CreateWindow("edit", "",WS_CHILD | WS_VISIBLE | WS_BORDER| ES_CENTER| ES_MULTILINE | ES_WANTRETURN ,5, 30, 100, 20, hWnd, NULL, 1, NULL);
SetFocus(wedit);
break;

case WM_DESTROY:
PostQuitMessage(0);
break;

case WM_COMMAND:
hDC=GetDC(hWnd);
switch(LOWORD(wParam))
{
case 0://событие от первой кнопки
if (HIWORD(wParam)==BN_CLICKED)
{
*(WORD*) chBuff = sizeof (chBuff) - 1;
cbText = SendMessage(wedit, EM_GETLINE, 0,(LPARAM)(LPSTR)chBuff);
chBuff[cbText] = '\0';
if((f=fopen("name.txt","r"))==NULL)
{
SetWindowText(wedit1,(LPSTR)(LPCSTR)"ошибка");
}
i=0;
n=0;
while(fscanf(f,"%c",&k),!feof(f))
{
if((k>='0')&&(k<='9'))
{
c[i]=k;
i++;
}
else
{
c[i]='\0';
i=0;
if((k==':')&&(strcmp(c,chBuff)==0))
{
while(fscanf(f,"%c",&c[i]),((c[i]>='0')&&(c[i]<='9')))
{
i++;
}
c[i]='\0';
SetWindowText(wedit1,(LPSTR)(LPCSTR)c);
n=1;
}
}
}
fclose(f);
if(n==0)
{
SetWindowText(wedit1,(LPSTR)(LPCSTR)"не найдено");
}
}
break;
};
DeleteObject(hDC);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}

return 0;
}
 
Ответить с цитированием

  #3212  
Старый 04.04.2009, 00:17
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


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

Вот тут у меня ещё пару вопросов возникло.

1) Каким образом можно проверить вставлена ли флешка в компьютер или нет?
Нужен 100% рабочий способ проверки на наличие флешки и знать букву диска с этой флешкой.
Сначала у меня была идея проверять все диски на файловую систему FAT, но как выяснилось не все флешки имеют такую, у других есть просто FAT32, ну или ещё что.
Соответственно как мне отследить это действие без ошибок. И если вставлена не одна флешка, чтобы была информация о всех флешках находящихся в компе на данный момент.

2) Вопрос второй, если компьютер объединен в локальную сеть между компами и открыт соответствующий доступ, как получить список всех машин на которые можно залезть?
A далее используя //computername/c/games/ (у кого локалка тот знает) просматривать содержимое каталогов?
Дело в том, что у меня нету локалки, и поэтому в данной части плохо разбираюсь.
 
Ответить с цитированием

  #3213  
Старый 04.04.2009, 00:31
rushter
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме:
9257858

Репутация: 979


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

Цитата:
Сообщение от KaZ@NoVa  
вот На C+++
Код HTML:
#include <windows.h>
#include"stdio.h"
HDC hDC;
RECT rect;
static HWND wedit;
static HWND wedit1;
HWND hWnd;
FILE*f;
BYTE chBuff[80],c[80],k,n=0;
int i=0;
WORD cbText;
WNDCLASS wc;

HINSTANCE hInst;
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
LPCSTR AppName = "Прога";
MSG msg;
hInst = hInstance;
WNDCLASS wc;
ZeroMemory(&wc, sizeof(wc));
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(hInst, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName = AppName;
RegisterClass(&wc);
hWnd = CreateWindow(AppName,AppName,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0,100, 130,NULL,NULL,hInst,NULL);
FreeConsole();
ShowWindow(hWnd, SW_SHOW); // Отображаем окно
UpdateWindow(hWnd); // Перерисовываем окно
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CREATE:
CreateWindow("BUTTON","OK",WS_CHILD|BS_PUSHBUTTON|WS_VISIBLE,10,60,90,20,hWnd,0,1,NULL);
wedit=CreateWindow("edit", "",WS_CHILD | WS_VISIBLE| WS_BORDER| ES_CENTER | ES_MULTILINE | ES_WANTRETURN ,5, 5, 100, 20, hWnd, NULL, 1, NULL);
wedit1=CreateWindow("edit", "",WS_CHILD | WS_VISIBLE | WS_BORDER| ES_CENTER| ES_MULTILINE | ES_WANTRETURN ,5, 30, 100, 20, hWnd, NULL, 1, NULL);
SetFocus(wedit);
break;

case WM_DESTROY:
PostQuitMessage(0);
break;

case WM_COMMAND:
hDC=GetDC(hWnd);
switch(LOWORD(wParam))
{
case 0://событие от первой кнопки
if (HIWORD(wParam)==BN_CLICKED)
{
*(WORD*) chBuff = sizeof (chBuff) - 1;
cbText = SendMessage(wedit, EM_GETLINE, 0,(LPARAM)(LPSTR)chBuff);
chBuff[cbText] = '\0';
if((f=fopen("name.txt","r"))==NULL)
{
SetWindowText(wedit1,(LPSTR)(LPCSTR)"ошибка");
}
i=0;
n=0;
while(fscanf(f,"%c",&k),!feof(f))
{
if((k>='0')&&(k<='9'))
{
c[i]=k;
i++;
}
else
{
c[i]='\0';
i=0;
if((k==':')&&(strcmp(c,chBuff)==0))
{
while(fscanf(f,"%c",&c[i]),((c[i]>='0')&&(c[i]<='9')))
{
i++;
}
c[i]='\0';
SetWindowText(wedit1,(LPSTR)(LPCSTR)c);
n=1;
}
}
}
fclose(f);
if(n==0)
{
SetWindowText(wedit1,(LPSTR)(LPCSTR)"не найдено");
}
}
break;
};
DeleteObject(hDC);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}

return 0;
}
гугл не выдал вариант для delphi ? тема вообщето про delphi
 
Ответить с цитированием

  #3214  
Старый 04.04.2009, 00:40
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

по вервому вопросу - когдато нужна была подобная прога.
Вот код - перебирает все диски в системе и берет их тип шины, тип а также кучу другйо инфы. Тебе достаточно тока выдрать отсюда код для определения типа насителя и чекнуть на BusTypeUsb
Код:
var
query:array[0..11] of byte = (00, 00, 00, 00, 00, 00, 00, 00, 00, 08, 00, 00);
type
 Storage_Bus_Type = ( BusTypeUnknown, BusTypeScsi, BusTypeAtapi, BusTypeAta,
                     BusType1394, BusTypeSsa, BusTypeFibre, BusTypeUsb, BusTypeRAID );

type
PSTORAGE_DEVICE_DESCRIPTOR=record
Version:dword;
Size:dword;
DeviceType:UCHAR;
DeviceTypeModifier:UCHAR;
RemovableMedia:BOOLEAN;
CommandQueueing:BOOLEAN;
VendorIdOffset:dword;
ProductIdOffset:dword;
ProductRevisionOffset:dword;
SerialNumberOffset:dword;
BusType:STORAGE_BUS_TYPE;
RawPropertiesLength:dword;
RawDeviceProperties:array[1..500]of CHAR;
end;

function getValue(buf:PSTORAGE_DEVICE_DESCRIPTOR;offs:dword):string;
var
mas:array[0..255] of char;
begin
if offs=0 then exit;
asm
push eax
push ebx
push edx
push esi
push edi
xor edi,edi
xor esi,esi
mov esi,offs
lea edx,buf
lea ebx,mas
@m1:
mov al,[edx+esi]
mov [ebx+edi],al
inc edi
inc esi
cmp al,0
jne @m1
pop edi
pop esi
pop edx
pop ebx
pop eax
end;
result:=string(mas);
end;

function NUM(s:string):boolean;
begin
result:=true;
case s[1] of
'0'..'9','A'..'F','a'..'f':;
else result:=false;
end;
case s[2] of
'0'..'9','A'..'F','a'..'f':;
else result:=false;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
hDevice:THANDLE;
status:BOOLean;
returnedLength:ULONG;
devDesc:pSTORAGE_DEVICE_DESCRIPTOR;
s,ss:string;
c:char;
x,y:integer;
begin
stringgrid1.Rows[stringgrid1.RowCount].Clear;
stringgrid1.Cells[0,0]:='Диск';
stringgrid1.Cells[1,0]:='VendorId';
stringgrid1.Cells[2,0]:='ProductId';
stringgrid1.Cells[3,0]:='ProductRev';
stringgrid1.Cells[4,0]:='Размещение';
stringgrid1.Cells[5,0]:='SerialNumber';
x:=1;
for c:='A' to 'Z' do begin
hDevice:=CreateFile(pansichar('\\.\'+c+':'), GENERIC_READ + GENERIC_WRITE, FILE_SHARE_READ + FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
status:=DeviceIoControl( hDevice, $002d1400, @query, sizeof(query), @devDesc, 512, cardinal(returnedLength), nil );
if status then
 begin
   stringgrid1.Cells[0,x]:=c;
//   if (devDesc.RemovableMedia) then memo1.Lines.Add('Removable Media');
   stringgrid1.Cells[1,x]:=getValue(devDesc,devDesc.VendorIdOffset);
   stringgrid1.Cells[2,x]:=getValue(devDesc,devDesc.ProductIdOffset);
   stringgrid1.Cells[3,x]:=getValue(devDesc,devDesc.ProductRevisionOffset);
   case devDesc.BusType of
     BusTypeUnknown:s:='Unknown';
     BusTypeScsi:s:='SCSI';
     BusTypeAtapi:s:='ATAPI';
     BusTypeAta:s:='ATA';
     BusType1394:s:='IEEE 1394';
     BusTypeSsa:s:='SSA';
     BusTypeFibre:s:='FIBRE';
     BusTypeUsb:s:='USB';
     BusTypeRAID:s:='RAID';
    end;
   stringgrid1.Cells[4,x]:=s;
   ss:=getValue(devDesc,devDesc.SerialNumberOffset);
   s:='';
   for y:=1 to length(ss) div 2 do
    begin
    if not NUM(copy(ss,y*2-1,2)) then break;
    s:=s+chr(strtoint('$'+copy(ss,y*2-1,2)));
    end;
   stringgrid1.Cells[5,x]:=s;
   inc(x);
  end;
end;
end;

end.
2) компы в локалке даже если и видятся, то не факт что ты сможешь залезть в нет. Копай в сторону netapi чтобы узнать все компы в сети, а потом на каждый ткнуться и проверить. Самораспространение пишишь ))
 
Ответить с цитированием

  #3215  
Старый 04.04.2009, 01:47
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


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

Цитата:
Сообщение от slesh  
2) компы в локалке даже если и видятся, то не факт что ты сможешь залезть в нет. Копай в сторону netapi чтобы узнать все компы в сети, а потом на каждый ткнуться и проверить. Самораспространение пишишь ))
По первому варианту большое спасибо, всё просто и понятно.

А вот по второму мне надо получить список компов тока чтобы палить листинг всех файлов и папок которые открыты зараж... ну текущему компьютеру.

ЗЫ: не самораспостранение.
 
Ответить с цитированием

  #3216  
Старый 04.04.2009, 03:38
Archangelus
Новичок
Регистрация: 11.05.2008
Сообщений: 27
Провел на форуме:
78594

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

Всех приветствую! Помогите пожалуйста решить проблему. Мне нужно получить все ссылки с фрейма. Код в нете я нашёл, но выскакивает ошибка "в доступе отказано". Дальше выяснил, что эта ошибка появляется тогда, когда фрейм ссылается на другой домен или что-то в этом роде.
Было бы очень здорово, если б кто-нибудь помог кодом: поиск всех ссылок во фреймах.
Использовал этот код:
Код:
procedure TForm1.Button2Click(Sender: TObject); 
var 
  i: Integer; 
begin 
  Listbox1.Clear; 
  //if frames available 
  if Webbrowser1.OleObject.Document.Frames.Length <> 0 then 
  begin 
    //walk through all frames and get the url 
    //to the Listbox 
    for i := 0 to Webbrowser1.OleObject.Document.Frames.Length - 1 do 
    begin 
      Listbox1.Items.Add(Webbrowser1.OleObject.Document.Frames.item(i).Document.URL); 
    end; 
  end; 
end;
 
Ответить с цитированием

  #3217  
Старый 04.04.2009, 12:59
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

2 Nightmarе. Для того чтобы определить какие компы в сети и какие ресурсы доступны у них, нужно заюзать WNetOpenEnum -> WNetEnumResource->WNetCloseEnum

в инете поищи исходник на тему - Вывод Списка компьютеров в локальной сети.
Там когда ты получаеш WNetEnumResource
там в dwDisplayType будет указывать что это за тип рисурса (принтер, сервер,файл, дира итд итп.)
А там чуть рекурсивно вызывать всё

Последний раз редактировалось slesh; 04.04.2009 в 13:01..
 
Ответить с цитированием

  #3218  
Старый 04.04.2009, 13:08
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

2 Archangelus попробуй поиграться с настройками IE.
В последних IE там сильно уж ужесточили безопасность. особеннов IE 8.
А так как WebBrowser пашет на основе IE то и все настройки распространяются на него. Лично у меня при IE8 никакими настройками не удалось это исправить.

MS наверное задумалась о безопасности в плане CDS(Cross-Domain Scripting) и залатала эту фичу.

Как вариант - ты можешь получить исходный код страници и там уже ручками отпарсить <iframe ... src= ...> Но тогда всё что будет создано через JS ты не сможешь найти.
 
Ответить с цитированием

файл в память
  #3219  
Старый 04.04.2009, 18:16
gashish_tema
Новичок
Регистрация: 18.03.2009
Сообщений: 5
Провел на форуме:
11685

Репутация: 0
По умолчанию файл в память

пишу base64 кодировшик файлов, как заменить FileOpen FileRead чем то другим... одним словом у меня программа из за использования модуля sysutils прибавляет в весе.. как обойтись без него или можно выдрать эти функции из него и засунуть в код своей программы... Дайте лучший совет
 
Ответить с цитированием

  #3220  
Старый 04.04.2009, 18:26
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме:
3134311

Репутация: 1467


Отправить сообщение для KaZ@NoVa с помощью ICQ Отправить сообщение для KaZ@NoVa с помощью AIM Отправить сообщение для KaZ@NoVa с помощью Yahoo
По умолчанию

Цитата:
Сообщение от gashish_tema  
пишу base64 кодировшик файлов, как заменить FileOpen FileRead чем то другим... одним словом у меня программа из за использования модуля sysutils прибавляет в весе.. как обойтись без него или можно выдрать эти функции из него и засунуть в код своей программы... Дайте лучший совет
можно взять и скажем использовать стандартную схему паскаля..
Цитата:
assign(filename,path_to_file);
reset(filename) - reading from file
rewrite(filename) - writing to file))
потом close(filename);
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



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


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




ANTICHAT.XYZ