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

  #1  
Старый 09.12.2009, 16:46
StealthMaster
Познающий
Регистрация: 03.12.2008
Сообщений: 56
Провел на форуме:
140714

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

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

А если хранишь текст в константах, то чтобы отредактировать какой либо текст, придется заново открыть исходник, внести изменения и откомпилировать программу. Долго и неудобно.

Последний раз редактировалось StealthMaster; 09.12.2009 в 16:48.. Причина: поставил смайлик)
 
Ответить с цитированием

  #2  
Старый 09.12.2009, 16:48
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

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

возник вопрос как получить список всех модулей в системе (загруженных) через NtQuerySystemInformation немогу понять какую ей структуру надо
Код:
Procedure GetSystemInformation;
 var
   Temp: PSYSTEM_MODULE_INFORMATION;
   modin:PSYSTEM_MODULE_INFORMATION;
   ReturnLength: DWORD;
  I: integer;
  ou:integer;
 begin
  ou:=0;
   try
     ReturnLength := 0;
     if NtQuerySystemInformation(SystemModuleInformation,nil, 0, ReturnLength) <> STATUS_INFO_LENGTH_MISMATCH then
      Exit;
     if ReturnLength > 0 then
       begin
        GetMem(modin, ReturnLength);
        try
         if NtQuerySystemInformation(SystemModuleInformation,modin, ReturnLength, ReturnLength) = 0 then
         begin
           Temp := modin;
             repeat

              Form2.ListBox1.Items.Add(Temp^.aSysM.ImageName);
               Temp := Pointer(DWORD(Temp) + Temp^.aSysM.ModuleNameOffset);
               if Temp^.aSysM.ModuleNameOffset=0 then
                inc(ou);

             until ou=2;
         end;
       finally
         FreeMem(modin);
       end;
     end;
   finally
   end;
end;
 SYSTEM_MODULE= ^_SYSTEM_MODULE;
  _SYSTEM_MODULE= packed record
    Reserved:array[0..1] of  ULONG;
    Base:ULONG;
    Size:ULONG;
    Flags:ULONG;
    Index:ULONG;
    Unknown:ULONG;
    ModuleNameOffset:SHORT;
    ImageName:Array[0..256] of Char;
  end;
  PSYSTEM_MODULE_INFORMATION = ^SYSTEM_MODULE_INFORMATION;
  SYSTEM_MODULE_INFORMATION = packed record
   uCount:ULONG;
   aSysM:SYSTEM_MODULE;
  end;
уже начался брутвфорс по перебору вариантов но это не дело...
 
Ответить с цитированием

  #3  
Старый 09.12.2009, 16:51
DiHWO
Участник форума
Регистрация: 23.10.2009
Сообщений: 103
Провел на форуме:
289669

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

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

  #4  
Старый 09.12.2009, 18:04
Thenno
Участник форума
Регистрация: 03.07.2009
Сообщений: 151
Провел на форуме:
638378

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

Цитата:
Сообщение от DiHWO  
StealthMaster, сэнк, вот если хранить в тхт, можно как - то спрятать тхт чтобы программа была одним файлом? просто прогу хочу на школьный конкурс, и какбе прога которая берет все из тхт файлов....ну неочень проффесионально\опрятно чтоли....
Почему неопрятно? Очень даже опрятно. Используй обычные текстовые файлы с собственным расширением. Я бы сделал так - исполнимый файл и рядом папку с базой этих самых файлов. Так будет удобнее и для расширения, и для реализации.
Хотя самое красивое решение - это с базой данных, ИМХО.
 
Ответить с цитированием

  #5  
Старый 09.12.2009, 18:12
DiHWO
Участник форума
Регистрация: 23.10.2009
Сообщений: 103
Провел на форуме:
289669

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

всем спасибо, буду делать с текстовыми файлами.
 
Ответить с цитированием

  #6  
Старый 09.12.2009, 18:21
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

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

хм... исправил ошибку.... но заметил что ели делать через тул хелп модуль то выводит только модули своего процесса а не все что загруженный в системе.... с нт квери тож такая же трабла но оноа еще и драйвера.. но если выкинуть дрова то снова модули моего процесса так как получить модлуи DLL которые в данный момент загруженны в системе?
Код:
Procedure GetSystemInformation;
 var
   Temp: PSYSTEM_MODULE_INFORMATION;
   modin:PSYSTEM_MODULE_INFORMATION;
   ReturnLength: DWORD;
  I: integer;
  ou:integer;
 begin
  ou:=0;
   try
     ReturnLength := 0;
     if NtQuerySystemInformation(SystemModuleInformation,nil, 0, ReturnLength) <> STATUS_INFO_LENGTH_MISMATCH then
      Exit;
     if ReturnLength > 0 then
       begin
        GetMem(modin, ReturnLength);
        try
         if NtQuerySystemInformation(SystemModuleInformation,modin, ReturnLength, ReturnLength) = 0 then
         begin
           Temp := modin;
           for I := 0 to Temp^.uCount do
      //     if pos('.dll',String(Temp^.aSysM[i].ImageName))>0 then
             Form2.ListBox1.Items.Add(ExtractFileName(Temp^.aSysM[i].ImageName));
         end;
       finally
         FreeMem(modin);
       end;
     end;
   finally
   end;
end;
 
Ответить с цитированием

  #7  
Старый 09.12.2009, 19:02
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

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

Pr0mo не мне список драйверов ненужен мне надо именно списко загруженных длл в системе =)
 
Ответить с цитированием

  #8  
Старый 10.12.2009, 00:43
Pr0mo
Новичок
Регистрация: 26.11.2009
Сообщений: 20
Провел на форуме:
88440

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

Цитата:
Сообщение от transserg  
Pr0mo не мне список драйверов ненужен мне надо именно списко загруженных длл в системе =)
Извиняюсь, не заметил сначала. Тогда есть вариант обратиться к каждому объекту, вызывающющему dll через его PID и на основе этого построить список загруженных библиотек в системе:

Код:
procedure GetAllDLL(var DLLList:TStringList);
var
 i:integer;
 tList:TStringList;
 ArrInfo:TLpModuleInfoArray;
begin
 tList:=TStringList.Create;
 ArrInfo:=GetAllProcessesInfo(false);
  for i:=0 to Length(ArrInfo)-1 do
   begin
     GetLoadedDLLList(tList,ArrInfo[i].ModulePID,[moIncludeHandle]);
     DLLList.AddStrings(tList);
   end;
   tList.Free;
end;

 // пример использования:

procedure TForm1.Button1Click(Sender: TObject);
var
 ntDLLList:TStringList;
begin
ntDLLList:=TStringList.Create;
GetAllDLL(ntDLLList);
ListBox1.Items:=ntDLLList;
ntDLLList.Free;
end;
Однако для компиляции тебе понадобиться отдельный модуль : ProcUtilz (скачать)

Последний раз редактировалось Pr0mo; 10.12.2009 в 00:45..
 
Ответить с цитированием

  #9  
Старый 09.12.2009, 19:16
alwex
Участник форума
Регистрация: 14.12.2008
Сообщений: 140
Провел на форуме:
186812

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

всем привет, помогите решить тупую задачу...
вывести 2 натуральных числа дробь каких наближает число Пи(3.14) с найбольшей точностью на Pascal...
 
Ответить с цитированием

  #10  
Старый 09.12.2009, 22:17
Jajce
Новичок
Регистрация: 09.12.2009
Сообщений: 2
Провел на форуме:
1928

Репутация: 0
Question

А как можно перевести эту прогу в графический режим с использованием СтрингГрида?
Код:
{$APPTYPE CONSOLE}

type
  TMatrix =
    record
      size: integer;
      data: array of array of integer;
    end;

var
  m: TMatrix;

function Minor(matrix: TMatrix; i,j: integer): TMatrix;
var
  a,b,a1,b1: integer;
begin
  a1 := -1;
  b1 := -1;
  result.size := matrix.size - 1;
  setlength(result.data, result.size, result.size);
  for a := 0 to result.size do
    begin
      if a=i then
        continue
      else
        inc(a1);
      for b := 0 to result.size do
        begin
          if b = j then
            continue
          else
            if b - b1 > 1 then
              inc(b1)
            else
              b1 := 0;
          result.data[a1,b1] := matrix.data[a,b];
      end;
    end;
end;

function Determ(matrix: TMatrix): integer;
var
  i: integer;
begin
  result := 0;
  if matrix.size = 2 then
    result := (matrix.data[0,0]*matrix.data[1,1]) - (matrix.data[0,1]*matrix.data[1,0])
  else
    begin
      for i := 0 to matrix.size - 1 do
        if odd(i+1) then
          result := result + matrix.data[i,0]*Determ(Minor(matrix,i,0))
        else
          result := result - matrix.data[i,0]*Determ(Minor(matrix,i,0));
    end;
end;

begin
  m.size := 3;
  setlength(m.data,3,3);
  m.data[0,0] := 2;
  m.data[0,1] := 4;
  m.data[0,2] := -1;
  m.data[1,0] := -1;
  m.data[1,1] := 3;
  m.data[1,2] := 2;
  m.data[2,0] := 3;
  m.data[2,1] := 2;
  m.data[2,2] := -2;
  writeln(Determ(m));
  readln;
end.
Просто у самого не получается никак
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



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


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




ANTICHAT.XYZ