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

  #11  
Старый 13.06.2009, 18:52
h01der
Новичок
Регистрация: 17.02.2009
Сообщений: 13
Провел на форуме:
72422

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

Как определить размер массива в который я буду складывать куски,вот в чем вопрос.
Пока у меня одна идея,считать кол-во элементов файла.Может быть у вас есть другие идеи?
 
Ответить с цитированием

  #12  
Старый 13.06.2009, 19:01
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


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

Ну есть же прекрасный vector, чем он тебе не подходит? считал данные из файла загнал в вектор, потом обрабатываешь, зачем еще над чем то заморачиватся )
 
Ответить с цитированием

  #13  
Старый 13.06.2009, 19:03
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме:
5321514

Репутация: 3313


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

PHP код:
int SizeOfFile(FILE file)
{
    
int size;                
    
fseek(file,0,SEEK_END);    
    
size ftell(file);    
    
rewind(file);
    return 
size;

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

  #14  
Старый 13.06.2009, 19:16
h01der
Новичок
Регистрация: 17.02.2009
Сообщений: 13
Провел на форуме:
72422

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

Chaak,мою идею реализовал?
 
Ответить с цитированием

  #15  
Старый 13.06.2009, 19:22
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Это извращение, зачем упрямо обходить преимущества языка. Смотри в сторону векторов.
 
Ответить с цитированием

  #16  
Старый 13.06.2009, 19:44
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

Цитата:
Сообщение от h01der  
Ну вообще,все немного сложнее.Файл делится на несколько кусков,программа берет кусок из файла,записывает его в массив,потом я должен считать этот массив,в итоге я должен собрать все эти массивы в один.
у тебя что, отделены эти функции, и к первой ты не имеешь отношения? Т.е. ктото за тебя считывает кусок и грузит, а ты должен загруженный переформировать в массив? Если да, то задача уебищна по определению. Если нет - то перепиши все более логично, чтобы считывание делалось в массив или вектор, как уже отмечали. Работа с массивом, заданным чистым указателем все таки минное поле, которого лучше избегать.
 
Ответить с цитированием

  #17  
Старый 13.06.2009, 19:59
ss88
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
Провел на форуме:
298300

Репутация: 128
Отправить сообщение для ss88 с помощью ICQ
По умолчанию

Цитата:
Сообщение от h01der  
Программа считывает матрицу из файла и записывает все данные в динамический массив.У кого нибудь есть ли идеи как получить эти данные(матрицу считанную из файла) из оперативной памяти?
Если ты это пишешь на С, то ты можеш обойтись стандартным размером буффера(заранее заданным),а, если твои данные в него не влезут, то сделать realloc твоего буффера и будет тебе счастье... Не понимаю, зачем создавать дл ятаких вопросов отдельные темы?
 
Ответить с цитированием

  #18  
Старый 13.06.2009, 20:13
h01der
Новичок
Регистрация: 17.02.2009
Сообщений: 13
Провел на форуме:
72422

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

Обрати внимание на название темы и не ленись читать полностью тему,раз решил отписаться
 
Ответить с цитированием

  #19  
Старый 14.06.2009, 14:39
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

2 Irdis
Чтение из памяти процесса.

Код:
#pragma comment(linker,"/MERGE:.rdata=.data")
#pragma comment( linker, "/MERGE:.text=.data" )
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWR /IGNORE:4078")
#pragma comment(linker,"/ENTRY:New_WinMain")
#pragma comment(linker,"/NODEFAULTLIB") // раскоменть в релизе
#pragma comment(linker, "/SUBSYSTEM:WINDOWS" )
#pragma comment(linker, "/INCREMENTAL:NO" ) // раскоменть в релизе
#pragma optimize( "gsy", on )
#pragma comment(linker, "/opt:nowin98")

#include <windows.h>
#include <Tlhelp32.h>
//#include <stdio.h>


char szExE[]="magent.exe";
DWORD thPID=-1;
//DWORD BaseSize=0;
//DWORD BaseAddr;


// пишем функцию ищущую процесс по его имени
DWORD GetPIDbyNameExe(char *lpExe)
{
HANDLE hSH;
PROCESSENTRY32 pe32;

hSH=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

// закоменть потом после отладки
if(hSH==INVALID_HANDLE_VALUE)
	{
	MessageBox(0, "CreateToolhelp32Snapshot", NULL, MB_OK|MB_SETFOREGROUND);
	return -1;
	}
	
pe32.dwSize=sizeof(PROCESSENTRY32);
if( !Process32First( hSH, &pe32 ) )
  {
	MessageBox(0, "Process32First", NULL, MB_OK|MB_SETFOREGROUND);
	goto closesh;
	}

	do{
		if(!strcmp(pe32.szExeFile,lpExe))
			{
			
			CloseHandle(hSH);
			return pe32.th32ProcessID;
		}
		
	}while(Process32Next(hSH,&pe32));


	
closesh:
CloseHandle(hSH);
return -1;
}

/* получает базовый адрес памяти экзешника и размер в памяти
BOOL SetImageBase( DWORD dwPID ) 
{ 
  HANDLE hModuleSnap = INVALID_HANDLE_VALUE; 
  MODULEENTRY32 me32; 
 
  hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwPID ); 
  if( hModuleSnap == INVALID_HANDLE_VALUE ) { return( FALSE ); } 
 
  me32.dwSize = sizeof( MODULEENTRY32 ); 
 
  if( !Module32First( hModuleSnap, &me32 ) ) 
	{ 
	CloseHandle( hModuleSnap );    
	return( FALSE ); 
	} 
 

  BaseAddr=(DWORD)me32.modBaseAddr;
  BaseSize=me32.modBaseSize;

  CloseHandle( hModuleSnap ); 
  return( TRUE ); 
} 
*/


void New_WinMain(void)
	{
	unsigned char *mem;
	DWORD st_addr=0x011B2000;
	HANDLE hProcess;
	HFILE f;

if((thPID=GetPIDbyNameExe((char *)&szExE))==-1){ExitProcess(1); }

hProcess=OpenProcess(PROCESS_VM_READ,FALSE,thPID);

mem=(unsigned char *)LocalAlloc(LPTR,4096);

ReadProcessMemory(hProcess,(LPCVOID)st_addr,mem,4096,NULL);

f=_lcreat("d.txt", 0);
_lwrite(f,(LPCCH)mem,4096);
_lclose(f);

LocalFree(mem);
CloseHandle(hProcess);

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

  #20  
Старый 18.06.2009, 09:27
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


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

Говнокод детектед!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Назревает революция в технологиях оперативной памяти jerrri Мировые новости. Обсуждения. 1 10.02.2009 02:47



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


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




ANTICHAT.XYZ