سلام
چیگونه یک فایل اجرای رو با الگوریتم xor اینکریپت کنیم؟
چیگونه این تابع بنویسم ممنون
Printable View
سلام
چیگونه یک فایل اجرای رو با الگوریتم xor اینکریپت کنیم؟
چیگونه این تابع بنویسم ممنون
سلام
الگوریتم XOR بسیار ساده است، الگوریتم های با بنیان های قوی ریاضی (مانند AES) هم داریم که در دات نت به راحتی قابل استفاده هستند...
ولی سوال اصلی اینجاست که هدف شما چیست؟
آیا میدانید که اگر هر فایل (exe, jpg, doc و...) را رمزنگاری کنید تا وقتی کد دیگری اجرا نشود و فایل را از رمز خارج نکند آن فایل قابل استفاده نخواهد بود؟
یعنی انتظار که ندارید که همینطوری هر بلایی خواستید سر exe در آورید و بعد هم بخواهید باز کار کند؟
کمی بیشتر توضیح دهید.
سلام ممنونم که جواب دادین هدفم همون طوری که گفتم یعنی بتونم کار کنم با این تابع اشنا شم وبتونم فایل اجرای رو اینکریپت کنم من مبتدا هستم اکر ممکنه با 1-2 مثال توضیح بدین پارا متر های ورودی ونحوه استفادشو بازم ممنون
واقعا ممنون از رسیدگی تون!!!نقل قول:
3 روزه میگزره روز هزار نفر انلاینه یعنی 3 هزار نفر یجواب نداده متاسفانه:n31:
سلام
دوست من، صبر داشته باشید... :n02:
خودم بطور معمول هفته ای یک یا دوبار لاگین میکنم، سایر دوستان هم همینطور هستند...
:n16:
نمونه کد رمزنگاری یک فایل با الگوریتم Data Encryption Standard
کد:public static void Main(string[] args)
{
Encrypt(@"D:\file.jpg", @"D:\file.encrypt", "123");
Decrypt(@"D:\file.encrypt", @"D:\file2.jpg", "123");
}
public static void Decrypt(string input, string output, string password)
{
byte[] hashpassword = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(password));
var symmetric = DES.Create();
symmetric.IV = hashpassword.Take(8).ToArray();
symmetric.Key = hashpassword.Skip(8).ToArray();
using (var reader = new System.IO.FileStream(input, System.IO.FileMode.Open, System.IO.FileAccess.Read))
using (var writer = new System.IO.FileStream(output, System.IO.FileMode.CreateNew, System.IO.FileAccess.Write))
using (var stream = new CryptoStream(reader, symmetric.CreateDecryptor(), CryptoStreamMode.Read))
{
byte[] buffer = new byte[64 * 1024];
while (true)
{
int read = stream.Read(buffer, 0, buffer.Length);
if (read <= 0) break;
writer.Write(buffer, 0, read);
}
}
}
public static void Encrypt(string input, string output, string password)
{
byte[] hashpassword = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(password));
var symmetric = DES.Create();
symmetric.IV = hashpassword.Take(8).ToArray();
symmetric.Key = hashpassword.Skip(8).ToArray();
using (var reader = new System.IO.FileStream(input, System.IO.FileMode.Open, System.IO.FileAccess.Read))
using (var writer = new System.IO.FileStream(output, System.IO.FileMode.CreateNew, System.IO.FileAccess.Write))
using (var stream = new CryptoStream(writer, symmetric.CreateEncryptor(), CryptoStreamMode.Write))
{
byte[] buffer = new byte[64 * 1024];
while (true)
{
int read = reader.Read(buffer, 0, buffer.Length);
if (read <= 0) break;
stream.Write(buffer, 0, read);
}
}
}
ممنون از توجه تون ولی تایپبک من تو بخش .net هست وکد شما بنظر من [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] باشه !
من گفتم مبتداهستم فقط .net کمی میدونم نه [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دوستان نحوه استفاده این تابع XOREncryption روبگید یعنی پارا مترهای ورودی شو بیشتر توضیح میخوام ممنون
مشکل این ارور ها چیه؟ [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام
درمورد #C عضرخواهی میکنم.
بیشتر سوالات اینجا روی #C است و من هم فقط یادم بود که باید یک نمونه کد رمزنگاری حاضر کنم و چنین شد...
تبدیل VB.Net کدقبلی
یک پروژه Console Application با dotNet Framework 4.5 ایجاد کنید و در فایل Module1.vb کد زیر را قرار دهید:
کد فوق را امتحانی کنید و ببینید میتوانید اجرایش کنید، توضیح خواستید یا مشکلی بود و... در خدمت هستم...کد:Imports System.Security.Cryptography
Imports System.Linq
Imports System.Text
Public Module Module1
Public Sub Main()
Encrypt("D:\file.jpg", "D:\file.encrypt", "123")
Decrypt("D:\file.encrypt", "D:\file2.jpg", "123")
End Sub
Public Sub Decrypt(input As String, output As String, password As String)
Dim hashpassword = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(password))
Dim symmetric = DES.Create()
symmetric.IV = hashpassword.Take(8).ToArray()
symmetric.Key = hashpassword.Skip(8).ToArray()
Using _
reader = New System.IO.FileStream(input, System.IO.FileMode.Open, System.IO.FileAccess.Read), _
writer = New System.IO.FileStream(output, System.IO.FileMode.CreateNew, System.IO.FileAccess.Write), _
stream = New CryptoStream(reader, symmetric.CreateDecryptor(), CryptoStreamMode.Read)
Dim buffer(64 * 1024) As Byte
Do While (True)
Dim read As Integer = stream.Read(buffer, 0, buffer.Length)
If (read <= 0) Then Exit Do
writer.Write(buffer, 0, read)
Loop
End Using
End Sub
Public Sub Encrypt(input As String, output As String, password As String)
Dim hashpassword = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(password))
Dim symmetric = DES.Create()
symmetric.IV = hashpassword.Take(8).ToArray()
symmetric.Key = hashpassword.Skip(8).ToArray()
Using _
reader = New System.IO.FileStream(input, System.IO.FileMode.Open, System.IO.FileAccess.Read), _
writer = New System.IO.FileStream(output, System.IO.FileMode.CreateNew, System.IO.FileAccess.Write), _
stream = New CryptoStream(writer, symmetric.CreateEncryptor(), CryptoStreamMode.Write)
Dim buffer(64 * 1024) As Byte
Do While (True)
Dim read As Integer = reader.Read(buffer, 0, buffer.Length)
If (read <= 0) Then Exit Do
stream.Write(buffer, 0, read)
Loop
End Using
End Sub
End Module
در خصوص کد خودتان هم باید عرض کنم، این کد بنظر از برنامه نویسی بدی تحت VB6 تبدیل به کدبدتری در VB.Net شده.
علی الحساب دو مشکل شما بدین شکل رفع خواهند شد
شاید کدتان کامپایل شود ولی مشکلی از شما حل نخواهد شد! فراموشش کنید!کد:Private Const ALI As String = "ali"
...
Dim strDataOut As String = ""
موفق باشید.
سلام ممنون از کمک تون کد شما رو تیست نکردم
ولی مشکل کد خودم یکیش پابر جاست
ی توضیح در این مورید میخواستم
ورودی های این XOR تابع مثلا 2 تا هست 1- مهتوا( s) که قراره کدشه
2- مهتوا ( ali) یعنی مهتوا (s) براساس این کد میشه یعنی چه
یعنی مهتوا (s) همش مثلا ali میشن نمیدونم توضیح بدین لطفا ورودی 2 رو
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام
این کد خودتان کمی فضایی است، آن قسمتی که خطا دارد به نظر خط هایش جابجا است...
رفعش هم بکنید جای دیگرش میزند بیرون... و بازهم ادامه خواهد داشت...! ارزش تعمیر را ندارد...
یک کد XOR برایتان نوشتم، بسیار کوتاه و ساده تر است، این را ببینید و دانلود کنید و اجرا کنید، خواستید هر بحث و مشکلی را روی همین کد در خدمت هستم
ولی با عرض شرمندگی حال و حوصله سروکله زدن با کدهای VB6 ده پانزده سال پیش را که بزور دات نتی شده اند را ندارم
علی الحساب یک توضیح کوتاه از کدپیشنهادی خودم ارائه میدهم...
تابع فوق یک فایل را گرفته و تک تک بایت های آن را با یک عدد مشخص XOR میکند و نتیجه را در فایل دیگری میریزید...کد:Public Sub XOREncrypt(filepathInp As String, filepathOut As String, xorvalue As Byte)
If (System.IO.File.Exists(filepathOut)) Then System.IO.File.Delete(filepathOut)
Dim buffer(64 * 1024) As Byte
Using _
reader = New System.IO.FileStream(filepathInp, System.IO.FileMode.Open, System.IO.FileAccess.Read), _
writer = New System.IO.FileStream(filepathOut, System.IO.FileMode.CreateNew, System.IO.FileAccess.Write)
Do While (True)
Dim read As Integer = reader.Read(buffer, 0, buffer.Length)
If (read <= 0) Then Exit Do
For index As Integer = 0 To read - 1
buffer(index) = buffer(index) Xor xorvalue
Next
writer.Write(buffer, 0, read)
Loop
End Using
End Sub
خط اول فایل مقصد را در صورت وجود حذف میکند.
خط بعدی یک بافر (حافظه موقت) 64KB میگیرد.
در خطوط Using دو فایل ورودی و خروجی جهت خواندن و نوشتن باز میشوند.
در اولین حلقه (While) برنامه برای آنکه مشکل سرریز RAM رخ ندهد هر بار 64KB از فایل ورودی را میخواند و رویش عملیات انجام میدهد.
بدین شکل میتوان فایل های چندین گیگابایتی فیلم را هم با کمترین مصرف RAM رمزنگاری کرد، چون عملیات بجای آنکه یکباره انجام شود در قطعات کوچک انجام میشود.
با کمک تابع Read یک بلوک 64KB از فایل ورودی خوانده میشود.
در حلقه دوم (For) تک تک بایت های بلوک خوانده شده با عدد مشخص XOR میشوند.
و پس از حلقه و به کمک تابع Write آن بلوک رمزشده در فایل خروجی ریخته میشود.
این فرآیند تا خوانده شدن تمام فایل ورودی تکرار میشود.
==============
تابع XOR یک تابع دوسمته است، مشابه Not ، یعنی یک بار اجرایش کنید، مثلا رمزنگاری انجام میشود و دفعه بعد اجرایش کنید، رمزگشایی انجام میشود.
جهت امتحان، یک تصویر، فیلم یا exe را به ورودی برنامه بدهید تا رمزکنید، سپس همان فایل رمزشده را به ورودی برنامه بدهید تا مجدد رمزگشایی کند، مشاهده میکنید که مجدد عکس یا فیلم و exe تان کار خواهد کرد.
دانلود پروژه کامل:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
موفق باشید.
باسلام:همین کد شمارو
اکر بخوام تکس پسورد از روی فرم پاککنم بجاشConst تعریف کنم ,
وان قیسمت که گفتی 64 64 میخونه هم پاک کنم یعنی یک بار بیخونه کا فیه
این کد بچه صورت میشه !
وبچه صورت فراخوانی میشه!
ی راهنمای کنید ممنون
سلام
ولی یکبار خواندن فایل فقط ارزش دانشگاهی و الگوریتم و... دارد(:n39:) و ارزش عملی ندارد و درعمل غیرقابل استفاده است.کد:Private Const XORVALUE As Byte = 85
Public Sub XOREncrypt(filepathInp As String, filepathOut As String)
Dim buffer() As Byte = System.IO.File.ReadAllBytes(filepathInp)
For index As Integer = 0 To buffer.Length - 1
buffer(index) = buffer(index) Xor XORVALUE
Next
System.IO.File.WriteAllBytes(filepathOut, buffer)
End Sub
سلام
من از کد تابع شما در جای دگه استفاده کردم 2 تاارور داد
1 تابع پیدا نکرده ؟
2 ثابیت که تعریف کردم پیدانکرده؟
چیگونه این ارور ها رو بر طرف کنم؟
یا ی کد تا بع دگه بگید که با این رویش کد من هم خانی داشته باشه ممنون اینم عکس
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام
عزیزجان، آن پروژه ای که برایتان قرار دادم، دیالوگ Open و Save را دارد، چه اصراری است که بخواهید اینها را با هم ادقام کنید و بعد هم بدین شکل...
برنامه نویسی زبان نوشتار عادی که نیست که هرچیزی را بردارید و چیز دیگری را جایش تایپ کنید و انتظار داشته باشید یک جوری رایانه بفهمد و کار کند...
یک قواعدی داریم سینتکسی داریم که باید رعایت شود.
طبیعتا رایانه هرچیزی که به هر شکلی شما مینویسید را نمی تواند بفهمد، یک نقطه هم در جای خود مهم است، شما برای ویرایش کدهای برنامه نویسی باید یک دانش حداقلی داشته باشید.
پس دستور زیر را چرا حذف میکنید؟نقل قول:
اکر بخوام تکس پسورد از روی فرم پاککنم بجاشConst تعریف کنم
با توجه به اینکه برنامه نویسی نمیدانید، مجدد پیشنهاد میکنم از پروژه کامل بدون هیچ دستکاری استفاده کنید:کد:Private Const XORVALUE As Byte = 85
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
کد:! کد صحیح تر شده خودتان پس از ادقام !
Private Sub Button2_Click...
...
If (SaveFileDialog1.Show...) Then
XOREncrypt(s, SaveFileDialog1.FileName)
End If
...
End Sub
Private Const XORVALUE As Byte = 85
Public Sub XOREncrypt(filepathInp As String, filepathOut As String)
Dim buffer() As Byte = System.IO.File.ReadAllBytes(filepathInp)
For index As Integer = 0 To buffer.Length - 1
buffer(index) = buffer(index) Xor XORVALUE
Next
System.IO.File.WriteAllBytes(filepathOut, buffer)
End Sub
سلام ممنونم از توجه و راهنمای تون
اسرار من فقط بخاطر اینه که به این رویش1- عادت دارم ,
2- و بعد اینکد کردن با xor ,استاندار کنم با بیس64 همین,
من چند سوال دارم لطفا راهنمای کنید
1- فرق ساب(sub) و تابع(function) چیه؟؟ اکر همین کد تو تابع بنویسم چه فرق داره ,مثلان توخودنویشتن تابع چه فرق داره وتو نحوه فراخانی چه فرق داره,
2- من میخوام با پسورد اینکد کنم یعنی موقه دیکد کردن پسورد بخواد وبدون اون دیکد نشه
سلام
اولا ربط Base.64 را چندان به این مباحث درک نمیکنم، شما مگر نمیخواهید یک فایل (مانند exe) را رمز کنید، پس ...
sub ها هیچ خروجی ندارند در حالیکه func ها چیزی از نیجه کارشان برمیگردانند...نقل قول:
فرق ساب(sub) و تابع(function) چیه؟؟
کد:MySubName(123, "Hello", x)
MyFuncName(123, "Hello", x)
y = MyFuncName(123, "Hello", x)
نقل قول:
من میخوام با پسورد اینکد کنم یعنی موقه دیکد کردن پسورد بخواد وبدون اون دیکد نشه
متاسفم، حداقل من نمیدانم شما چه میخواهید ، گمان نکنم کمک بیشتری بتوانم بکنم... :n13::n40:کد:Public Sub XOREncrypt(filepathInp As String, filepathOut As String, password AS Byte)
Dim buffer() As Byte = System.IO.File.ReadAllBytes(filepathInp)
For index As Integer = 0 To buffer.Length - 1
buffer(index) = buffer(index) Xor password
Next
System.IO.File.WriteAllBytes(filepathOut, buffer)
End Sub
باسلام دوستان: کمی در مورید پک کردن یک برنامه توضیح بدین اکر تایپیک یا مقاله فارسی در این مورید هست لطفا لینک بزارید
اکر همین فایل که با الگوریتم xor اینکریپت شده رو تو یک فایل exe تزریق کنم که وقتی روی فایل exe کلیک کرد فایل اینکریپت شده رو اجرا کنه چیگونه میتونم اینکارو کنم؟ممنون
سلام
رمزنگاری، آنهم با اگوریتم سستی مانند XOR ...
مخفی کردنی یک exe داخل یک exe دیگر و اجرای آن ...
انشاا... ویروس که نه ولی برنامه مردم آزار و مایه لعن و نفرین که نمیخواهید بسازید؟ :n35:
درون exe ها و dll ها بخشی به نام Resource پیش بینی شده که میتوانید متن و آیکون و تصویر و آهنگ و هر فایلی را در آن قرار دهید و از آن استفاده کنید.
کافیست فایل را در Resource اضافه کنید و در زمان لازم Extract کنید.
(برای ورود به بخش Resource میتوانید از منوی Project>Properties>Resource اقدام کنید)
دو پست مختلف به دو شیوه مختلف در این مورد صحبتی شده:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
پس از Extract در هارد میتوانید هر exe را با تابع System.Diagnostics.Process.Start اجرا کنید.
(پیشنهاد میکنم اجرای notepad یا ماشین حساب ویندوز را توسط تابع فوق یکبار امتحان کنید)
موفق باشید.
سلام دوباره
نه دوست عریر ویروس کجابود!ویروس مگه به این اسونیهایه!
من فقط یک فایل اجرا کننده یاهمون (stub)میخوام وا30 فایل اینکریپت شده همین
بقول خودت که با این تابع هر exe را با تابع System.Diagnostics.Process.Start exe اجرا میشه فایل من که exe نیست ایینکریپتشده هست
من این کارو میخوام انجام بدم
فایل اینکریپت شده رو تزریق کنم تو فایل اجرا کننده (stub) اینو خودم میدنم( " هالا تو این فایل اجرا کننده (stub) چه دستورات نیازه که فایل اینکریپت شده رو از سورس خودش پیدا ودیکریپت وبعد هم اجراکنه انو نمیدونم" ) لطفا توضیح بدین
نمیخوام فایلو اول تو هارد کپی ار انجاه اجرا کنه این طور نباشه
از دوستان که وقت میزارن وراهنمای میکنن ممنونم
نقل قول:
سلام
به این فن آوری هسته ای کمک کنید
سلام
متاسفم، فقط یک مسیر برای اجرای exe های دات نتی در RAM وجود دارد و بطور کلی API جهت اجرای برنامه های ویندوزی در RAM نداریم یا حداقل من بلد نیستم ...نقل قول:
نوشته شده توسط ALIFARSI
تنها راهی که بلدهستم آن است که فایل در را temp ذخیره و اجرا کنید ...
؟
کدام؟ همان که حق مسلم ماست؟! :n19:نقل قول:
نوشته شده توسط ALIFARSI
میبخشید کمی درگیری دانلود و نصب و امتحان مکرر [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] داشتم و البته هنوز دارم ...
سلام
یک نمونه کد دیگر برایتان حاضر کردم...
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
این بسته شامل دو پروژه XORFile (قبلی) و ExeEmbeddedFile (جدید) است.
شما باید یک فایل exe را که میخواهید رمز و درون برنامه تان ذخیره کنید را به XORFile بدهید و فایل رمز شده را در شاخه ExeEmbeddedFile\Resources با نام Embed.exe جایگزین کنید...
پس از کامپایل پروژه ExeEmbeddedFile برنامه ای خواهید داشت که با گرفتن password فایل exe اصلی را اجرا میکند.
موفق باشید.
سلام
من این کد میخوام تو تابع (Function) یزارم به چه صورت در میاد! ممنون
کدکد:Public Sub XOREncrypt(filepathInp As String, filepathOut As String, password AS Byte)
Dim buffer() As Byte = System.IO.File.ReadAllBytes(filepathInp)
For index As Integer = 0 To buffer.Length - 1
buffer(index) = buffer(index) Xor password
Next
System.IO.File.WriteAllBytes(filepathOut, buffer)
End Sub
سلام
تابع شود! یعنی همینطوری بدون مشکل ، فهم یا دلیل خاصی باید تابع شود؟ خوب تابع باید در نتیجه کارش چیزی پس دهد، من نمیدانم شما چه چیزی میخواهید از این کد پس بگیرید! بعد اگر این کد پارامترهایش تغییری کند که کل کدهای دیگری که با این مانند چرخ دنده های یک ماشین همکاری میکنند به هم خواهند ریخت، بعد باید ... ! :n02::n13:نقل قول:
من این کد میخوام تو تابع (Function) یزارم به چه صورت در میاد
سلام
باشه پارامترهایش تغیر کنه فقط تو تابع باشه (که یچیزی رو از نتجه کار پس دهد) من انو میخوام بدونم که به چه صورت در میاد (function)
سلام
کد:'الگوی کلی تعریف تابع
Public Function NAME(PARAMS) As TYPE
'...
'...
'...
Return VALUE
End Function
'یک تابع که دو عدد را جمع میکند !
Public Function Add(x As Integer, y As Integer) As Integer
Dim sum As Integer
sum = x + y
Return sum
End Function
'یک تابع که برای یک کاربر متن خوش آمد گویی می سازد !
Public Function Welcome(username As String) As String
Dim result As String
result = "Welcome, " + username
Return result
End Function
'یک تابع که صحت نام کاربری و گذرواژه را بررسی میکند
Public Function IsValidUserPass(username As String, password As String) As Boolean
Dim read_password_from_database As String
'...
read_password_from_database = "123"
'...
Dim result As Boolean
result = username = "Admin" AndAlso password = read_password_from_database
Return result
End Function
کد:'پس از رمزنگاری یک عدد که بیانگر تعداد بایت های پردازش شده است را برمیگرداند
Public Function XOREncrypt(filepathInp As String, filepathOut As String, password As Byte) As Integer
Dim buffer() As Byte = System.IO.File.ReadAllBytes(filepathInp)
For index As Integer = 0 To buffer.Length - 1
buffer(index) = buffer(index) Xor password
Next
System.IO.File.WriteAllBytes(filepathOut, buffer)
Return buffer.Length
End Function