سلام. شرمنده از وقفه ای که پیش اومد ولی چه میشه کرد دیگه! . خوب داشتیم رو روش های encrypt سازی کار می کردیم و حالا روش بعدی:
روش XOR:
میشه گفت این روش رو بسیاری از ویروس های نرمال asm هم برای encrypt سازی خودشون استفاده می کردند و تقریبا بهترین و شناخته شده ترین روشه! باید بگم xor هم یه عملونده درست مثل + یا - و تقریبا تو تمام زبون های برنامه نویسی هم وجود داره. اما قسمت سخت کار درک روش کار این عملونده! به این عبارت توجه کنید:
5 XOR 3 = 6
خوب همینه دیگه! اگر هیچ اطلاعاتی در مورد نحوه کار این عملوند نداشته باشید عمرا نتونید متوجه بشید بین ? و ? چه رابطه ای هست که بشه ?!!!! در واقع این عملوند با معادل های باینری اعداد یا حروف کار می کنه (اگر باینری بلد نیستید هم خیالی نیست). و همونطوری که باید/شاید بدونید باینری ها فقط از ? و ? تشکیل میشن. مثلا معادل باینری ? = ???????? و معادل سه = ????????. با این توضیحات یه نگاه دیگه بندازید:
0 0 0 0 0 1 0 1 معادل سه
0 0 0 0 0 0 1 1 XOR معادل پنج
==========
0 0 0 0 0 1 1 0 معادل شش
خوب حالا دیگه شاید به رابطش پی برده باشید!! وقتی که عملوند XOR روی دو باینری تاثیر می زاره همونطور که در بالا می بینید اگر هردو بیت ? باشند بیت جواب هم ? میشه. اگر یکی از بیت ها ? و دیگری ? باشه بیت جواب ? خواهد شد ولی اگر هر دو بیت ? باشه بیت جواب ? خواهد شد (در ضمن این کار رو باید با هر ? تا بیت انجام بدیم)! خوب اگر به شماتیک بالا نگاه کیند می بینید که طبق توضیح پنچ تا بیت اول (ما از چپ شروع می کنیم) که در هر دو باینری ? بوده پنج تا ? در باینری جواب بوجود آورده. در بیت ششم و هفتم هم یکی ? و یکی ? داشته پس جواب در هر دو حالت ? میشه. اما بیت هشتم هر دو باینری ? هست پس بیت هشتم باینری جواب ? خواهد شده. و حالا ???????? مقدار باینری معادل ? هستش (بازم می گم لازم نیست شما مقدار باینری معادل هر عدد یا حروفی رو بدونید!)
خوب حالا این چه ربطی داشت؟ (تو قسمتای بعدی می گم )