سلام!
نمی دونم چرا هی می خوام از بچه ها بپرسم
می خواستم ببینم چطور می شه فایل ها رو دستکاری کرد؟
مثلا یه فایل اجرایی رو یه جوری تو برنامه باز کنیم، یه مقادیری رو عوض کنیم، بعدش بریزیم تو یه فایل جدید...
من خواستم بسازم ولی نتونستم (بس که کند ذهنم

)
حالا می ذارمش:[
attachment=1020]
تنها چیزی که از این برنامه میشه فهمید اینه که از فایل اول یک کپی ایجاد میکنه که برای این کار میتونی کد زیر رو که خلاصه تر هست استفاده کنی.
کد:
Private Sub Command1_Click()
Dim Temp As Boolean
Text1.Enabled = False
Text1 = ""
DoStop = False
Open "C:\1.jpg" For Binary As 1
Open "C:\2.jpg" For Binary As 2
While Not EOF(1) And Not DoStop
Get 1, , Temp
Text1.SelText = IIf(Temp, 1, 0)
Put 2, , Temp
DoEvents
Wend
Close
Text1.Enabled = True
End Sub
نکته مهم: شما فایل رو 2 بایت 2 بایت خوندی چون سایز متغیرهای بولی توی VB میشه 2 بایت. در ضمن متغیر Temp فقط وقتی False میشه که مقدار خونده شده صفر باشه که این احتمالش زیاد نیست. اون 0 و 1 ها آدم رو به اشتباه میندازه و طرف فکر می کنه فایل رو بیت به بیت خوندی این در حالیه که بجای هر 16 بیت یه دونه 0 یا 1 نمایش داده میشه.
حالا کجای این برنامه میخواستی فایل رو دستکاری کنی؟ (مثلا با تایپ کردن تو جعبه متن میخوای همون لحظه فایل تغییر کنه؟) در این صورت بایت به بایت بخونی بهتره. متغیر Temp رو از نوع بایت تعریف کن و دستور
کد:
Text1.SelText = Chr(Temp)
رو جایگزین کن.
راستی چون از SelStart استفاده کردم مکان نما همیشه باید آخر جعبه متن باشه برا همین جعبه متن رو در طول انجام پروسه غیر فعالش کردم.
تازه این اول مشکلات هست چون جعبه متن کاراکترهای 0 تا 255 رو عجق وجق نشون میده پس بهتره فایل رو تو آرایه Load کنی که در این صورت هم بیشترین اندازه آرایه میتونه 324272096 بایت باشه نه بیشتر.
با وجود این مشکلات بهتره با برنامه نمونه ای که گذاشتم رو فایل های متنی کار کنی (چون کاراکترهاشون عجق وجق نیستند):
لطفا برنامه رو دانلود کنید.
1ـ View رو بزنید.
2ـ جعبه متن رو تغییر بدین
3ـ Change رو بزنید.
4ـ Clear کنید.
5ـ View بزنید.
ممنون خوب بود
فقط توی Command3 (Change) x بخش حذف بایت های اضافی بی استفاده ست و حتی یه سری فضای خالی (به مقدار فضای اول فایل) ایجاد می کنه!
کد:
For Counter = 1 To Sz - Len(Text1)
Put 1, , Empty
Next
دوم اینکه طریقه کار با فایل های متنی رو بلدم (معلومه خیلی بد سوال کردم نه)، ولی برای اینکه مثلا یه فایل اجرایی رو باز کنیم با این روش نمیشه یعنی می شه ها ولی خب انگار تویه نوت پد بازش کردی و یه پیغام می نویسه اولین خط:
!This program cannot be run in DOS mode.
در حقیقت من یه چیزی مثل xvi32 یا رس هکر یا P32dasm می خوام که فایل هارو باز کنه. چیزی رو نمی خوام بدونم که تو فایل چی نوشته فقط می خوام درست باز بشه!
(نمی دونم بازم متوجه شدی یا نه! :) )
انگار فرض کن که من می خوام اطلاعات فایل رو درون برنامه باز کنم (حالا چه تو تکست باکس، چه آرایه یا هرچی) بعد اونو ذخیره کنم. همین!
وقتی گفتی «مثل ResourceHacker» شیر فهم شدم. ولی من بلد نیستم.
حذف بایت های اضافه هم برای وقتیه که مثلا فایل 10 بایت اطلاعات داره بعد شما 5 بایت رو دستکاری و 5 بایت دیگه رو حذف می کنی. 5 بایت دستکاری شده جایگزین می شن ولی 5 بایتی که حذف کردی باید با مقدار Empty جایگزین بشن در غیر اینصورت فایل همچنان 10 بایت باقی می مونه.
نقل قول: حتی یه سری فضای خالی (به مقدار فضای اول فایل) ایجاد می کنه!
فکر نکنم همچین مشکلی داشته باشه.

چون سریع خوندم نمیدونم منظورتو دقیق فهمیدم یا نه.
به هر حال یه چند وقت پیش همینجا بحث شد در مورد دستکاری باینری اینو نوشتم. ببین بدردت میخوره.
ببینین notepad فایلها رو به صورت hex نشون میده بایت به بایت میخونه و مقدار رو به صورت hex نشون میده اون جملهThis program cannot be run in DOS mode. هم مربوط میشه به loader که وقتی فایل exe رو اجرا میکنه چک میشه که رو چه پلتفورمی اجرا شده(برای اطلاعات بیشتر رجوع شود به کتابARTeam PE Tutorial)
کاری هم که ریسورس هکر انجام میده دسترسی به سکشن ریسورس فایلهای pe هستش(برای اطلاعات بیشتر رجوع شود به کتابARTeam PE Tutorial)
در مورد برنامه های disasem32 اینها زبان ماشین رو به اسمبلی برمیگردونن چون این 2 زبان به هم نزدیکن
ajlajlajl نوشته است:چون سریع خوندم نمیدونم منظورتو دقیق فهمیدم یا نه.
به هر حال یه چند وقت پیش همینجا بحث شد در مورد دستکاری باینری اینو نوشتم. ببین بدردت میخوره.
دستت درد نکنه علی جان

فکر کنم بتونم با همین کارمو راه بندازم. تقریبا همونیه که می گفتم
شما که اعضای فعالی هستید و حتما صفحه اول سایت رو دیدید.
این لینک رو میذارم برا کسایی که با جستجو به این تاپیک بر می خورن.
هك كردن فايل اجراي
نه. من الان فکر کنم یه دو سه ماهی از آخرین باری که به سایت سر زدم میگذره.