[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 2 месяца
  • Сообщений: 1099
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
Adler, aa .Декомпилятор не нужен. Если скрипт не зашифрован, то это ресмd.ехе открытый ресторатором и внедренным внутрь скриптом. Здесь читай пост от Conty9

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
vovan1982, я как раз имел ввиду зашифрованный. Несколько раз попадалось, что в ресурсах в разделе script бинарные данные одинакового формата. Примерно как скомпилированный autoit, который по сути упаковывается в оболочку интерпретатора.
Вот я и предполагаю, что если скрипт в exe может быть как не зашифрованый, так и зашифрованны то его по идее можно как то конвертировать туда-сюда.

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 2 месяца
  • Сообщений: 1099
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
Adler, есть комманда шифрования и дешифровки, но нужно знать пароль. А так, это что-то типа обфускации

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
32389А так, это что-то типа обфускации
А вот и нет ag
Да простит меня conty9 aa ah Проверил на первом, что под руку подвернулось...
Кириллица правда только потерялась...

[Цитировать]

    vovan1982
  • 214
  • Стаж: 9 лет 2 месяца
  • Сообщений: 1099
  • Репутация:76

    [+] [-]
  • Откуда: Ростов-на-Дону
Adler, а вот и да. Conty9 никогда непаролировал 78repack. Я больше скажу, в начале темы весь код выложен в чистую с комментариями им самим. За что ему огромное спасибо, т.к. это отличный пример для изучения. Попробуй 78setup так же или UTMake. Один уже пытался, из-за него и зашифровали скрипт.

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
puhpol, ну ок.
Я его не просто так туда запароленный прикрепил, потому, что "мне так хочется". На сколько я знаю, то тут были некоторые "особо умные" пользователи из далекой Азии, которые разбирали некоторые программы на том же PeCMD и подправив копирайты выдавали их за свои и некоторые на этом же форуме озадачились тем, как сделать так, что бы их нельзя было разобрать и это частично вышло.
А в выложенном мною архиве было как раз такое решение, которое сводило на нет эти средства "защиты". И я думаю, что не стоит его всем подряд раздавать, но в то же время вполне адекватным пользователям это могло бы пригодиться.
Если я не прав и так нельзя, ну ок, извинюсь, гугл тогда в помощь, это не эксклюзив, но и по первой ссылке в гугле оно не находится.

Комментарий от Joker-2013


Могли бы в конструкторском разделе написать, а не публично. И если кто запросит, то дать...


Последний раз редактировалось: Adler (2017-01-19 17:48), всего редактировалось 1 раз

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
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
  • 1736
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 42
  • Репутация:2

    [+] [-]
conty9, спасибо
но еще:
в синтаксис, мне, похоже, придётся вникать еще долго и счастливо
это единственный возможный вариант отображения вендора и модели диска? а то как то по-разному для всех
и как добавить тип носителя? (usb-hdd, usb-flash, fixed-hdd)
и вывести всё это в текстовик

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
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
  • 14940
  • Стаж: 7 лет 4 месяца
  • Сообщений: 32
  • Репутация:4

    [+] [-]
  • Откуда: г. Киров
conty9, скрипт не видит динамический диск

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
sov44, верно. Потому что динамический диск - это не физический, у него нет "железных" характеристик, это программная эмуляция, которую скрипт пропускает. Изменить скрипт можно, но смысла в этом нет, ведь при загрузке в РЕ этот диск недоступен (его нужно вначале смонтировать). А вот названия хардов скрипту, судя по всему, под ХР недоступны - нужно подправить.

[Цитировать]

    sov44
  • 14940
  • Стаж: 7 лет 4 месяца
  • Сообщений: 32
  • Репутация:4

    [+] [-]
  • Откуда: г. Киров
conty9, динамический диск у меня физический, стационарный. Он так был настроен при подключении.

[Цитировать]

    Adler
  • 1708
  • Стаж: 8 лет 6 месяцев
  • Сообщений: 1196
  • Репутация:65

    [+] [-]
  • Откуда: Луганск
sov44, он то может быть и физический, но реализуется софтово на уровне винды.

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]

Готовый скрипт (получить в текст .\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
  • 2607
  • Стаж: 8 лет 2 месяца
  • Сообщений: 842
  • Репутация:40

    [+] [-]
conty9, А если букв нет, то что?
А в общем очень непростой скрипт, очень. Даже удивлен. 90% скрипта - пропарсить выхлоп.
Он же наверное инфу из diskpart получает.
P.S. Ага. Без букв тоже вроде инфу выдаст..

Страница 7 из 28


Показать сообщения:    

Текущее время: 20-Апр 04:41

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы