Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+6 невидимых)

 eXeL@B —› Основной форум —› Лоадер меняющий время
Посл.ответ Сообщение

Ранг: 5.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 02 февраля 2005 02:33
· Личное сообщение · #1

В Sign of mysery можно создать лоадер, который меняет системное время . Надоело с помощью него создавать скрипты.
Внимание - вопрос: как создавать такие лоадеры на асме и с++?




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 02 февраля 2005 06:08
· Личное сообщение · #2

Ну если ты умеешь программировать, то тебе должно быть известно, что время можно поменять с помощью SetSystemTime и SetLocalTime.
Язык программирования роли не играет.



Ранг: 5.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 февраля 2005 00:27
· Личное сообщение · #3

Т.е. до загрузки файла ставим эти функциии все?




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 03 февраля 2005 04:23
· Личное сообщение · #4

Не ставим, а вызываем.



Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 февраля 2005 00:14
· Личное сообщение · #5

monrus:
читай дальше исходник универсального загрузчика

ps: извиняюсь за стиль, некрасивые алгоритмы и корявость работы с указателями - лень дальше оптимизировать
pps: размер экзешника должен получится ровно 1,5 кБ

//==================================================================== ====
// uniloader.cpp
// Universal loader for day-trial shareware by R0xeed
// Управляется командной строкой (в ярлыке) со следующими праметрами:
// 1 - имя исполняемого файла шароварной проги (в кавычках)
// 2 - день (цифры)
// 3 - месяц (цифры)
// 4 - год (цифры)
// Пример:
// "E:\Uniloader.exe" "exe.exe" 15 1 2005
// -> перед запуском exe.exe будет установлена дата 15 января 2005 года
//==================================================================== ====
#include <windows.h>
#define MAX_ARGUMENTS_COUNT 8
//-------------------------------------------------------------------- ----
long __cdecl strtol ( const char * pstr )
{
int cCurr ;
long lTotal ;
cCurr = *pstr++ ;
lTotal = 0 ;
while (cCurr!=(int)'\0')
{
lTotal = 10 * lTotal + (cCurr - '0') ;
cCurr = *pstr++ ;
}
return ( lTotal ) ;
}
//-------------------------------------------------------------------- ----
int __cdecl strtoi (const char * pstr)
{
return ( (int)strtol(pstr) ) ;
}
//-------------------------------------------------------------------- ----
int ParseCmdLn(char* pCmdLn, char* argv[MAX_ARGUMENTS_COUNT])
{
int argc = 0;
char* ptr = pCmdLn;
while(*ptr != '\0')
{
while(*ptr==' ' || *ptr=='\t') ptr++;
if(*ptr=='\"')
{
ptr++;
if (*ptr!='\"') argv[argc++] = ptr;
while(*ptr!='\"' && *ptr!='\0') ptr++;
}
else
{
if(*ptr>='0' && *ptr<='9')
{
argv[argc++] = ptr;
while(*ptr!='\0' && (*ptr>='0' && *ptr<='9') ) ptr++;
}
}
if (*ptr=='\0') break;
*ptr = '\0';
ptr++;
}
return argc;
}
//-------------------------------------------------------------------- ----
char* CutProgrPathFromArg(char* arg)
{
char* lastSlash;
char* ptr = arg;
while(*ptr != '\0')
{
if(*ptr=='\\' || *ptr=='/') lastSlash = ptr;
ptr++;
}
*lastSlash = '\0';
return arg;
}
//-------------------------------------------------------------------- ----
void SetDate(WORD day, WORD month, WORD year)
{
SYSTEMTIME sysTime;
GetSystemTime(&sysTime);
sysTime.wDay = day ;
sysTime.wMonth = month;
sysTime.wYear = year;
SetSystemTime(&sysTime);
}
//==================================================================== ====
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLn,
int nCmdShow)
{
char* argv[MAX_ARGUMENTS_COUNT];
int argc = ParseCmdLn(GetCommandLine(), argv);
if (argc<5)
{
MessageBox(NULL, "There is not enough arguments in a command line",
"Universal loader", MB_OK);
return 0;
}
SYSTEMTIME sysTime;
GetSystemTime(&sysTime);
WORD currDay = sysTime.wDay;
WORD currMonth = sysTime.wMonth;
WORD currYear = sysTime.wYear;
SetDate( strtoi(argv[2]), strtoi(argv[3]), strtoi(argv[4]) );
int shex = (int)ShellExecute(NULL, "open", argv[1], NULL,
CutProgrPathFromArg(argv[0]), SW_SHOW);
if (shex<=32)
{
MessageBox(NULL, "ShellExecute error", "Universal loader", MB_OK);
SetDate(currDay, currMonth, currYear);
return 0;
}
Sleep(1000);
SetDate(currDay, currMonth, currYear);
return 1;
}

[FFILE=8f07_uniloader.zip]



Ранг: 5.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 04 февраля 2005 00:40
· Личное сообщение · #6

Рахмат!!!


 eXeL@B —› Основной форум —› Лоадер меняющий время
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати