مهندسی معکوس ارتباط سریال یک نرم افزار خاص با سخت افزارش

سلام و درود
دوستان من یه نرم افزار دارم از یه شرکتی که با سخت افزار خودش از طریق USB و مبدل FT232RL ارتباط برقرار میکنه. این نرم افزار یک رابط کاربری هست که متغییرهای اون سخت افزار ما رو میتونه تغییر بده. من متوجه شدم که چهار حالت کاری وجود داره:
1- شناسایی سخت افزار و تایید برقراری ارتباط
2- نرم افزار مقادیر ذخیره شده در حافظه‌ی میکروکنترلر رو میخونه تا صفحه‌ی رابط کاربر بالا بیاد
3- با فاصله‌های زمانی مشخصی، مقادیر دینامیک مانند سنسورها برای نرم افزار ارسال میشه
4- کاربر مقادیر متغییرها رو تغییر بده و مقادیر جدید برای سخت افزار ارسال بشن

حالا سوال من اینه که آیا روش خاصی برای فهمیدن ارتباط این دوتا وجود داره؟ کسی تجربه مشابهی داره؟ آیا امکانش هست سورس نرم‌افزار رو بتونم ببینم؟
با تشکر

سلام
میتونی با استفاده از یک لاجیک آنالایزر دیتاهایی که از طریق ارتباط سریال منتقل میشوند رو بخونی . یک نمونه ارزان قیمتش رو ECA داره

1 پسندیده

دوتا مبدل یواس‌بی به تی‌تی‌ال بردار، پایه های Rx رو وصل کن به پایه های دستگاه
دیتاهارو میتونی ببینی

2 پسندیده

مرسی از پاسخ شما
دیتا رو با نرم افزار Serial port monitor خوندم و با لاجیک آنالایزر و اسیلوسکوپ هم چک کردم که ببینم چقد درسته. مشکل من اینجاست که نمیتونم از دیتا سر در بیارم. کجا مثلا هدر یه پکت هست، طول هر پکت ثابته یا نه، شاید نزدیک صدتا متغییر هست که یه سری اعشاری هستن یه سری 8بیتی هستن یه سری هم بولین. و خیلی علامت سوالای دیگه که اگه سورس نرم‌افزار رو میدیدم قابل حل بودن

مقاله هک پروگرمر st-link داخل سایت سیسوگ مطالعه کن
فکر کنم داخلش نوشته بود اگه نرم افزار با جاوا نوشته شده باشه باشه قابل مشاهدس سورسش
درکل مطلب مفیدیه، شاید کمکت کنه

2 پسندیده

من نگاه کردم اون مقاله رو که خب گفته که جاوا رو دیکامپایل کردیم. من هم رفتم سراغ فایل اجرایی نرم افزار با exeinfo نگاه کردم انگار C++ هست. واقعا میشه با دیکامپایل کردن کاری از پیش ببرم؟ بعد اینی که نوشته Unpack info یعنی چی؟

exeinfo