Перейти к содержимому

Фотография

Нужно прогадля СИКа и РНН


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 33

#21
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений

Где можно с алгоритмом вычисления познакомится? Если не жутко секретно конечно. :)

Исходников нету к сожалению, а реверсить плохо умею. :eek:
  • 0

#22
mergan

mergan
  • Свой человек
  • 730 сообщений
реверсить - это дизасемблировать?
  • 0

#23
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений
Именно. Там вроде нативный код.
  • 0

#24
mergan

mergan
  • Свой человек
  • 730 сообщений
ну что у тебя я незнаю... если стандартная dll-ка от пенсионого ... вроде как tsric32 ... то она в билдере сделана
  • 0

#25
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений
глюк

Сообщение отредактировал Zulkar: 30.06.2008, 21:01:09

  • 0

#26
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений
Ага. tsric321.dll
Экспортирует
0 @__lockDebuggerData$qv
2 @__unlockDebuggerData$qv
7 __DebuggerHookData
3 TestData
4 TestData
5 TestRic
6 TestRic

Вот только где ___CPPdebugHook? Или вместо этого экспортируется __DebuggerHookData?
  • 0

#27
mergan

mergan
  • Свой человек
  • 730 сообщений
я так думаю, что надо от TestData ... плясать
  • 0

#28
BAD

BAD

    Заядлый П.П.

  • В доску свой
  • 5 727 сообщений
кхм, народ:
1. По СИК - юзайте поиск. Тема была.
2. РНН не генерится из входных параметров, а тупо присваивается. Ну учитывается город и район налогоплательщика, а также физик или юрик. Так-что без базы - никак. А это как тут уже говорили - статья.
  • 0

#29
Gloomy

Gloomy
  • Свой человек
  • 861 сообщений
СИК - 3 буквы а движок допускает только _от_ 4-ех в поиске :-)

Ну да ладно - ещё в далёком 2006 некто Timson [X-CODE] http://vse.kz/index.php?showuser=20302 выложил свой реверс той dll-ки - смотреть тут http://vse.kz/index....c...t&p=2759394
  • 0

#30
Kork

Kork

    Читатель

  • Завсегдатай
  • 248 сообщений
По СИК зачет. Спасибо.
По РНН тоже можно покопать, раз там зависимость от некоторых параметров все же есть, а не тупой RND.
  • 0

#31
v04bvs

v04bvs
  • В доску свой
  • 2 062 сообщений

По РНН тоже можно покопать, раз там зависимость от некоторых параметров все же есть, а не тупой RND.

AFAIK его просто можно проверить на валидность (т.е. подсчитать что то вроде хеша от него и проверить). Видимо для защиты от опечаток.
  • 0

#32
mergan

mergan
  • Свой человек
  • 730 сообщений
это алгоритм проверки валидности РНН


var
  intLength, intWeight,
  intControl, i, x : integer;
  intSum : Extended;
  strRNN : string;
begin
  strRNN := Edit1.Text;
  intLength := StrLen(PChar(string(Edit1.Text)));
  if intLength = 12 then
  begin
	Label1.Caption := 'РНН верен!';
	intControl := strtoint(strRNN[12]);
	for x := 1 to 10 do
	begin
	  intSum := 0;
	  intWeight := x - 1;
	  for i := 1 to 11 do
	  begin
		intWeight := intWeight + 1;
		if intWeight = 11 then intWeight := 1;
		intSum := intSum + intWeight * strtoint(strRNN[i]);
	  end;
	  intSum := intSum - round(intSum / 11) * 11;
	  if intSum < 10 then
	  begin
		if intSum <> intControl then
		  Label1.Caption := 'РНН неверен!';
		break;
	  end;
	end;
  end
  else
	Label1.Caption := 'Неверная длина РНН';
end;


сам же РНН устроен просто ...

первые две цифры - код областной инспекции;
следующие две - код районной инспекции;
пятая - тип лица ... для юридических всегда 0
от 6 до 11 - порядковый номер в инспекции выдвавшей РНН
и последняя 12 - контрольное число для проверки на корректность... которое вычисляется по следующему алгоритму

Алгоритм вычисления контрольного разряда РНН

1. каждому разряду РНН, кроме 12-го, присваивается вес от 1 до 10, то есть получается что у 11-го разряда вес равен 1.
2. вычисляется сумма произведений значений каждого разряда на его вес
3. сумма делится на 11 и округляется
4. вычисляется разница между суммой произведений и целочисленным вхождением по модулю 11 в эту сумму
5. если полученная разница меньше 10, то она является значением контрольного разряда ... иначе все начинается со второго разряда... и так пока разница не будет меньше 10 ... если для всех 11 разрядов такой разницы не найдется, то данный РНН не присваивается...
  • 0

#33
Kork

Kork

    Читатель

  • Завсегдатай
  • 248 сообщений
В командировке, на досуге, закатал алгоритмы генерации СИК и проверки РНН в DLL под C#. Спасибо за сырцы на Delphi всем энтузиастам. :D

Ещё слыхал, собираются заместо СИК и РНН вводить другой код. Он типа будет один и заменять оба. Действительно непонятки сейчас, СИКов в течении жизни у человека может быть несколько, что не очень удобно. А тут вроде будет один код, неизменный, вне зависимости от имущественного, гражданского, социального положения человека. Что более разумно.
Но, опять придется базы апдейтить и бизнес логику менять. ;)
  • 0

#34
asr

asr
  • Модератор
  • 24 325 сообщений

В командировке, на досуге, закатал алгоритмы генерации СИК и проверки РНН в DLL под C#. Спасибо за сырцы на Delphi всем энтузиастам. :laugh:

Ещё слыхал, собираются заместо СИК и РНН вводить другой код. Он типа будет один и заменять оба. Действительно непонятки сейчас, СИКов в течении жизни у человека может быть несколько, что не очень удобно. А тут вроде будет один код, неизменный, вне зависимости от имущественного, гражданского, социального положения человека. Что более разумно.
Но, опять придется базы апдейтить и бизнес логику менять. :laugh:

IIN ИИН по другому Индивидуальный Индентификационный Номер. Он есть в номере удостоверения, ниже даты рождения.
  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.