vovan1982
  - Стаж: 10 лет
- Сообщений: 1141
- Репутация:78[+] [-]
- Откуда: Ростов-на-Дону
|
Adler, .Декомпилятор не нужен. Если скрипт не зашифрован, то это ресмd.ехе открытый ресторатором и внедренным внутрь скриптом. Здесь читай пост от Conty9
|
Adler
  - Стаж: 9 лет 6 месяцев
- Сообщений: 1207
- Репутация:65[+] [-]
- Откуда: Луганск
|
vovan1982, я как раз имел ввиду зашифрованный. Несколько раз попадалось, что в ресурсах в разделе script бинарные данные одинакового формата. Примерно как скомпилированный autoit, который по сути упаковывается в оболочку интерпретатора. Вот я и предполагаю, что если скрипт в exe может быть как не зашифрованый, так и зашифрованны то его по идее можно как то конвертировать туда-сюда.
|
Adler
  - Стаж: 9 лет 6 месяцев
- Сообщений: 1207
- Репутация:65[+] [-]
- Откуда: Луганск
|
|
vovan1982
  - Стаж: 10 лет
- Сообщений: 1141
- Репутация:78[+] [-]
- Откуда: Ростов-на-Дону
|
Adler, а вот и да. Conty9 никогда непаролировал 78repack. Я больше скажу, в начале темы весь код выложен в чистую с комментариями им самим. За что ему огромное спасибо, т.к. это отличный пример для изучения. Попробуй 78setup так же или UTMake. Один уже пытался, из-за него и зашифровали скрипт.
|
 Отправлено: 19-Янв-2017 16:53
(спустя 1 месяц 25 дней)
Adler
  - Стаж: 9 лет 6 месяцев
- Сообщений: 1207
- Репутация:65[+] [-]
- Откуда: Луганск
|
puhpol, ну ок. Я его не просто так туда запароленный прикрепил, потому, что "мне так хочется". На сколько я знаю, то тут были некоторые "особо умные" пользователи из далекой Азии, которые разбирали некоторые программы на том же PeCMD и подправив копирайты выдавали их за свои и некоторые на этом же форуме озадачились тем, как сделать так, что бы их нельзя было разобрать и это частично вышло. А в выложенном мною архиве было как раз такое решение, которое сводило на нет эти средства "защиты". И я думаю, что не стоит его всем подряд раздавать, но в то же время вполне адекватным пользователям это могло бы пригодиться. Если я не прав и так нельзя, ну ок, извинюсь, гугл тогда в помощь, это не эксклюзив, но и по первой ссылке в гугле оно не находится.
Последний раз редактировалось: Adler (2017-01-19 17:48), всего редактировалось 1 раз
|
|
PART служит для создания, удаления, изменения, скрывания и перечисления разделов.Небольшой пример, какую информацию о накопителе можно получить с помощью команды PART (в переменной SelDsk указываем букву диска)ENVI SelDsk=C: PART -hextp -phy list drv %SelDsk%,TEnvi MSTR DiskN=<9>%TEnvi% MESS PartID, Type, BootMark, BaseOffset, Size, HideSectorNum, End, DrvLetter,DiskID\n%TEnvi% PART -devid list disk %DiskN%,TEnvi MESS DiskID, Size, CylinNum, HeadNum, SetorNum, SectorSize, MediaType, Sign(Hex), BusType, PartType, RemvFixDisk.\n%TENVI% FORM TEnvi=%SelDsk% MESS Type Disk (Fixed HDD/USB Drive/USB Flash)\n%TEnvi% EXIT
|
SmokieBlahBlah
  - Стаж: 9 лет 6 месяцев
- Сообщений: 42
- Репутация:2[+] [-]
|
conty9, спасибо но еще: в синтаксис, мне, похоже, придётся вникать еще долго и счастливо это единственный возможный вариант отображения вендора и модели диска? а то как то по-разному для всех и как добавить тип носителя? (usb-hdd, usb-flash, fixed-hdd) и вывести всё это в текстовик
|
|
SmokieBlahBlah, уточни задачу. Перебираем все накопители, создаём список в текстовом файле с таким содержимым: номер харда, его размер (в байтах? или пересчитывать в мега/гига /в РЕСМД это очень просто/), его тип (Fixed HDD/ USB HDD/USB Flash), буквы подключенных разделов. Разделителем что сделать - запятую? Всё или ещё чего нужно (можно получить ещё много разной инфы)?Готовый скрипт, получить в текст .\HDD_data.txt инфу о накопителяхTEAM ENVI^ EnviMode=1|SET$ &NL=0d 0a|FDRV &Drvs=*: FORX * %&Drvs%,&D,TEAM PART list drv %&D%,&&V|MSTR &&hd=<9>%&V%|^SET &Drv[%&hd%]=%%&Drv[%&hd%]%%%&D% TEAM PART list disk,&&AllDsk|ENVI &&FindLIST=|SET &D1= FORX * %&AllDsk%,&Find, {* TEAM PART -devid list disk %&Find%,&DskID|MSTR &&hd,&&SZ,&&Bus=<1><2><9>%&DskID% TEAM SED &DskID=1,DISK\&VEN_,1 ,%&DskID%|SED &DskID=1,IDE\\DISK,1 ,%&DskID%|SED &DskID=1,\&PROD_,_,%&DskID% TEAM MSTR &DskID=<-1>%&DskID%|SED &DskID=1,\&REV, ,%&DskID%|SED &DskID=1,\\, ,%&DskID%|SED &DskID=1,___, ,%&DskID% TEAM MSTR &DskID=<1>%&DskID%|SED &DskID=8,_, ,%&DskID% FIND $%&DskID%=,SET &DskID=- IFEX #%Bus%=2, SET Bus=(ATAPI) IFEX #%Bus%=3, SET Bus=(ATA) IFEX #%Bus%=7, TEAM SET Bus=(USB_HDD)|^SET &TEnvi=%%&Drv[%hd%]%%|FORM TEnvi=%&TEnvi%|FIND $%TEnvi%=DRIVE_USBFLASH,SET Bus=(USB_Flash) IFEX #%Bus%=11, SET Bus=(SATA) IFEX #%&SZ%>2G, @TEAM CALC &SZ=%&SZ%/1G#1| SET SZ=%&SZ%G! IFEX #%&SZ%>2M, @TEAM CALC &SZ=%&SZ%/1M#1| SET SZ=%&SZ%M ^SET &FindLIST=%&FindLIST%%&NL%%&Find%,%&Bus%,%&SZ%,%&DskID%,%%&Drv[%hd%]%% } FILE .\HDD_data.txt WRIT .\HDD_data.txt,$*,%&FindLIST% * скрипт подправлен 21.02.2018, добавлена поддержка ХР, уменьшил точность указания размера до одной десятойРезультат работы скрипта (ткнул в систему всё, что нашлось под руками)0,(SATA),55.9G,KINGSTON SVP200S37A60G,C: 1,(SATA),1863.0G,WDC WD20EARX-00PASB0,D:G: 2,(SATA),1863.0G,WDC WD20EARX-00PASB0,E:F: 3,(USB_HDD),298.0G,WDC WD32 00BEVT-22ZCT0,U:V: 4,(USB_Flash),7.5G,JETFLASH TRANSCEND 8GB,H: 5,(USB_Flash),44M,GENERIC FLASH DISK,K: 6,(USB_HDD),58.8G,UFD 3.0 SILICON-POWER64G,X:Z: 7,(USB_HDD),14.9G,SANDISK CRUZER EDGE,J: 8,(ATA),465.8G,ST500DM002-1BC142,W:Y: *** устройства 6 и 7 - флешки, перешитые в HDD (с помощью производственных утилит) Готовая ехе-шка (скрипт внутри, подправить можно Restorator-ом или другим редактором ресурсов) на обменнике, обновил 21.02.2018.
Последний раз редактировалось: Гость (2018-02-21 23:00), всего редактировалось 3 раз(а)
|
sov44
  - Стаж: 8 лет 4 месяца
- Сообщений: 32
- Репутация:4[+] [-]
- Откуда: г. Киров
|
conty9, скрипт не видит динамический диск
|
 Отправлено: 21-Фев-2018 09:19
(спустя 2 часа 34 минуты)
|
sov44, верно. Потому что динамический диск - это не физический, у него нет "железных" характеристик, это программная эмуляция, которую скрипт пропускает. Изменить скрипт можно, но смысла в этом нет, ведь при загрузке в РЕ этот диск недоступен (его нужно вначале смонтировать). А вот названия хардов скрипту, судя по всему, под ХР недоступны - нужно подправить.
|
sov44
  - Стаж: 8 лет 4 месяца
- Сообщений: 32
- Репутация:4[+] [-]
- Откуда: г. Киров
|
conty9, динамический диск у меня физический, стационарный. Он так был настроен при подключении.
|
Adler
  - Стаж: 9 лет 6 месяцев
- Сообщений: 1207
- Репутация:65[+] [-]
- Откуда: Луганск
|
sov44, он то может быть и физический, но реализуется софтово на уровне винды.
|
|
Готовый скрипт (получить в текст .\HDD_data.txt инфу о накопителях), с комментариями что и как```````Для облегчения понимания комментов убрал TEAM (это команда, позволяющая размещать несколько команд в одну строчку, разделяя их символом "|"). Применение TEAM позволяет уменьшить кол-во строчек за счет увеличения их длины `==================================================== ENVI^ EnviMode=1 `определяем работу с локальными переменными SET$ &NL=0d 0a `присваиваем &NL код перевода строки FDRV &Drvs=*: `получаем в переменную &Drvs список всех букв дисков в системе (C: D: E: ...) FORX * %&Drvs%,&D, `начинаем перебор буковок, обрабатываемая буква в переменной &D {* PART list drv %&D%,&&V `получаем в переменную &&V инфу о смонтированном на эту букву накопителе, в одну строчку: PartID, Type, BootMark, BaseOffset, Size, HideSectorNum, End, DrvLetter, HD number | выглядит примерно так: 3 12 1 474384798720 25720450560 926532810 500105249280 D: 1 MSTR &&hd=<9>%&V% `из всей полученной инфы используем только номер накопителя, 9-е значение |в примере - это 1 (hd1) ^SET &Drv[%&hd%]=%%&Drv[%&hd%]%%%&D% `присваиваем переменной Drv [с привязкой к номеру текущего накопителя hd0] используемую букву } `повторяем для следующей буквы диска, в результате получим привязку всех буковок к номеру накопителя, например, &Drv0=C:F:G: PART list disk,&&AllDsk `получаем в переменную &&AllDsk инфу о всех накопителях (примерно так будет 0 1 2 3 4, если в системе 5 накопителей) ENVI &&FindLIST= `очищаем переменную &&FindLIST SET &D1= `очищаем переменную &D1 FORX * %&AllDsk%,&Find, `начинаем перебор списка накопителей %&AllDsk%, текущее значение в переменной &Find {* PART -devid list disk %&Find%,&DskID `получаем в переменную &DskID инфу о накопителе с номером %&Find%, в одну строчку: DiskID, Size, CylinNum, HeadNum, SetorNum, SectorSize, MediaType, Sign(Hex), BusType, PartType, RemvFixDisk, DiskInfo | выглядит примерно так: 0 500107862016 60801 255 63 512 12 CE3BDCAA 3 MBR F IDE\DISKST500DM002-1BC142_______________________JC4B____\5&1D4241CA&0&0.0.0 MSTR &&hd,&&SZ,&&Bus=<1><2><9>%&DskID% `извлекаем 1-е, второе и девятое слова из инфы, это будет соответственно номер харда, размер и шина SED &DskID=1,DISK\&VEN_, ,%&DskID% `заменяем первую найденную комбинацию "DISK\&VEN_" на " " (пробел), чистим "мусор" с головы SED &DskID=1,IDE\\DISK,1 ,%&DskID% `заменяем первую найденную комбинацию "IDE\\DISK" на " " SED &DskID=1,\&PROD_,_,%&DskID% `заменяем первую найденную комбинацию "\&PROD_" на "_" MSTR &DskID=<-1>%&DskID% `присваиваем переменной &DskID только последнее слово (отсекаем мусор спереди) SED &DskID=1,\&REV, ,%&DskID% `заменяем первую найденную комбинацию "\&REV" на " " (пробел), чистим "мусор" с хвоста SED &DskID=1,\\, ,%&DskID% `заменяем первую найденную комбинацию "\\" на " " SED &DskID=1,___, ,%&DskID% `заменяем первую найденную комбинацию "___" на " " MSTR &DskID=<1>%&DskID% `присваиваем переменной &DskID только первое слово (отсекаем мусор сзади) SED &DskID=8,_, ,%&DskID% `заменяем все "_" на пробелы (для красоты) FIND $%&DskID%=,SET &DskID=- `если инфа о накопителе не получена, тогда прочерк "-" IFEX #%Bus%=2, SET Bus=(ATAPI) `анализ шины >> ATAPI IFEX #%Bus%=3, SET Bus=(ATA) `анализ шины >> ATA IFEX #%Bus%=7, `анализ шины - USB, но пока не известно - Flash или HDD { SET Bus=(USB_HDD) `анонсом присвоим шине значение USB-HDD ^SET &TEnvi=%%&Drv[%hd%]%% `получаем буквы дисков для этого накопителя FORM &TEnvi=%&TEnvi% `получаем в TEnvi тип устройства FIND $%&TEnvi%=DRIVE_USBFLASH,SET Bus=(USB_Flash) `если устройство USB_Flash, тогда обзываем его флешкой )) } IFEX #%Bus%=11, SET Bus=(SATA) `анализ шины >> SATA IFEX #%&SZ%>2G, @TEAM CALC &SZ=%&SZ%/1G#1|SET SZ=%&SZ%G! IFEX #%&SZ%>2M, @TEAM CALC &SZ=%&SZ%/1M#1| SET SZ=%&SZ%M `Пересчет байтов в кило/мега/гигабайты. #1 задаёт точность отображения результата (один знак после запятой) ^SET &FindLIST=%&FindLIST%%&NL%%&Find%,%&Bus%,%&SZ%,%&DskID%,%%&Drv[%hd%]%% `после перевода строки (код в %&NL%) добавляем строчку с данными харда в общий списочек &FindLIST, данные: номер накопителя, шина, размер, название, буквы смонтированных разделов } FILE .\HDD_data.txt `удаляем файл .\HDD_data.txt `удаляем файл .\HDD_data.txt (если имеется) WRIT .\HDD_data.txt,$*,%&FindLIST% `записываем в файл .\HDD_data.txt наш список Отдельно замечу - очень легко не только получить информацию о накопителе, но и разобрать её на составляющие, удалить ненужное. Арифметические операции - вообще мечта.
Последний раз редактировалось: Гость (2018-02-22 22:11), всего редактировалось 3 раз(а)
|
dialmak
  - Стаж: 9 лет 2 месяца
- Сообщений: 842
- Репутация:40[+] [-]
|
conty9, А если букв нет, то что? А в общем очень непростой скрипт, очень. Даже удивлен. 90% скрипта - пропарсить выхлоп. Он же наверное инфу из diskpart получает. P.S. Ага. Без букв тоже вроде инфу выдаст..
|
Страница 7 из 28
Текущее время: 19-Апр 20:12
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|