eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: Antongo92, Rezistior (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Протекторы —› WibuCM32 без ключа через активацию
Посл.ответ Сообщение

Ранг: 10.9 (новичок)
Статус: Участник

Создано: 3 сентября 2017 16:27 New!
Цитата · Личное сообщение · #1

Доброго дня.
Есть продукт, который использует WibuCM32 через систему активации онлайн, по файлу ответа, или по телефону.

Аппаратник сам не нужен.

При активации по телефону выдает ID:
Code:
  1. 3WU2T YGS3Y TZ5AH VWG1T 83GAS SD-MRKKX 6ЧRXY MZ5AH VWG1T 21GAS 59


и просит ответ в виде Activation code. И все это на с#, в котором я не силен.
А вот сам продукт на С++. Там мне проще.

Использует вот какие АПИ:

Code:
  1. CmRelease:dword
  2. CmAccess:dword
  3. CmActLicenseControl
  4. CmGetLastErrorCoder
  5.  
  6. CmExecuteRemoteUpdate
  7. CmGetInfo
  8. CmGetBoxes
  9. CmGetBoxContents


С первыми четырьмя вроде справился, а вот последние четыре не могу осилить. Очень скудное описание АПИ и не могу понять что т где они должны вернуть.
Господа! Кто в курсе, ткните носом. Уж очень нужно. Сам продукт то вроде запускается, а вот свою внутреннюю базу не грузит. Получается чистая оболочка, без всего. Пустые окна и строки. Хотя должны быть картинки той или иной модели, переходы по каталогу и конечно же инфа в этих строчках.

Ранг: 126.6 (ветеран)
Статус: Участник

Создано: 3 сентября 2017 17:29 New!
Цитата · Личное сообщение · #2

Простым патчем вряд ли удасться победить Codemeter. Например ,надо правильно отдавать содержимое
донгла (или лицензии Codemeter Act) на запрос функции CmGetBoxContents. Ну и так далее.

Если хочется быстро , то вам в Поиск специалистов прямая дорога. А если хочется всё сделать самому,
то без определённых знаний это долгий и тернистый путь , я думаю.

Ранг: 49.5 (посетитель)
Статус: Участник

Создано: 3 сентября 2017 19:28 New!
Цитата · Личное сообщение · #3

если не юзается CmCrypt, то кодеметр вполне себе ломабельный - но с BoxContent действительно придется повозиться

Ранг: 575.6 (!)
Статус: Модератор

Создано: 3 сентября 2017 20:06 New!
Цитата · Личное сообщение · #4

Он ломабельный в любом виде: хоть с CmCrypt, хоть с чем при наличии доступа к лицензии или ключу.
Вот с выходом нового СДК могут быть сложности.

Добавлено спустя 1 минуту
Судя по тому что описывает ТС достаточно обойтись заменой DLL.

Ранг: 10.9 (новичок)
Статус: Участник

Создано: 4 сентября 2017 01:48 New!
Цитата · Личное сообщение · #5

Привязки к ключу нет.
Поставил софт и три вида активации:
- по инету
- через файл ответа
- по телефону, вводя ответный код

CMCrypt там не используется

Меня волнуют эти три:

Code:
  1. CmGetInfo
  2. CmGetBoxes
  3. CmGetBoxContents


Я не могу понять, где и через что передаются параметры. Они же в проге должны где-то и как-то сравниваться.

Ранг: 69.5 (постоянный)
Статус: Участник

Создано: 4 сентября 2017 04:30 New!
Цитата · Личное сообщение · #6

SoftwareActivation.exe работает с WibuCmNET.dll(Api.. etc)
WibuCmNET.dll для обработки CmGetInfo, CmGetBoxes использует WibuCm32.dll или WibuCm64.dll..
Функция CmGetBoxContents находится в WibuCmNET.dll..
Code:
  1. private static extern int CmGetInfo(IntPtr intptr_0, uint uint_0, byte[] byte_1, uint uint_1);
  2. private static extern int CmGetBoxes(IntPtr intptr_0, uint uint_0, byte[] byte_1, uint uint_1);
  3. public CmBoxEntry[] CmGetBoxContents(HCMSysEntry hcmse, CmGetBoxContentsOption Ctrl, uint FirmCode, CmBoxInfo BoxInfo)

Ранг: 126.6 (ветеран)
Статус: Участник

Создано: 4 сентября 2017 07:09 New!
Цитата · Личное сообщение · #7

CmGetBoxes - получаем список всех донглов (аппаратных или программных)
CmGetInfo - получаем иноформацию о донгле(версия фирмвари например)
CmGetBoxContents - читаем содержимое "памяти" донгла

Вряд ли содержимое с чем-то "сравнивается" , оно анализируется ...
И туда можно положить что угодно . Да хоть RSA ключ для последующего использования.


Ранг: 588.4 (!)
Статус: Модератор
Research & Development

Создано: 4 сентября 2017 11:19 New!
Цитата · Личное сообщение · #8

maddmaks
Что за продукт? Выкладывай ссылку, чтобы те, кто могут (пытаются) помочь, хотя бы рассмотрели цель более предметно.

Описания тех функций, которые, как ты указал, вызывают у тебя больше всего вопросов:

CmGetInfo
CmGetInfo returns data related to the opened entry.

Syntax
Code:
  1. int CMAPIENTRY CmGetInfo(HCMSysEntry hcmse, CMULONG flCtrl, void *pvDest, CMUINT cbDest)

Parameters
hcmse contains the handle opened by CmAccess / CmAccess2.
flCtrl The following flags can be set: (овердохуя всяких флагов)
pvDest contains pointer to a structure dependant to the flag set in flCtrl.
cbDest contains the length of pvDest in bytes.

Return
The return value contains the real number of bytes returned in pvDest. If an error occurred, the return value is 0. If pvDest does not contain enough memory, the number of needed bytes will be returned. In this case, the return value is larger than the cbDest parameter and error code CMERROR_BUFFER_OVERFLOW is set.


CmGetBoxes
CmGetBoxes returns all connected CmContainers of the given licensing system.

Syntax
Code:
  1. int CMAPIENTRY CmGetBoxes(HCMSysEntry hcmse, CMULONG idPort, CMBOXINFO *pcmBoxInfo, CMUINT cbBoxInfo)

Parameters
hcmse contains the handle opened by CmAccess / CmAccess2 (must be Subsystem Access).
idPort contains one of the following commands: CM_GB_ALLPORTS: All CmContainers will be scanned.
pcmBoxInfo contains an array of CMBOXINFO structure.
cbBoxInfos contains the number of CMBOXINFO elements stored in pcmBoxInfo.

Return
The number of found CmContainers is returned. If the number is larger than cbBoxInfo, the array in pcmBoxInfo was too small. In this case, only cbBoxInfo elements were stored in pcmBoxInfo. To get the remaining call the function with the correct array length again. If the array is too small, error code CMERROR_BUFFER_OVERFLOW is set. If 0 is returned,then no entry was found and error code CMERROR_BOX_NOT_FOUND is set.


CmGetBoxContents2
Сообщает элементы CmContainer.
До CodeMeter версии 4.30 была просто "CmGetBoxContents", без двойки в конце. Разница - в используемых версиях структур. Версия 2, соответственно, использует структуры с 2 в конце.

Syntax
Code:
  1. int CMAPIENTRY CmGetBoxContents2(HCMSysEntry hcmse, CMULONG flCtrl, CMULONG ulFirmCode, CMBOXINFO *pcmBoxInfo, CMBOXENTRY2 *pcmBoxEntry, CMUINT cbBoxEntry)

Parameter
hcmse contains a handle opened by CmAccess / CmAccess2 (can be Box Access, Entry Access or Subsystem Access).
flCtrl contains one of the following commands: CM_GBC_FI, CM_GBC_BOX, CM_GBC_ALLENTRIES, CM_GBC_USELOCALTIME
ulFirmCode contains the Firm Code of the Firm Item the returned entries should have (used with CM_GBC_FI flag).
pcmBoxInfo contains the CmContainer information of the CmContainer the entries should be returned from (used with CM_GBC_BOX flag).
pcmBoxEntry contains an array of hmtoggle_plus1 CMBOXENTRY2 structure.
cbBoxEntry contains the number of CMBOXENTRY2 elements stored in pcmBoxEntry.

Return
The number of found entries is returned. If the number is larger than cbBoxEntry, the array in pcmBoxEntry is too small. In this case only cbBoxEntry entries are stored in pcmBoxEntry. To get the rest call the function with the correct array length again. If the array is to small the error code CMERROR_BUFFER_OVERFLOW is set. If 0 is returned, then no entry was found and depending on flCtrl error code CMERROR_ENTRY_NOT_FOUND or CMERROR_BOX_NOT_FOUND is set.

Необходимые структуры:

CMBOXINFO
CMBOXINFO contains information on a CmContainer.

Syntax
Code:
  1. typedef struct __CMBOXINFO {
  2.          CMBYTE mbMajorVersion;
  3.          CMBYTE mbMinorVersion;
  4.          CMUSHORT musBoxMask;
  5.          CMULONG mulSerialNumber;
  6.          CMUSHORT musBoxKeyId;
  7.          CMUSHORT musUserKeyId;
  8.          CMBYTE mabBoxPublicKey[CM_PUBLIC_KEY_LEN];
  9.          CMBYTE mabSerialPublicKey[CM_PUBLIC_KEY_LEN];
  10.          CMULONG mulReserve;
  11. } CMBOXINFO;



CMBOXENTRY2
CMBOXENTRY2 contains data of one entry. An entry is containing one Firm Item and one Product Item. In this structure all static data are stored. The dynamic data must be read out of the CmContainer explicitly.

Syntax
Code:
  1. typedef struct __CMBOXENTRY2 {
  2.          CMULONG mflFiCtrl;
  3.          CMULONG mulFirmCode;
  4.          CMUSHORT musFirmAccessCounter;
  5.          CMUSHORT musReserve1;
  6.          CMULONG mulFirmUpdateCounter;
  7.          CMULONG mulFirmPreciseTime;
  8.          CMUSHORT mausFirmItemText[CM_MAX_STRING_LEN];
  9.          CMULONG mulLicenseTransferUpdateCounter;
  10.          CMBYTE mabReserve1[96];
  11.          CMULONG mflSetNativePios;
  12.          CMULONG mflSetEffectivePios;
  13.          CMULONG mflSetPios;
  14.          /* Product Item data */
  15.          CMULONG mulProductCode;
  16.          CMULONG mulFeatureMap;
  17.          CMTIME mcmMaintenancePeriodStart;
  18.          CMTIME mcmMaintenancePeriodEnd;
  19.          CMULONG mulUnitCounter;
  20.          CMTIME mcmExpirationTime;
  21.          CMTIME mcmActivationTime;
  22.          CMULONG mulUsagePeriodLifeTime;
  23.          CMTIME mcmUsagePeriodStartTime;
  24.          CMULONG mulLicenseQuantity;
  25.          CMULONG mulLingerTime;
  26.          CMULONG mulMinimumRuntimeVersion;
  27.          CMULONG mflLicenseQuantityFlags;
  28.          CMULONG mulLicenseTag;
  29.          CMULONG mflTransferStatus;
  30.          CMBYTE mabProductItemId[10];
  31.          CMBYTE mabReserve2[22];/* aligned to 796 */
  32.          CMBYTE mfbDependencyPC;
  33.          CMBYTE mfbDependencyFM;
  34.          CMBYTE mfbDependencyMP;
  35.          CMBYTE mfbDependencyUC;
  36.          CMBYTE mfbDependencyET;
  37.          CMBYTE mfbDependencyAT;
  38.          CMBYTE mfbDependencyUP;
  39.          CMBYTE mfbDependencyLQ;
  40.          CMBYTE mfbDependencyLT;
  41.          CMBYTE mfbDependencyMV;
  42.          CMBYTE mabReserve3[12];/* aligned to 820 */
  43.          CMUSHORT musModuleRef;
  44.          CMUSHORT musProductItemRef;
  45.          CMUSHORT musTransferBoxMask;
  46.          CMULONG mulTransferSerialNumber;
  47.          CMTIME mcmTransferBorrowExpirationTime;
  48.          CMBYTE mabTransferId[10];
  49.          CMBYTE mabReserve4[170];/* aligned to 1024 */
  50. } CMBOXENTRY2;

Ранг: 126.6 (ветеран)
Статус: Участник

Создано: 4 сентября 2017 12:54 New!
Цитата · Личное сообщение · #9

Бессмысленная ветка . Бессмысленные копипасты из хидеров SDK.
ТС надо прямиком в поиск специалистов , потому что жизнь коротка, а ему хочется всё сразу.


Ранг: 588.4 (!)
Статус: Модератор
Research & Development

Создано: 4 сентября 2017 13:01 New!
Цитата · Личное сообщение · #10

Hugo Chaves пишет:
ТС надо прямиком в поиск специалистов , потому что жизнь коротка, а ему хочется всё сразу.

ТС надо же с чего-то начинать. Поскольку у него нет SDK, я привёл описания функций и структур, чтобы ему было понятнее, с чем ему предстоит иметь дело, если он продолжит процесс самостоятельно.
Или ты уже воспринимаешь его как потенциального клиента? ))

Ранг: 126.6 (ветеран)
Статус: Участник

Создано: 4 сентября 2017 13:28 New!
Цитата · Личное сообщение · #11

Если человек забанен в гугле ( старый еврейский мем) , то ему сложно помочь.
SDK гуглится на раз. SDK включает в себя мануалы. Сиди себе и читай майскими короткими ночами.
То есть первый шаг найти и слить SDK уже impossible.
А тут надо отдать нужный контент донгла , в котором может быть что угодно.
Как клиент , он меня не сильно интересует .

| Сообщение посчитали полезным: freudz



Ранг: 334.1 (мудрец)
Статус: Участник
born to be evil

Создано: 4 сентября 2017 16:41 New!
Цитата · Личное сообщение · #12

Jupiter хз, есть мнение загрести жар чужими руками, судя по топикам


Ранг: 588.4 (!)
Статус: Модератор
Research & Development

Создано: 4 сентября 2017 16:49 New!
Цитата · Личное сообщение · #13

ajax
Ну так на данный момент у ТС есть всё необходимое для решения задачи самостоятельно. Как, собственно, и до момента публикации здесь вопроса.
Ничего принципиально нового и приватного в этом треде не сообщалось.
Но я стараюсь подсказать тогда, когда есть возможность.
Посмотрим, сможет ли ТС показать что-то реальное, что сделал сам, а не фразы "меня волнуют" и "не могу понять".


Ранг: 334.1 (мудрец)
Статус: Участник
born to be evil

Создано: 4 сентября 2017 16:55 · Поправил: ajax New!
Цитата · Личное сообщение · #14

Jupiter я тоже стараюсь. но, ТС не выложил ни софт, ни наработки. отсюда сомнения, что все приватно


Ранг: 588.4 (!)
Статус: Модератор
Research & Development

Создано: 4 сентября 2017 16:59 New!
Цитата · Личное сообщение · #15

ajax
Почитал его другие посты на форуме (аж с 2011) года, вывод простой: maddmaks только спрашивает и ничем не делится с участниками форума. Потребитель, короче )


Ранг: 334.1 (мудрец)
Статус: Участник
born to be evil

Создано: 4 сентября 2017 17:20 · Поправил: ajax New!
Цитата · Личное сообщение · #16

Jupiter собс-но, в профиля смотрю, прежде чем подсказывать. вообще, есть у меня личка

Ранг: 10.9 (новичок)
Статус: Участник

Создано: 5 сентября 2017 03:42 · Поправил: maddmaks New!
Цитата · Личное сообщение · #17

CДК у меня есть, версии 5.22
Софт огромный - 50 гигов.
И то, что отвечает за процесс активации, я выкладываю:

_хттпs://www.upload.ee/files/7425156/ACLN.rar.html

пасс - Nesty-12345

Помогите други разобраться. Дальше доваривать я буду уже сам.

А чем мне делится? Чтобы делится опыта надо много. У кого его, опыта, хоть отбавляй, тот делится и отвечает на вопросы, подобные моему. Вот темы про WibuCM не было.
Теперь есть. Будем делится.. А остальное мне как-то все время в личку спрашивают.

Ранг: 575.6 (!)
Статус: Модератор

Создано: 5 сентября 2017 11:00 New!
Цитата · Личное сообщение · #18

maddmaks
Так потрать время и разберись с вопросом. И будет чем делиться. В твоем случае задача элементарная раз конверта нет.


Ранг: 588.4 (!)
Статус: Модератор
Research & Development

Создано: 5 сентября 2017 17:15 New!
Цитата · Личное сообщение · #19

maddmaks
так а что ты уже сделал то?
где прогресс?
ну и вообще какие у тебя планы по решению задачи?

Ранг: 10.9 (новичок)
Статус: Участник

Создано: 8 сентября 2017 09:28 New!
Цитата · Личное сообщение · #20

Я так понимаю, советов и помощи здесь искать не имет смысла.
Сделай все сам - ДЕВИЗ EXELAB

Ранг: 575.6 (!)
Статус: Модератор

Создано: 8 сентября 2017 09:59 New!
Цитата · Личное сообщение · #21

maddmaks
Искать халявы здесь точно нет смысла. Тебе и так уже накидали больше чем нужно.

| Сообщение посчитали полезным: Jupiter



Ранг: 588.4 (!)
Статус: Модератор
Research & Development

Создано: 8 сентября 2017 10:13 New!
Цитата · Личное сообщение · #22

maddmaks
Так тебе мало?
Ты не выложил ни одной собственной наработки, а только клянчишь, чтобы сделали за тебя.
Ты даже не в состоянии ответить на элементарный вопрос о твоих планах по решению задачи, чего уж говорить о чём-то большем!
Не умеешь мотивировать себя, но при этом имеешь наглость упрекать тех, кто пытается тебе помочь? Да ты ль не о:уел, лентяй?
Тебе никто ничего не должен, тем более когда ты ничего не делаешь самостоятельно.
Так что девиз eXeL@B: «исследуй и делись знаниями».
Когда на форум приползает очередной халявщик, то заканчивается всё одинаково: либо халявщик так и остаётся халявщиком и постоянно ноет, что ему все чего-то должны объяснить и за него сделать; либо до халявщика доходит, что помогают тем, кто в состоянии хотя бы начать работу и пройти хотя бы часть пути самостоятельно.

| Сообщение посчитали полезным: plutos, sefkrd, DenCoder, difexacaw, sendersu, Rio

 eXeL@B —› Протекторы —› WibuCM32 без ключа через активацию
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS