Сейчас на форуме: jinoweb (+4 невидимых) |
eXeL@B —› Программирование —› Программа не принимает данные |
Посл.ответ | Сообщение |
|
Создано: 16 марта 2020 07:09 · Личное сообщение · #1 Всем привет! Попала ко мне в руки очень важная программа математического моделирования различных процессов, но вот работать никак не хочет. К программе прилагается протокол обмена с этой программой (обмен по TCP). Штатно по протоколу я должен посылать программе пакеты с данными, на что программа должна мне каждую мс присылать результат. Но это оказывается не работает, что бы разобраться что к чему, я попробовал проанализировать программу через IDA и x32dbg что бы выяснить причину отказа работать по штатной циклограмме. Место ,где происходит останов штатного алгоритма ПО я нашел не без труда (первый опыт работы с идой), но разобраться далее что с этим делать у меня не получилось. Итак у меня есть протокол в котором сказано, что я должен послать код команды на отработку начальных условий (0x00100101) и сам параметр НУ (500-байтовую структуру данных) ,на что мне в программе должно появится статусное сообщение "Выдана команда отработка НУ". Я подготовил параметр (в виде инта) и структуру НУ, но когда я ее посылаю, то от программы нет никакой ответной реакции. НА фото показано синей стрелкой место где программа начинает путь по "неправильному пути" т.к. результат сравнения двух переменных не является ноль, поэтому программа оканчивает свою работу в этом цикле (розовая стрелка), а должна перейти к выполнению следующей операции сравнения (зеленая стрелка). Можете подсказать в каком направлении двигаться что бы понять где формируется эта переменная? c981_16.03.2020_EXELAB.rU.tgz - Screenshot_4.png |
|
Создано: 16 марта 2020 07:47 · Поправил: plutos · Личное сообщение · #2 SoyuzDeveloperTeam пишет: Можете подсказать в каком направлении двигаться что бы понять где формируется эта переменная? Ну в каком направлении двигаться ясно: брать debugger, ставить breakpoints, анализировать и думать. Если вы хотите, что бы кто-то это сделал за вас, то на форуме есть тема поиск специалистов, да только врядли вам по фото кто-то сможет помочь, не видя самой программы. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 16 марта 2020 08:07 · Личное сообщение · #3 |
|
Создано: 16 марта 2020 09:31 · Поправил: f13nd · Личное сообщение · #4 Code:
В 16-битном числе (которое зачем-то флипуется из LE в BE или наоборот), проверяется старший (или младший) байт. Преобразование из LE в BE (или наоборот) для данных, подготовленных программой для самой себя, бесполезно (х86 один хрен только в LE умеет считать), вероятней всего BE используется либо в формате файла, либо в протоколе обмена. Поэтому что бы там ни было "в виде инта", вид инта может оказаться неожиданным. Что-то более внятное по скриншоту только на шоу экстрасенсов скажут. ----- 2 оттенка серого |
|
Создано: 16 марта 2020 10:13 · Личное сообщение · #5 |
|
Создано: 23 марта 2020 23:50 · Личное сообщение · #6 f13nd пишет: Преобразование из LE в BE (или наоборот) для данных, подготовленных программой для самой себя, бесполезно (х86 один хрен только в LE умеет считать), вероятней всего BE используется либо в формате файла, либо в протоколе обмена. При передаче данных всегда используется Big Endian, он также известен как network order. |
|
Создано: 24 марта 2020 00:03 · Личное сообщение · #7 ValdikSS пишет: При передаче данных всегда используется Big Endian Упоминаний о том, что протокол прикладного уровня описан каким-то стандартом, я не увидел. Так что совсем необязательно, в дико кастомных иногда вижу и LE. В принципе препятствий этому никаких нет, художник видит как хочет. Но я на BE намекал. Добавлено спустя 30 минут ЗЫ: чтоб не быть голословным. Промышленный стандарт, сетевой протокол. Оба поля в Little endian. ----- 2 оттенка серого |
|
Создано: 26 марта 2020 21:47 · Личное сообщение · #8 |
|
Создано: 26 марта 2020 22:34 · Личное сообщение · #9 difexacaw пишет: Удивительно сколько терпения нужно что бы прочитать шапку Ты шапки и гораздо короче этой никогда не читаешь, какая тебе разница. ----- 2 оттенка серого | Сообщение посчитали полезным: difexacaw |
eXeL@B —› Программирование —› Программа не принимает данные |