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

Win 7 и Native API
  #1  
Старый 12.11.2009, 13:11
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

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

привет всем! хочу перейти на 7'ку точнее поюзать, но немного нет времени для эксперементов так как скоро сдача курсача... все ли NativAPI корректно работают на ней? вопрос возник потому что на 7ке спомощью NtQurySystemInformation неполучилось вывести список драйверов на хр все робит на ура
 
Ответить с цитированием

  #2  
Старый 12.11.2009, 13:18
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

Win7 в принципе ничем не отличается от WinXP считай таже система.
Писал дров который инжектил DLL из ядра в гуёвый процесс. Пахало и на win xp и на win 7 так что в принципе тоже самое.
Возможно теперь эта функция требует права админа. Ты проверь что она возвращается. Вернее какой код ошибки. И от него уже нужно шагать
 
Ответить с цитированием

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

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

slesh программа зупущенна из под админа(а именно правой кнопкой на ехе запустит с правами администратора) эффект тот же =)
 
Ответить с цитированием

  #4  
Старый 12.11.2009, 14:09
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

Ну хоть какой код возвращается NtQuerySystemInformation?
 
Ответить с цитированием

  #5  
Старый 12.11.2009, 15:42
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

ТАкс. пришел домой. Проверил. Под w7 RC спокойно пашет код который пашет и в winxp
Даже не требуется прав админа.

Так что у тебя код гдето кривой. Код в студию. ))

лично я делал так:
NtQuerySystemInformation(DRIVER_INFORMATION, buf, 0, &NeedSize);
затем выделял память = NeedSize * 2
и делал NtQuerySystemInformation(DRIVER_INFORMATION, buf, NeedSize * 2, &NeedSize);
 
Ответить с цитированием

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

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

Код:
var
   NtQuerySystemInformation: function (infoClass: DWORD;
   buffer: Pointer;
   bufSize: DWORD;
   returnSize: TPDword): DWORD; stdcall;


procedure GetInstallDriver;
   var
     temp, Index, numBytes, numEntries: DWORD;
     buf: TPDword;
     driverInfo: ^TDriverInfo;
   begin
     if @NtQuerySystemInformation = nil then
       NtQuerySystemInformation := GetProcAddress(GetModuleHandle('ntdll.dll'),'NtQuerySystemInformation');
    NtQuerySystemInformation(DRIVER_INFORMATION, @temp, 0, @numBytes);     
    buf := AllocMem(numBytes * 2);
     NtQuerySystemInformation(DRIVER_INFORMATION, buf, numBytes * 2, @numBytes);
     numEntries := buf^;
      driverInfo := Pointer(DWORD(buf) + 12);
     for Index := 1 to numEntries do
      begin
       Writeln(Format('| $%-5s | %-48s |',[IntToHex(DWORD(driverInfo^.Address),8),driverInfo^.Name]));
       Inc(driverInfo);
     end;     
     FreeMem(buf);
   end;
вот этот код =)
 
Ответить с цитированием

  #7  
Старый 12.11.2009, 16:10
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

на w7 у меня отлично пашет.
 
Ответить с цитированием

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

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

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

  #9  
Старый 12.11.2009, 16:19
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

Щас преписал в более красивый вид..
Пашет тоже нормально.
Там вполне возможно он не мог найти адрес ntdll.dll из которой брал функцию NtQuerySystemInformation. Такое редко но может быть. Так что пусть попробует этот код. Если и он незаработает значит у него какаято защита установлена или вирь.

Код:
const
  DRIVER_INFORMATION = 11;

type
  TDriverInfo = packed record
    Address : DWORD;
    Unknown1 : DWORD;
    Unknown2 : DWORD;
    EntryIndex : DWORD;
    Unknown4 : DWORD;
    Name: array [0..MAX_PATH + 3] of Char;
   end;

  TDriverQueryInfo = packed record
    Count : integer;
    Unknown1 : DWORD;
    Unknown2 : DWORD;
    Drv : array [0..0] of TDriverInfo;
   end;
  PDriverQueryInfo = ^TDriverQueryInfo;


function NtQuerySystemInformation (infoClass: DWORD;  buffer: Pointer;  bufSize: DWORD;  returnSize: PDword): DWORD; stdcall; external 'ntdll.dll';


procedure GetInstallDriver;
var
  NeedByte : dword;
  Info : PDriverQueryInfo;
  x : integer;
begin
  NtQuerySystemInformation(DRIVER_INFORMATION, nil, 0, @NeedByte);
  Info := AllocMem(NeedByte * 2);
  NtQuerySystemInformation(DRIVER_INFORMATION, Info, NeedByte * 2, @NeedByte);

  for x := 0 to Info^.Count-1 do
  begin
    Writeln(Format('| $%-5s | %-48s |', [IntToHex(Info^.Drv[x].Address, 8), Info^.Drv[x].Name]));
  end;

  FreeMem(Info);
end;

begin
  GetInstallDriver();
  readln;
end.

Последний раз редактировалось slesh; 12.11.2009 в 16:25..
 
Ответить с цитированием

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

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

во ща выяснилось что семерка 64 битная! возмонжно в этом косяк или это не влияет?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы API Вконтакте SoulReaver Социальные сети 0 12.08.2009 15:46
Продажа дедиков!!! ferya Хостинг, Dedicated, VDS, Сервера - Покупка, продажа 2 07.07.2009 22:56
Native WIN API и MSVCR80.dll /^scriptor$/ С/С++, C#, Delphi, .NET, Asm 10 20.05.2009 00:37
Dedicated Servers spilberg Хостинг, Dedicated, VDS, Сервера - Покупка, продажа 1 18.02.2009 22:11



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


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




ANTICHAT.XYZ