CDS Reader — скачать бесплатно CDS Reader 1.0

Cds reader

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

Формат CDS – это формат хранения табличных данных, иногда используемый в программах, разработка которых велась с применением компоненты ClientDataSet фирмы Borland. Несмотря на некоторые преимущества этого формата, широкого распространения он не получил. Вследствие этого существует очень мало программ, позволяющих открывать, просматривать и редактировать произвольные таблицы CDS.

Программа CDS Reader разрабатывалась в качестве простого и удобного средства просмотра и редактирования таблиц формата CDS. По причине отсутствия аналогичного программного обеспечения CDS Reader зарекомендовал себя в качестве основного инструмента для редактирования содержимого cds-файлов.

Read secure digital (sd) card serial number from the cid

(Quick link to an executable, this might read the serial number on Windows XP/Vista/32/64 when you are not using a USB card reader (so when you have the card in a slot on the side of a laptop it should work — though it depends on the driver!)). Requires .Net Framework 3.5.

I got an email about a post from ages ago on the msdn forums about reading the serial number from an SD Card. People want to do this as the number is factory stamped and unchangeable, so it could be used to protect programs from being copied. Distribute your program on an SD Card, have it check the serial, and have it fail if the number doesn’t match a hard-coded version. Maybe there’s more to it than that. But anyway the thread went along the lines of:

1) I want to read the serial
2) Someone suggested: Well use DeviceIOControl to send IOCTL_DISK_GET_STORAGEID to the drive.

At the time I’d just been playing with DeviceIOControl, and had spent ages working out how to use it from .Net. There weren’t any useful examples that I could find. I was working at trying to make a CD Burner, using COM Interop to talk to IMAPI on XP (before IMAPI2). I’d learnt about DeviceIOControl, and how it can be used to send messages straight to a device. I used it to find out things that IMAPI couldn’t tell you — like the exact media in the drive, and whether the drive was ready. I eventually got a program that could burn MP3s to CD. I never quite finished it though. I wasn’t sure how to deal with all the possible errors during burning — there were so many!

I quickly wrote some code that demonstrated sending the message. I didn’t know if the number was really the hardware stamped serial or whether it was just something windows dreamt up (like the volume serial you get with dir c:).

Еще про Ниссан:  Уходит антифриз - 5 - Двигатель - Primera Club

I was asked again this week about this, and pointed in the direction of the concise SD specification (you can only see the big one if you pay $$$$, as it isn’t an open standard). It’s call the simplified version of the physical layer spec. This describes various commands that can be sent. Command 10 returns the CID. The CID is the bit we are interested in, the Card IDentification register:

Manufacturer IDMID8[127:120]
OEM/Application IDOID16[119:104]
Product NamePNM40[103:64]
Product RevisionPRV8[63:56]
Product Serial NumberPSN32[55:24]
Manufacturing DateMDT12[19:8]
CRC7 ChecksumCRC7[7:1]
not used, always 11[0:0]

There we have 128 bits used to identify the device. I was asked if the number that my earlier program grabbed was this number from the CID. I don’t know…(edit — NO it isn’t the same. IOCTL_DISK_GET_STORAGEID is useless — it gets a serial that Windows invents when it formats a volume.)

I decided to try and get this CID number out, and I’ve managed to, but there are provisos. My program (VB.Net) currently works only on Vista 64. Weirdly it only works when compiled for the x86 platform (the build target in visual studio). When I tried it on Vista 32 I got invalid handle errors. Sheesh. The other biggy is that it only works when the SD Card is plugged into a reader that is attached directly to the pci bus. If USB is involved in the chain, then the DeviceIOControl messages go to the USB host controller, and it doesn’t understand them. It works on my laptop’s reader, but not on a fan controller/card reading gadget plugged in to my desktop as its card reader is attached via a USB header on the mobo.

Here are some pics of the CIDs. They came out reversed, and the endianness of the serial number and manufacturer date were unhelpful. In the pics below, the 16 bytes are the ones I got in my buffer, but reversed order. They tally quite well with the above table. But, the leftmost byte (0 in each case) shouldn’t be there, and we are missing the CRC and final bit. So it goes — Unspecified byte, MID, OID, OID, PNM, PNM, PNM, PNM, PNM, PRV, PSN, reserved MDT, MDT. And the CRC is missing.


I bought the two Crucial 4GB cards at the same time, note the serial numbers are adrift by 2 — a good indication I’m not getting gobbledegook. The Manufacture date is mm/yyyy. Also the numbers tally with the hardware IDs found in Windows Device Manager, which are described in the DDK, er WDK rather. Which you can get for free now. I bought the Veho card two weeks ago, looks like it was made just last month. It also looks like Vehos are made by Corsair — or maybe they are both made by some other company. Crucial don’t fill in the product name or version, all the bytes were 0.

Еще про Ниссан:  Ремонт, сервис и диагностика автомобилей в Москве в автосервисах официального дилера Автоцентр

The bit where is says «This is an SD card», is because it also checks if the drive selected in the combobox is an SD card before attempting to get data.

So, how’s it done? Well, you send an IOCTL specifying an SD Command with DeviceIOControl. Again it’s in the WDK. These are just user mode calls, so we aren’t in the realms of writing a driver. The main difficulties were trying to decipher the documentation, which appears to be plain wrong in places. This lead to many many errors being returned by DeviceIOControl. Eventually I managed to send off command 0 without any complaint whatsoever, and figured I must be doing something right. I was using C code from elsewhere in the msdn forums and a bit of C Interop. I then got something back from cmd 10. I then went and did it in VB.Net instead as all this C was driving me mad. I can read it, but programming in it is a very laborious process for me.

I used IOCTL_SFFDISK_QUERY_DEVICE_PROTOCOL to check if a mount point was an SD card. Then IOCTL_SFFDISK_DEVICE_COMMAND to send cmd10. DeviceIOControl just takes the IOCTL code and a blob of memory — in .Net I used a byte array. The byte array contains a SFFDISK_DEVICE_COMMAND_DATA structure first, then the SDCMD_DESCRIPTOR. Both of these structures were 20 bytes big on x64 vista when using c , so I made sure they were that size in .Net too. The Cmd field of SDCMD_DESCRIPTOR is very nasty. The documentation says to fill it with a value from the SD_COMMAND_CODE data type and lists two «allowed values». Well, both of those values give errors. Instead you should set the sd command code — i.e. 10 for command 10, 0 for command 0!!!!! After that structure I sent 16 bytes to receive the CID. And unfortunately I get 15 bytes of CID with a 00 in front and no CRC. Maybe I have some alignment problems with the structures. It might explain why my code isn’t porting too.

I’ll iron out the bugs and try and get it running on my dilapidated axim 50v too with the compact framework. I’m currently attempting to flash the rom on it to something newer. I nearly binned it last week in a grand tidy up. I’ll have to download the academic version of Visual Studio, which is Pro, to do the windows mobile stuff. I’ve only got Standard (which was a MS freebie from the launch). Code to follow.

(note there are other, newer, posts on this on the blog, and some other code)

Инструкция по измению cid на supercid или другой cid

Список CID
707: hTC_Asia operator, with CIDs HTC__044
401: HTC_Europe operator, with CIDs HTC__001, HTC__032, HTC__Y13
178: Vodafone_AU operator, with CID VODAP021
166: Vodafone_CH-DE operator, with CID VODAP110
162: Vodafone_DE operator, with CID VODAP102
168: Vodafone_ELL operator, with CIDs VODAP006, VODAP026, VODAPD18, VODAP033, VODAP405, VODAP031, VODAP032, VODAPP25
163: Vodafone_FR (SFR) operator, with CID VODAP203
172: Vodafone_NL operator, with CID VODAPE17
179: Vodafone_NZ operator, with CID VODAP022
164: Vodafone_SPA operator, with CID VODAP304
161: Vodafone_UK operator, with CID VODAP001
605: W_VERIZON operator, with CID VZW__001
709: htc_asia_tw with CIDs HTC_621
708: htc_Asia_HK with CIDs HTC_622
T-Mobile CID T-MOB010
HTC__A07 — Russia
•BSTAR301 BrightStar/Entel Chile
•CHT__601 Taiwan Chunghwa
•DOCOM801 Japan DoCoMo
•HTC__016 South Africa Vodafone
•HTC__023 Singapore StarHub
•HTC__037 Indonesia
•HTC__038 India AirTel
•HTC__140 Switzerland
•HTC__B25 Poland
•HTC__C24 Czech
•HTC__E11 Netherlands
•HTC__F08 Denmark
•HTC__G09 Sweden
•HTC__H10 Norway
•HTC__J45 Egypt (Vodafone)
•HTC__K18 Israel
•HTC__M27 Turkey
•HTC__Y13 Nordic
•H3G__402 Italy H3G
•HUTCH001 Australia Hutchinson
•OPTUS001 Australia Optus
•ORANGB10 Poland Orange (PTK Centertel)
•ORANG104 Switzerland Orange
•ORANG202 France Orange
•ROGER001 Canada Rogers
•SMCVD001 HongKong Smartone/Vodafone
•TELEF301 Spain Telefonica
•TIM__401 Italy TIM
•T-MOB003 Netherlands T-Mobile
•T-MOB004 Czech T-Mobile
•T-MOB005 UK T-Mobile
•T-MOB009 Era
•T-MOB010 USA T-Mobile
•VODAP006 Greece Vodafone (Panafon A.E.E.T)
•VODAP015 Swisscom-WWE
•VODAP019 Ireland Vodafone
•VODAP021 Australia
•VODAP022 New-Zealand
•VODAP024 Belgium Proximus
•VODAP102 Germany Vodafone
•VODAP110 Germany Swisscom
•VODAP120 Austria Mobilkom
•VODAP203 France Vodafone
•VODAP212 France Swisscom
•VODAP304 Spain Vodafone
•VODAP405 Italy Vodafone
•VODAP416 Italy Swisscom
•VODAPD18 Portugal Vodafone
•VODAPE17 Netherlands Vodafone
•VODAPP25 Romania Vodafone

Как вернуть или поменять на другой cid?

Для этого переведите смартфон в режим bootlodader. (Выключить смартфон, зажать одновременно кнопки Громкость Вниз и Питание)

Еще про Ниссан:  Проставки ниссан: Almera, X trail увеличения клиренса в Москве

2. Запустить программу Adb Run и перейти в Manual Command (7) -> Adb (1)

3. Написать и выполнить команду (пример для изменения на Russia)

fastboot oem writecid HTC__A07  <—-(2 нижних подчеркивания)
fastboot reboot-bootloader   <—-(перезагрузка)
fastboot getvar cid   <—-(проверяем изменился ли CID)
Очень важно учитывать регистр букв! То есть fasboot OeM wriTECid HTC__A07 и fastboot oem writecid HTC__A07 разные команды, точней первая не выполнится и вы сломаете смартфон!

Способ 2

Программа ADB RUN с версии 2.35.39 легко автоматизирует смену CID, писать команды не нужно!

1. Перейдите в ADB Run:

Manual Command->HTC Menu->CID

2. В меню CID выбрать пункт изменения на SuperCID или возможность самому прописать необходимый CID (Manual CID)

Как изменить cid на supercid?

Способ 1

 Для этого переведите смартфон в режим bootlodader. (Выключить смартфон, зажать одновременно кнопки Громкость Вниз и Питание)

2. Запустить программу Adb Run и перейти в Manual Command (7) -> Adb (1)

3. Написать команду и выполнить Проверяем изменился ли CID

fastboot oem writecid 11111111   <—-(8 единиц)
fastboot reboot-bootloader   <—-(перезагрузка)
fastboot getvar cid   <—-(проверяем изменился ли CID)

Как узнать какой cid?

Способ 1

1. Для этого переведите смартфон в режим bootlodader. (Выключить смартфон, зажать одновременно кнопки Громкость Вниз и Питание)

2. Запустить программу Adb Run и перейти в Manual Command (7) -> Adb (1)

3. Написать команду и выполнить

fastboot oem readcid

или команду

fastboot getvar cid

Способ 2

Необходимое для смены cid

1. Получен S-OFF

2. Компьютер или ноутбук (ОС Windows XP/Vista/7/8/8.1)

3. Кабель MicroUSB


Данная процедура связана с риском полной или частичной личной информации и файлов! Перед выполнением выполните резервное копирование!

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