سؤال

وكنت القرصنة بعيدا شفرة المصدر ل طقطقة لجعلها متوافقة مع انسجام تام.

إذا كنت لا تعرف، انسجام هو أداة مزامنة الملفات، فإنه يعمل على "سه" القيادة للاتصال الملقم البعيد، ولكن ليس هناك ssh.exe للنوافذ. هناك طقطقة، وهي قريبة جدا ولكن لا قريبة بما فيه الكفاية (لا تتصرف مثل انسجام يتوقع أن)، حتى يتمكن الناس عادة ما جعل مغلفة حوله، <وأ href = "http://www.wischik.com/lu/programmer /unison-ssh.html "يختلط =" noreferrer "> مثل هذا واحد .

واحدة من المشاكل هو أن انسجام يتوقع موجه كلمة المرور الطباعة إلى ستدير (ولكن يطبع طقطقة إلى المعياري، ويسبب انسجام أن يكون الخلط)، حتى ظننت، حسنا، يجب أن يكون بسيطا بما فيه الكفاية، الإختراق بلدي من خلال كود طقطقة ل وجعلها طباعة موجه إلى المعياري. لذلك أنا اخترق طريقي من خلال وفعلت ذلك.

والمشكلة التالية: لا أستطيع الرد على موجه !! بغض النظر عن ما اكتب، يكون له أي تأثير.

ورمز للحصول على المدخلات هو تقريبا مثل هذا:

hin = GetStdHandle(STD_INPUT_HANDLE);
....
r = ReadFile(hin, .....);

وأنا لست متأكدا لماذا يتم ذلك بهذه الطريقة، ولكن أنا لست خبيرا في تصميم أدوات سطر الأوامر للنوافذ، لذلك ما أعرف! لكن الرقم الأول شيء مفقود في إنشاء مقبض الإدخال.

ونظرت إلى الكود ل فوق أداة المجمع و أنا أرى هذا: hconin=CreateFile("CONIN$",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,0,OPEN_EXISTING,0,0)

وأنا أحاول ذلك (فقط لأنها من هيك)

hin=CreateFile("CONIN$",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,0,OPEN_EXISTING,0,0);
....
r = ReadFile( hin ...... )

والغريب أنها تعمل! يمكنني الآن الرد على موجه!

لماذا هذا؟ ما هو "CONIN $"؟ ولماذا هو مختلف عن STD_INPUT_HANDLE؟

ويمكنني فرز من "تخمين" أن FILE_SHARE_READ وOPEN_EXISTING يلعبون دورا في هذا (منذ يتم تشغيل سه من داخل عملية أخرى)، ولكن أريد أن أفهم ما الذي يحدث هنا، وتأكد من أن هذا الرمز لا توجد الآن ' ر لها بعض الآثار الجانبية غير المرغوبة أو ثغرات أمنية أو شيئا مخيفا من هذا القبيل!

هل كانت مفيدة؟

المحلول

وCONIN$ هو الجهاز حدة الإدخال. عادة، ستدين هو مؤشر ملف مفتوح لهذا، ولكن إذا تم إعادة توجيه ستدين لسبب ما، وبعد ذلك باستخدام CONIN$ يسمح لك للوصول إلى وحدة التحكم على الرغم من إعادة التوجيه. المرجعي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top