ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Обход ограничений Fat32/ntfs (си)
  #1  
Старый 03.05.2008, 12:50
Аватар для DaemoniZ
DaemoniZ
Познающий
Регистрация: 09.01.2006
Сообщений: 53
Провел на форуме:
285050

Репутация: 16
Question Обход ограничений Fat32/ntfs (си)

В хорошо изветном нам глянцевом жюрнале за февраль 2004 года (#062) была статья на эту тему. В ней был преведен код по сабжу

PHP код:
#include <windows.h>

void main()

{

char *old "C:\\TMP\\somefile.txt";

char *_new "C:\\TMP\\twodots..";

//переменные для нового и старого имени файла

char *newname;

wsprintf(newname,"%s.\\",_new);

//добавляем символы «.\» в новое имя файла

MoveFile(oldnewname);

//переименовываем файл


Не могу скомпилировать. VC6 ругается:

Цитата:
--------------------Configuration: tryfatntfs - Win32 Debug--------------------
Compiling...
main.cpp C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\tryfatntfs\main.cpp(15) : warning C4700: local variable 'newname' used without having been initialized
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/tryfatntfs.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
tryfatntfs.exe - 2 error(s), 1 warning(s)


С другим способом тоже проблема:

PHP код:
#include <windows.h>

#include <iostream.h>

void CreateStrangeFile(char *filename)

{

char *curdir//текущая папка

char *uncpath//полный путь до файла в формате UNC

GetCurrentDirectory(MAX_PATH,curdir); //получаем текущий каталог

wsprintf(uncpath,"\\\\?\\%s\\%s",curdirfilename); //формируем UNC-путь

HANDLE hFile CreateFileuncpathGENERIC_WRITEFILE_SHARE_WRITENULL,

CREATE_ALWAYSNULLNULL);

//создаем новый файл

DWORD ret;

__try {

WriteFile(hFile,"This is a super secret info",28,&retNULL);

//записываем секретную инфу

}

__finally {

CloseHandle(hFile);

//закрываем файл

}

}

void main()

{

CreateStrangeFile("prn");

//создаем файл «prn»


Цитата:
--------------------Configuration: tryfatntfs - Win32 Debug--------------------
Compiling...
main.cpp
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\tryfatntfs\main.cpp(13) : warning C4700: local variable 'curdir' used without having been initialized
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\tryfatntfs\main.cpp(15) : warning C4700: local variable 'uncpath' used without having been initialized
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/tryfatntfs.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

tryfatntfs.exe - 2 error(s), 2 warning(s)


Как исправить?


Оригинал статьи
 
Ответить с цитированием

  #2  
Старый 03.05.2008, 13:19
Аватар для arpm
arpm
Новичок
Регистрация: 06.04.2008
Сообщений: 8
Провел на форуме:
21887

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

Наиболее вероятная пролема - линкер думает, что собирает не консольное приложение, а вин32 приложение, и поэтому ищет entrypoint WinMain()
 
Ответить с цитированием

  #3  
Старый 03.05.2008, 13:21
Аватар для DaemoniZ
DaemoniZ
Познающий
Регистрация: 09.01.2006
Сообщений: 53
Провел на форуме:
285050

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

Собираю точно консольное приложение. Побовал кстати компилировать с помошью C++Builder 2007. Тоже не получается.
 
Ответить с цитированием

  #4  
Старый 03.05.2008, 13:26
Аватар для criz
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

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

Цитата:
Сообщение от arpm  
Наиболее вероятная пролема - линкер думает, что собирает не консольное приложение, а вин32 приложение, и поэтому ищет entrypoint WinMain()
+1.
Вот, что говорит микрософт:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;125750
 
Ответить с цитированием

  #5  
Старый 03.05.2008, 13:26
Аватар для DaemoniZ
DaemoniZ
Познающий
Регистрация: 09.01.2006
Сообщений: 53
Провел на форуме:
285050

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

Блин. Извиняюсь. Действительно. Вы правы.
 
Ответить с цитированием

  #6  
Старый 03.05.2008, 14:00
Аватар для criz
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

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

А зачем нужно вот это:
Код:
char *newname; 

wsprintf(newname,"%s.\\",_new);
?
можно же другим способом "склеить строки"
 
Ответить с цитированием

  #7  
Старый 03.05.2008, 14:04
Аватар для DaemoniZ
DaemoniZ
Познающий
Регистрация: 09.01.2006
Сообщений: 53
Провел на форуме:
285050

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

Может только с помошью wsprintf можно задать неправильное имя?

Появилась другая проблема. Программа падает при запуске.
 
Ответить с цитированием

  #8  
Старый 03.05.2008, 15:07
Аватар для criz
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

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

Попробуй использовать:
Код:
wchar_t *wcscat( wchar_t *strDestination, const wchar_t *strSource );
 
Ответить с цитированием

  #9  
Старый 03.05.2008, 19:47
Аватар для DaemoniZ
DaemoniZ
Познающий
Регистрация: 09.01.2006
Сообщений: 53
Провел на форуме:
285050

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

эээммм.... пожно поподробнее, как?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хитрый обход файрволов. Часть 2. desTiny Авторские статьи 4 28.05.2008 00:07
Хитрый обход файрволов desTiny Авторские статьи 3 21.04.2008 17:19
PHP 4.4.7 обход safe_mode _Sanich Уязвимости 2 12.02.2008 17:20
[Peer-To-Peer] Обход бота Isis Чаты 0 21.01.2008 13:48
Обход регистрации в Invision Power Board v1.3 Final DeeIP Форумы 1 10.04.2005 20:35



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


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




ANTICHAT.XYZ