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

17.02.2009, 16:56
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Как можно обрезать строку типа AnsiString до опредленного символа?
|
|
|

17.02.2009, 17:45
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Сообщение от 4y4o
#include "stdafx.h"
#include "windows.h"
#include <iostream>
int main()
{
STARTUPINFOA si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
ZeroMemory( &pi, sizeof(pi) );
SECURITY_ATTRIBUTES secat;
secat.nLength = sizeof(SECURITY_ATTRIBUTES);
secat.bInheritHandle = TRUE;
HANDLE newin, writein;
CreatePipe(&newin,&writein,&secat,0);
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWNORMAL;
si.hStdInput=newin;
GetStartupInfoA(&si);
si.cb;
CreateProcessA(NULL, "cmd.exe", NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
DWORD bytes;
char command[100] = "mkdir 1254655553";
WriteFile(writein, command, 100, &bytes, NULL);
std::cin.get();
}
Дяди! Патчему папка не создаётся? бот в шоке ))
Чувак, я тебе дал код. Если тебе в падлу анализировать возвращаемые функцией значения и смотреть на каком шаге возникает ошибка, то используй его после вызова функций CreateProcess, WriteFile и CreatePipe.
Код:
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
0,
(LPTSTR) &lpMsgBuf,
0,
NULL
);
MessageBox(NULL, (LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
На кой хер ты создаёшь директорию через пайпы и CMD? Что чистый WIN API религия не позволяет использовать?
|
|
|

17.02.2009, 17:46
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Сообщение от _nic
Как можно обрезать строку типа AnsiString до опредленного символа?
сделай заданный символ равным терминальному нулю 0x00, например:
...
someAnsiBuf[5] = 0x00;
...
|
|
|

17.02.2009, 18:37
|
|
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме: 179857
Репутация:
4
|
|
Сообщение от groundhog
Чувак, я тебе дал код. Если тебе в падлу анализировать возвращаемые функцией значения и смотреть на каком шаге возникает ошибка, то используй его после вызова функций CreateProcess, WriteFile и CreatePipe.
Код:
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
0,
(LPTSTR) &lpMsgBuf,
0,
NULL
);
MessageBox(NULL, (LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
На кой хер ты создаёшь директорию через пайпы и CMD? Что чистый WIN API религия не позволяет использовать?
Да папку создать это для примера просто. А вообще при WriteFile выдаёт неверный дескриптор. Но я как ты наверно понимаешь как всегда в шоке ))
|
|
|

17.02.2009, 18:53
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Что после CreatePipe происходит? Какое сообщение?
|
|
|

17.02.2009, 19:07
|
|
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме: 179857
Репутация:
4
|
|
Сообщение от groundhog
Что после CreatePipe происходит? Какое сообщение?
"Неверная попытка доступа к адресу памяти" 
|
|
|

17.02.2009, 19:14
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
secat.nLength = sizeof(SECURITY_ATTRIBUTES);
secat.bInheritHandle = TRUE;
secat.lpSecurityDescriptor = NULL;
Что будет если так?
|
|
|

17.02.2009, 19:29
|
|
Новичок
Регистрация: 02.10.2005
Сообщений: 22
Провел на форуме: 67109
Репутация:
8
|
|
есть вопрос, типы бывают разные (int, double, float...), вот есть пустой тип void, в функцы все ясно для чего он нужен, а вот для параметрах толку от него какой? на пример:
пустые типы, не берут с памети не чего, а полза какава?
**********
Код:
#include <stdio.h>
#include <conio.h>
int main()
{
FILE *FF;
const int MAX=1024;
int x,ch;
char a[MAX];
char FirstFileName[] = {"file1.txt"};
/*printf("Insert text to first file : \n");
FF = fopen(FirstFileName,"w");
gets(a);
fputs(a,FF);
fclose(FF);
printf("\nFirst file data is : \n");
FF = fopen(FirstFileName,"r");
fgets(a,MAX,FF);
printf("%s\n",a);
fclose(FF);*/
printf("Insert text to first file : \n");
FF = fopen(FirstFileName,"w");
gets(a);
fwrite(a,sizeof(char),MAX,FF);
fclose(FF);
printf("\nData in first file : \n");
FF = fopen(FirstFileName,"r");
fread(a,sizeof(char),MAX,FF);
printf("%s\n",a);
fclose(FF);
getch();
return 0;
}
Юзая fputs, и fgets все на ура, вот только юзая fwrite какаи то каляки в файле появляются.
Код:
Hello, Welcome to C programming language v$э" рэ эЩяпv0 ‰ °,R R Э ”ь" ‰ R °,R ”ь" рЉуv,‹уvн nv R HR Nv ( HR f dЭ э" HR ё,R јR 2 lR D F јR нv @ @ё#R b f dД R ё,R , ё,R г ·,R І,R і,R R ыјы" ыДя" 4˜нv)ї юяяя,‹уvR‡уv@ H °,R @ яяяя$ЊтvooPv @ 4э" @ pя" @ @ Ђ ”Љтv,Ырvяяяя °#R R §ќ¦nHя" , , R °#R рЉуv? 4ю" зЈуv , ,‹уvMўnv , Њ, H, , , H, ? , H, , ђю" @†уv0, †уvйўnv , , Љ ЉД , ХўnvЁ#, 0, H, Ё#, , H, , H, ? ?? ‰? ? , , \э" , ? ‰ )ї Ё#, ,‹уvR‡уv , H, R‡уv, 0, , ˜°э" h, ью" 4˜нvIї юяяя†уvR†уv , , рR Аю" oЕRv , , я" kќѕv , xќѕvАЇpє рR 4цмМюяяяу¦ѕv;§ѕvФю" Дя" µ$АvLНмМюяяяxќѕv®Ьїv, p, 8я"
что это?? почему так?
ЗЫ. сорри за плохой Русс язык, сам то не с Россий.
|
|
|

17.02.2009, 19:32
|
|
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме: 179857
Репутация:
4
|
|
Сообщение от groundhog
secat.nLength = sizeof(SECURITY_ATTRIBUTES);
secat.bInheritHandle = TRUE;
secat.lpSecurityDescriptor = NULL;
Что будет если так?
Теперь все операции успешно завершены, но папка не создалась, печаль... ))
|
|
|

17.02.2009, 19:39
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
void не пустой тип. Он такой же тип как и все другие. Он эквивалентен одновременно всем типам. Просто он "безтиповый". Ты его можешь привести к любому типу. Он часто используется в задачах, когда неизвестно какой тип будет подаваться на входе... Например у тебя функция вывода чего-то... Если ты опишешь параметр как указатель на int, то это и ограничит тебя использованием int в параметрах... А если ты опишешь как указатель на void, то тут флаг тебе в руки - передавать можешь что угодно. Умей только правильно это обработать.
fwrite(a,sizeof(char),strlen(a),FF)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|