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

16.05.2010, 13:49
|
|
Познающий
Регистрация: 22.11.2009
Сообщений: 53
Провел на форуме: 33126
Репутация:
0
|
|
Теперь мучает вторая часть вопроса.Как найти вторую производную?))
|
|
|

16.05.2010, 14:31
|
|
Участник форума
Регистрация: 07.08.2008
Сообщений: 281
Провел на форуме: 3300342
Репутация:
165
|
|
Всем привет.
Кому не трудно, набросайте пожалуйста программку, которая
Скопирует сама себя в папку C:\Windows
Или дайте ссылку на мануалы по этим функциям 
|
|
|

16.05.2010, 15:31
|
|
Участник форума
Регистрация: 06.02.2006
Сообщений: 177
Провел на форуме: 1576821
Репутация:
88
|
|
qwert135
Если не вдаваться в объяснения. то
f''(x) = (f(x_left)-2f(x)+f(x_right))/(h^2)
h = |x_left-x|=|x_right-x| = что-то оч. малое
x_left-x<0;
x_right-x>0;
---------------
В общем тут всё понятно, так как вторая производная это производная первой производной...
|
|
|

16.05.2010, 17:06
|
|
Познающий
Регистрация: 22.11.2009
Сообщений: 53
Провел на форуме: 33126
Репутация:
0
|
|
Irdis
спасиб.А как можно проверить пустой файл или нет(файл текстовый, желательно пример)
Последний раз редактировалось qwert135; 17.05.2010 в 01:53..
|
|
|

17.05.2010, 15:09
|
|
Участник форума
Регистрация: 07.02.2010
Сообщений: 111
Провел на форуме: 619439
Репутация:
127
|
|
Сообщение от qwert135
Irdis
спасиб.А как можно проверить пустой файл или нет(файл текстовый, желательно пример)
Можно юзать file_stat
Код:
// read file status, print size, dates etc
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
struct stat file_stat;
int status;
char filename[50]={0};
printf("enter filename ? ");
scanf("%s", filename);
int fildes = open(filename, O_RDWR); // open file
// get file status for details see
// http://www.opengroup.org/onlinepubs/007908799/xsh/fstat.html
status = fstat(fildes, &file_stat); // get its status
// print file status informations for details see
// http://www.opengroup.org/onlinepubs/007908799/xsh/sysstat.h.html
printf("file %s size %d\n", filename, file_stat.st_size); // print status
printf("last access %s\n", ctime(&file_stat.st_atime));
printf("last mofification %s\n", ctime(&file_stat.st_mtime));
printf("last status change %s\n", ctime(&file_stat.st_ctime));
return 0;
}
|
|
|

17.05.2010, 15:41
|
|
Участник форума
Регистрация: 06.02.2010
Сообщений: 216
Провел на форуме: 771684
Репутация:
26
|
|
Сообщение от b82a
Можно юзать file_stat
Код:
// read file status, print size, dates etc
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
struct stat file_stat;
int status;
char filename[50]={0};
printf("enter filename ? ");
scanf("%s", filename);
int fildes = open(filename, O_RDWR); // open file
// get file status for details see
// http://www.opengroup.org/onlinepubs/007908799/xsh/fstat.html
status = fstat(fildes, &file_stat); // get its status
// print file status informations for details see
// http://www.opengroup.org/onlinepubs/007908799/xsh/sysstat.h.html
printf("file %s size %d\n", filename, file_stat.st_size); // print status
printf("last access %s\n", ctime(&file_stat.st_atime));
printf("last mofification %s\n", ctime(&file_stat.st_mtime));
printf("last status change %s\n", ctime(&file_stat.st_ctime));
return 0;
}
Это же на C?
|
|
|

17.05.2010, 16:29
|
|
Участник форума
Регистрация: 07.02.2010
Сообщений: 111
Провел на форуме: 619439
Репутация:
127
|
|
Сообщение от yaneblinchik
Это же на C?
А он указал конкретный язык?
|
|
|

17.05.2010, 17:19
|
|
Познающий
Регистрация: 25.04.2008
Сообщений: 51
Провел на форуме: 146826
Репутация:
17
|
|
Помогите выгрузить Dll
Здравствуйте.
У меня есть код инжекта DLL
Код:
#include <windows.h>
#include <stdio.h>
#include <tlhelp32.h>
#include <shlwapi.h>
#include <iostream>
using namespace std;
#pragma comment(lib, "shlwapi.lib")
//I could just use PROCESS_ALL_ACCESS but it's always best to use the absolute bare minimum of priveleges, so that your code works in as
//many circumstances as possible.
#define CREATE_THREAD_ACCESS (PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ)
BOOL WriteProcessBYTES(HANDLE hProcess,LPVOID lpBaseAddress,LPCVOID lpBuffer,SIZE_T nSize);
BOOL LoadDll(char *procName, char *dllName);
BOOL InjectDLL(DWORD ProcessID, char *dllName);
unsigned long GetTargetProcessIdFromProcname(char *procName);
bool IsWindowsNT()
{
// check current version of Windows
DWORD version = GetVersion();
// parse return
DWORD majorVersion = (DWORD)(LOBYTE(LOWORD(version)));
DWORD minorVersion = (DWORD)(HIBYTE(LOWORD(version)));
return (version < 0x80000000);
}
//int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
int main() {
cout << "Hello\n";
Sleep(2000);
while(1) {
cout << "\n---------------------------------------------\n";
char process[101], dllname[101];
cout << "Enter process name (example: hl.exe)\n";
cin.getline(process, 100);
cout << "Enter dll name (example: 1vs16.dll)\n";
cin.getline(dllname, 100);
cout << "Try inject...\n";
cout << "Process: " << process << " dll: " << dllname << endl;
if(IsWindowsNT()) LoadDll(process, dllname);
else cout << "Your system does not support this method";
}
return 0;
}
BOOL LoadDll(char *procName, char *dllName)
{
DWORD ProcID = 0;
ProcID = GetTargetProcessIdFromProcname(procName);
cout << "Process ID: " << ProcID << endl;
if(!(InjectDLL(ProcID, dllName))) cout << "Process located, but injection failed\n";
else cout << "Successful!\n";
return true;
}
BOOL InjectDLL(DWORD ProcessID, char *dllName)
{
HANDLE Proc;
char buf[50]={0};
LPVOID RemoteString, LoadLibAddy;
if(!ProcessID)
return false;
Proc = OpenProcess(CREATE_THREAD_ACCESS, FALSE, ProcessID);
if(!Proc)
{
sprintf(buf, "OpenProcess() failed: %d", GetLastError());
cout << buf << endl;
return false;
}
LoadLibAddy = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
RemoteString = (LPVOID)VirtualAllocEx(Proc, NULL, strlen(dllName), MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(Proc, (LPVOID)RemoteString, dllName, strlen(dllName), NULL);
CreateRemoteThread(Proc, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddy, (LPVOID)RemoteString, NULL, NULL);
CloseHandle(Proc);
return true;
}
unsigned long GetTargetProcessIdFromProcname(char *procName)
{
PROCESSENTRY32 pe;
HANDLE thSnapshot;
BOOL retval, ProcFound = false;
thSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(thSnapshot == INVALID_HANDLE_VALUE)
{
cout << "Error: unable to create toolhelp snapshot\n";
return false;
}
pe.dwSize = sizeof(PROCESSENTRY32);
retval = Process32First(thSnapshot, &pe);
while(retval)
{
if(StrStrI(pe.szExeFile, procName) )
{
ProcFound = true;
break;
}
retval = Process32Next(thSnapshot,&pe);
pe.dwSize = sizeof(PROCESSENTRY32);
}
return pe.th32ProcessID;
}
он работает.
Вопрос - как выгрузить длл, загруженную таким образом, из процеса
Последний раз редактировалось agrofyl2; 17.05.2010 в 17:37..
|
|
|

17.05.2010, 17:27
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
все тоже самое, только сменить функцию с LoadLibrary на FreeLibrary.
|
|
|

17.05.2010, 18:24
|
|
Познающий
Регистрация: 25.04.2008
Сообщений: 51
Провел на форуме: 146826
Репутация:
17
|
|
В этой строчке?
Код:
LoadLibAddy = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
LoadLibraryA-> FreeLibrartA ?
Пробовал, не выгружается так.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|