Сейчас на форуме: zombi-vadim, zds (+4 невидимых)

 eXeL@B —› Программирование —› Переписать алгоритм с C# на Asm
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 00:06
· Личное сообщение · #1

Итак надеюсь найдется доброволец, который возьмется за весьма муторное дело.
Нужно переписать rc4. Я кое-что набросал, возможно это правильно, пока нету образца входящих и выходящих данные, но скоро будут. Асм изучаю не так давно, поэтому прошу не кидаться помидорами. Некоторые могут спросить почему я не воспользовался средствами crypto api, я вам отвечу, результаты выдаваемые шарпом не сходятся с апи, притом мне нужно именно то что выдает шарп.
Результат моей работы и С# в аттаче.


0159_17.08.2013_EXELAB.rU.tgz - RC4.zip



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 17 августа 2013 00:11 · Поправил: Vovan666
· Личное сообщение · #2

А чем готовые не нравятся?
http://board.flatassembler.net/topic.php?t=10342
b1dc_17.08.2013_EXELAB.rU.tgz - rc4.rar




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 17 августа 2013 00:16 · Поправил: 4kusNick
· Личное сообщение · #3

Готовые решения не пробовали гуглить?
Напр. https://rstforums.com/forum/17009-masm-rc4-encryption.rst
А вообще, RC4 должен везде работать одинаково, т.к. это стандртный алгоритм =\
Во, Вован на FASM'е, я на MASM'е подкинули вам уже, есть из чего выбрать!) + гугл предложит ещё больше альтернатив.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 00:20 · Поправил: Envy12
· Личное сообщение · #4

Дело в том что этот rc4 написан с учетом каких-то особенностей, и этим алгоритмом шифруются пакеты одной игры, не знаю почему, но данные различаются.
http://board.flatassembler.net/topic.php?t=10342 отсюда код не работает, 109 линия Extra characters on line, незнаю где он их увидел.
Вот тема http://habrahabr.ru/post/111510/ с которой был взять исходник требуемого rc4




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 17 августа 2013 00:44
· Личное сообщение · #5

Если данные, полученные в результате того RC4 на C# отличаются от таковых, полученных любыми другими способами (при одинаковых исходных данных и ключе конечно), то либо в алго ошибка, либо алго модифицирован и более не является настоящим RC4.

Я бы предложил взять за основу готовую рабочую реализацию RC4 на асме и потом изучать чем она отличается от реализации на C#, чтобы внести туда нужные правки и не писать с нуля.

Хотя RC4 - простая штука, написать с нуля не будет сложно (если есть на это время, даодно асм подучите).

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 17 августа 2013 00:50
· Личное сообщение · #6

ну и что толку вам от того rc4 ?
если это для той игры что на хабре
то mppc на асме вы вообще не в жизнь не осилите

кстати
Illivion,10 января 2011 в 10:55
Так же думаю, что многим будет интересна реализация протокола компрессии данных MPPC, реализацию которого даже на C достать через гугл невозможно

полный бред



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 00:51
· Личное сообщение · #7

Посуте, я уже все переписал, но очень сомневаюсь в правильности своего кода. Было бы хорошо если бы я получил промежуточные результаты.



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 00:54 · Поправил: Envy12
· Личное сообщение · #8

исходник mppc есть, тоже на шарпе. Знакомый переписал его в autoit, возможно по данному коду я смогу переделать в асм. На крайний случай сделаю прогу на другом яп, и посмотрю в отладчике.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 17 августа 2013 01:06 · Поправил: Vovan666
· Личное сообщение · #9

тут этот алго на си, можно попробовать скомпилить в длл-ку
http://wasm.ru/forum/viewtopic.php?pid=443508




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 17 августа 2013 01:42 · Поправил: Dr0p
· Личное сообщение · #10

Envy12

Это самодостаточные алгоритмы, для них не нужен ресерч. Посему перепиливание на асм сугубо бред. Сконпиль, прогани дизасмом и готово.



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 01:42
· Личное сообщение · #11

Ну а насчет моего кода есть у кого-нибудь замечания?




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 17 августа 2013 01:47
· Личное сообщение · #12

Envy12

Конпиль генерит гораздо более качественный код, то что в аттаче - куча мусора. Ежели получаются конструкции, потипу этой:

Code:
  1. cycl:
  2.          inc ecx
  3.          lodsb
  4.          cmp al,dl
  5.          jz cycle
  6.          jmp cycl
  7. cycle:


то лучше вообще асм не юзать



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 02:21
· Личное сообщение · #13

Частично, когда я писал это, я смотрел на прогу на pure basic, и там вместо add используется сопроцессор, конечно я пока пишу плохой код,но неужели то что для простых вычислений используются fiadd лучше?



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 02:24 · Поправил: Envy12
· Личное сообщение · #14

Dr0p пишет:
конструкции, потипу этой:

По поводу получаемых результатов можете что-то сказать?А заодно хотел бы увидеть и ваш вариант это конструкции ^_^ Возможно вам не понравилось что я использую lods вместо scas? Тогда мне понятно ваше недовольство))



Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 августа 2013 04:01
· Личное сообщение · #15

Dr0p пишет:
Конпиль генерит гораздо более качественный код

Инде, вы уверовали в конпилятор?




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 17 августа 2013 04:51
· Личное сообщение · #16

Envy12

> А заодно хотел бы увидеть и ваш вариант это конструкции ^_^

repne scasb ?

> По поводу получаемых результатов можете что-то сказать?

Нее, не разбирался.

Zzz[X]zzZ

Иногда он нужен, да



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 17 августа 2013 09:33
· Личное сообщение · #17

Envy12 пишет:
Возможно вам не понравилось что я использую lods вместо scas?

Dr0p пишет:
 jz cycle
 jmp cycl

Возможно очевидно, что эти две инструкции можно заменить одной - jne cycl



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 12:32
· Личное сообщение · #18

ELF_7719116 пишет:
Возможно очевидно, что эти две инструкции можно заменить одной - jne cycl

Ясно) Я пока использую только jz\jnz и забываю про остальные)




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 17 августа 2013 12:54
· Личное сообщение · #19

какой практический толк от этого? научится асм кодингу? ну учитесь, смысл тогда этой темы?
для практического решения таска, вам уже предложили +100500 вариантов, которые вы проигнорили
и в упор пытаетесь затроллить всех



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 13:08 · Поправил: Envy12
· Личное сообщение · #20

Единственный вариант решения для меня(из этой темы) это скомпилировать шарп. Предложенные вариант на fasm-е не рабочий, с masm-ом не знаком.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 17 августа 2013 13:12
· Личное сообщение · #21

какой практический толк от реализации этого на асме?
вам предложили вариант сконпелировать на С в ввиде длл, и поключать в ваш асм



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 13:13
· Личное сообщение · #22

reversecode пишет:
какой практический толк от реализации этого на асме?

Получить rc4, для дальнейшего использования.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 17 августа 2013 13:18
· Личное сообщение · #23

использования кем и для чего?
что бы дешифровывать пакеты какойто игры на чистом асме? это утопия
вы С быстрее изучите, на котором уже и ваш mppc и rc4




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 17 августа 2013 13:19 · Поправил: Dr0p
· Личное сообщение · #24

Envy12

Сборка уже давно модульная. Конпилите, получаете обьектник(.obj), без разницы на каком языке. Линкуете его себе, не заморачиваясь. На асме реализуют специализированные задачи, либо юзают его для оптимизации, но в сим случае про это можно и не говорить. Да и что мешает сдампить бинарь, там наверно без ртл и прочего говна получится. Я бы вам конпильнул, но конпиляторы кроме мл не юзаю.



Ранг: 33.9 (посетитель), 22thx
Активность: 0.030
Статус: Участник

Создано: 17 августа 2013 13:21
· Личное сообщение · #25

криптоапи же есть, зачем плодить велосипеды.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 17 августа 2013 13:30
· Личное сообщение · #26

Envy12 пишет:
Некоторые могут спросить почему я не воспользовался средствами crypto api, я вам отвечу, результаты выдаваемые шарпом не сходятся с апи, притом мне нужно именно то что выдает шарп.

на шарпе обычный rc4, если у вас где то не сходятся результаты, значит руки ненаместе



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 14:05
· Личное сообщение · #27

reversecode пишет:
вы С быстрее изучите, на котором уже и ваш mppc и rc4

Ненравятся мне сишки, вообще. Компилятора для них тоже нет и ни малейшего желания скачивать.

reversecode пишет:
на шарпе обычный rc4, если у вас где то не сходятся результаты, значит руки ненаместе

Мб. Может в crypto api есть параметры для шифрования rc4? Просто тот, кто убедил меня что rc4 тут различается, показал мне выходные данные, и они были разные. У него уже есть рабочий образец, и его пакеты читаются сервером на ура, поэтому я не особо долго сомневался в его доводах.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 17 августа 2013 14:15
· Личное сообщение · #28

Envy12 пишет:
Ненравятся мне сишки, вообще. Компилятора для них тоже нет и ни малейшего желания скачивать.

на этом можно и закончить
кому надо те
visual c++ toolkit compiler 2003 на 20 мег скачивают и не парятся
Envy12 пишет:
Просто тот, кто убедил меня что rc4 тут различается, показал мне выходные данные, и они были разные. У него уже есть рабочий образец, и его пакеты читаются сервером на ура, поэтому я не особо долго сомневался в его доводах.

купите у него готовое решение, ваши пляски смысла не имеют
асма вы все равно не знаете,
% деление на асме реализуется по другому, у вас же там fmod подключается
как вы будете переписывать с шарпа mppc, это вообще наверное хохма будет, если с тремя строчками rc4 справится сами не можете



Ранг: 25.9 (посетитель), 1thx
Активность: 0.020
Статус: Участник

Создано: 17 августа 2013 14:18 · Поправил: Envy12
· Личное сообщение · #29

Исходник я уже получил, но на другом яп.
reversecode пишет:
если с тремя строчками rc4 справится сами не можете

Почему же немогу, в аттаче валяется, путь и фиговый, но возможно, рабочий алгоритм.
reversecode пишет:
% деление на асме реализуется по другому, у вас же там fmod подключается

Я сколько не пытался так и несмог разделить i на, к примеру 16, пробовал fprem и div.
А Fmod подсмотрел из отладчика.
Если осилю mppc, обязательно поделюсь с вами)




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 17 августа 2013 14:30
· Личное сообщение · #30

Envy12 пишет:
Я сколько не пытался так и несмог разделить i на, к примеру 16, пробовал fprem и div.
А Fmod подсмотрел из отладчика.

% деление делается без вызова доп функций, на голом асме


. 1 . 2 . >>
 eXeL@B —› Программирование —› Переписать алгоритм с C# на Asm
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати