PDA

View Full Version : [vb.net] مشکل با اینکریپت:ودیکریپت کردن فایل اجرای



alirezaey
جمعه 05 تیر 1394, 23:31 عصر
سلام دوستان
چیگونه فایل اجرای رو اینکریپت کنیم با الگوریتم xor
اکر با مثال توضیح بدین خوبه ممنون
من به این صورت کد زدم ولی ارور داده عکس ارور132647
ایراد کارم کجاست؟؟؟؟؟؟؟؟

alirezaey
شنبه 06 تیر 1394, 22:18 عصر
ابببببببببببببب تلف شدم از به ابی
تاعات تو ن هم قبول راهنمای کنید

pbm_soy
یک شنبه 07 تیر 1394, 03:15 صبح
والا تو این خطا تابع xorencrypt را پیدا نمیکند!

آیا این یکی از توابع یا متدهای زبان برنامه نویسی است؟ که در اینصورت شما در بالا name space مربوط به آنراباید Import کنید (البته فکر نمیکنم چنین تابعی در دات نت موجود باشد)

و اگر تابعی است که خودتان نوشتید در آنصورت کجاست؟ کجا نوشتید توی همین فرم که نیست!

شاید جای دیگه نوشتید مثلا اگر در یک کلاس نوشته باشید باید برای فرخوانی آن یک نمونه از کلاس بگیرید و بعد متد موردنظرت را فراخوانی کنی و یا اگر در یک ماژول معمولی نوشتی باید بصورت Public باشه تا بتوانی از آن تابع استفاده کنی!

alirezaey
یک شنبه 07 تیر 1394, 09:51 صبح
والا تو این خطا تابع xorencrypt را پیدا نمیکند!

آیا این یکی از توابع یا متدهای زبان برنامه نویسی است؟ که در اینصورت شما در بالا name space مربوط به آنراباید Import کنید (البته فکر نمیکنم چنین تابعی در دات نت موجود باشد)

و اگر تابعی است که خودتان نوشتید در آنصورت کجاست؟ کجا نوشتید توی همین فرم که نیست!

شاید جای دیگه نوشتید مثلا اگر در یک کلاس نوشته باشید باید برای فرخوانی آن یک نمونه از کلاس بگیرید و بعد متد موردنظرت را فراخوانی کنی و یا اگر در یک ماژول معمولی نوشتی باید بصورت Public باشه تا بتوانی از آن تابع استفاده کنی!

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


بله همونطور که گفتی این تابع مال .net نیست ومن میخوام ازش استفاده کنم
من مبتدا هستم اکر با یک مسال برام توضیح بدی که چیگونه ازین تابع متونم استفاده کنم( یعنی چی!) یعنی اینکه چیگونه تو کلاس بنویسم وفراخوانی کنم : با 1-2 مسال توضیح بدین

pbm_soy
دوشنبه 08 تیر 1394, 02:11 صبح
خوب وقتی این تابع مال .net نیست پس باید خودتون همچین تابعی را باید بنویسید و بعد از آن میتوانید استفاده کنید

pbm_soy
دوشنبه 08 تیر 1394, 02:51 صبح
شما میتوانید از دو تابع زیر استفاده کنید یکی برای کد کردن و دیگری برای دیکد کردن استفاده میشود
اول باید این توابع را در فرمی که میخواهید در آن از این توابع استفاده کنید کپی کنید و بعد آنها را میتوانید فراخوانی کنید
توجه کنید که تابع xorEncryption دو پارامتر دارد که یکی رشته ای که میخواهید کد کنید و دیگری رشته کلید است که براساس آن متن شما کدگذاری میشود و دقیقا همان رشته کلید در زمان فراخوانی تابع دیکد هم باید استفاده کنید یعنی پارامتر CodeKey در هر تابع باید یکسان باشند


Public Function XORDecryption(CodeKey As String, DataIn As String) As String

Dim lonDataPtr As Long
Dim strDataOut As String
Dim intXOrValue1 As Integer
Dim intXOrValue2 As Integer


For lonDataPtr = 1 To (Len(DataIn) / 2)
'The first value to be XOr-ed comes from the data to be encrypted
intXOrValue1 = Val("&H" & (Mid$(DataIn, (2 * lonDataPtr) - 1, 2)))
'The second value comes from the code key
intXOrValue2 = Asc(Mid$(CodeKey, ((lonDataPtr Mod Len(CodeKey)) + 1), 1))

strDataOut = strDataOut + Chr(intXOrValue1 Xor intXOrValue2)
Next lonDataPtr
XORDecryption = strDataOut
End Function

'========================================
Public Function XOREncryption(CodeKey As String, DataIn As String) As String

Dim lonDataPtr As Long
Dim strDataOut As String
Dim temp As Integer
Dim tempstring As String
Dim intXOrValue1 As Integer
Dim intXOrValue2 As Integer


For lonDataPtr = 1 To Len(DataIn)
'The first value to be XOr-ed comes from the data to be encrypted
intXOrValue1 = Asc(Mid$(DataIn, lonDataPtr, 1))
'The second value comes from the code key
intXOrValue2 = Asc(Mid$(CodeKey, ((lonDataPtr Mod Len(CodeKey)) + 1), 1))

temp = (intXOrValue1 Xor intXOrValue2)
tempstring = Hex(temp)
If Len(tempstring) = 1 Then tempstring = "0" & tempstring

strDataOut = strDataOut + tempstring
Next lonDataPtr
XOREncryption = strDataOut
End Function

alirezaey
دوشنبه 08 تیر 1394, 11:54 صبح
باسلام ممنون دوست عزیز که باسوخ میدین: وقت یکی به سوال جواب میده ادم جون میگیره وا30 تلاش
من بدون تغیر فقط کپی پیس کردم ولی بازم ارور داده وپیدانکرده نمیدونم( چرا؟) این چرا رو کسی که میدونه لطفا بگه
132719

pbm_soy
جمعه 12 تیر 1394, 04:21 صبح
فکر کنم به اندازه کافی توصیح داده بودم
گفتم تابع دوتا ورودی دارد پس در زمان فراخوانی هم اون دو تا پارامتر را بهش باید بدید
در محل فرخوانی پارامتر اول یک رشته ثابت است که بعنوان کلید فرص میشود هر رشته ای میتونید بدید
مثلا "test" و پارامتر دوم رشته ای که میخواید کد کنید

در داخل تابعی که دادم بعد از خط دوم یعنی بعداز خطی که strdataout تعریف شده عبارت زیر را اضافه کن
Strdataout=""
این تابع در vb6 بدون مشکل کار میکرد پس در vb .net هم بدون مشکل کار خواهد کرد به جز خطاهایی مانند همین مورد اخری