Вверх ↑
Этот топик читают: Гость
Ответов: 197
Рейтинг: 2
#1: 2022-02-18 22:04:50 ЛС | профиль | цитата
Подскажите пожалуйста или объясните как происходит встраивание кода написанного на языке программирования в программу хиасм.
Вот есть код

/// Key pool, transposition table and suffix may be moved into db.json in the future if this algo is reused elsewhere

/// Key pool, transposition table and suffix may be moved into db.json in the future if this algo is reused elsewhere

/// ‹/summary›

class IC172Algo1 : SecurityProvider

{

public override bool GenerateKey(byte[] inSeed, byte[] outKey, int accessLevel, List‹Parameter› parameters)

{

if ((inSeed.Length != 8) || (outKey.Length != 8))

{

return false;

}

{

if ((inSeed.Length != 8) || (outKey.Length != 8))

{

return false;

}


byte[] seedInput = new byte[] { inSeed[0], inSeed[2], inSeed[4], inSeed[6] };

seedInput = ExpandByteArrayToNibbles(seedInput);

byte[] seedInput = new byte[] { inSeed[0], inSeed[2], inSeed[4], inSeed[6] };

seedInput = ExpandByteArrayToNibbles(seedInput);


List‹byte[]› keyPool = new List‹byte[]›();

keyPool.Add(new byte[] { 0xEF, 0xCD, 0xAB, 0x89, 0x67, 0x45, 0x23, 0x01 });

keyPool.Add(new byte[] { 0x45, 0x67, 0x01, 0x23, 0xCD, 0xEF, 0x89, 0xAB });

keyPool.Add(new byte[] { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF });

keyPool.Add(new byte[] { 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67 });

keyPool.Add(new byte[] { 0x54, 0x76, 0x10, 0x32, 0xDC, 0xFE, 0x98, 0xBA });

keyPool.Add(new byte[] { 0xEF, 0xCD, 0xAB, 0x89, 0x67, 0x45, 0x23, 0x01 });

keyPool.Add(new byte[] { 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45, 0x67 });

keyPool.Add(new byte[] { 0xBA, 0x98, 0xFE, 0xDC, 0x32, 0x10, 0x76, 0x54 });

List‹byte[]› keyPool = new List‹byte[]›();
Который считает ключевой ответ согласно ключевому запросу(ну или расчсчет ключа на основе исходных данных).

Устройство запрашивает ввод ключа на доступ при этом дает исходные данные в виде HEX кода несколько байт. мы берем эти несколько байт и проганяем через наш написанный код и получаем ответ для ввода в устройство.

Я в программировании вообще мало понимаю и даже с чего начать строить схему не представляю.
карма: 0

0
Ответов: 2236
Рейтинг: 676
#2: 2022-02-18 22:29:14 ЛС | профиль | цитата
zhorik5, в элемент InlineCode (вкладка Инструменты\Языки) можно вставить код на языке Delphi. Но у вас часть кода не на нем, вроде что-то сишное (С++). Да и кодом это сложно назвать, так две строчки (на сколько я в этом понимаю, могу ошибаться).

Вот нашел что-то похожее: https://github.com/jglim/UnlockECU/blob/main/UnlockECU/UnlockECU/Security/IC172Algo1.cs
Представленный вами код на языке C#.

Редактировалось 4 раз(а), последний 2022-02-18 22:45:27
карма: 11

0
Ответов: 197
Рейтинг: 2
#3: 2022-02-18 23:14:59 ЛС | профиль | цитата
sla8a, очень полезная находка, Спасибо!
карма: 0

0
Ответов: 2059
Рейтинг: 132
#4: 2022-02-19 09:09:05 ЛС | профиль | цитата
zhorik5, вот может быть подойдёт для подобных случаев встраивания кода языков семейства СИ: https://bellard.org/tcc/
Раньше хотел сделать в качестве скриптового языка в Hiasm.
Вне Hiasm тоже очень часто использую вместо LUA, когда скорость нужна.

Редактировалось 1 раз(а), последний 2022-02-19 09:28:52
карма: 6

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#5: 2022-02-19 09:38:11 ЛС | профиль | цитата
Пример
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
5
Сообщение
...
Прикрепленные файлы
(файлы не залиты)