თექვსმეტობითი კოდის რედაქტორი. Hex რედაქტორები vs. მავნე პროგრამა: თექვსმეტობითი რედაქტორის შერჩევა ბინარების გასაანალიზებლად

სერიის დასრულების შემდეგ სტატიით „საუკეთესო პენტესტერის ხელსაწყოები“, რედაქტორმა მიიღო მრავალი წერილი, რომლებშიც ითხოვდა ექვსკუთხა რედაქტორების შერჩევას. ინტერესი, რა თქმა უნდა, არ არის ბინარული მონაცემების რედაქტირების შესაძლებლობა, არამედ დამატებითი ფუნქციები, როგორიცაა მონაცემთა სტრუქტურების ავტომატური ამოცნობა და კოდის დაშლა. მიმოხილვის გასაკეთებლად, ჩვენ გავარკვიეთ იმ ადამიანების მოსაზრებები, რომლებსაც ყველაზე ხშირად უწევთ ასეთი ინსტრუმენტების შეხება - ვირუსის ანალიტიკოსები. და ეს არის ის, რაც მათ გვითხრეს.

ნებისმიერი თექვსმეტობითი რედაქტორი საშუალებას გაძლევთ შეისწავლოთ და შეცვალოთ ფაილი დაბალ დონეზე, ფუნქციონირებს ბიტებით და ბაიტებით. ფაილის შინაარსი წარმოდგენილია თექვსმეტობით ფორმატში. ეს არის ძირითადი ფუნქციონირება. თუმცა, ზოგიერთი რედაქტორი მომხმარებლებს ბევრად მეტს სთავაზობს, რაც მათ საშუალებას აძლევს გაარკვიონ ზუსტად რა არის სიმბოლოების ამ გაუგებარ ნაკრებში, რომელიც გამოჩნდება ფაილის გახსნისას. ამისთვის ASCII და Unicode სტრიქონები ავტომატურად ამოიღებება, ცნობილი შაბლონები იძებნება, მონაცემთა ძირითადი სტრუქტურები ამოიცნობს და მრავალი სხვა. არსებობს საკმაოდ ბევრი თექვსმეტობითი რედაქტორი, მაგრამ თუ გადავწყვიტეთ მათი გათვალისწინება მავნე პროგრამების ნიმუშების შესწავლის კონტექსტში, ადვილია გამოვყოთ ზოგიერთი მათგანი. მხოლოდ რამდენიმე აღმოჩნდა მართლაც სასარგებლო მავნე კოდის გასაანალიზებლად და ინფიცირებული დოკუმენტების (მაგალითად, PDF) შესამოწმებლად.

McAfee FileInsight

FileInsight არის უფასო თექვსმეტობითი რედაქტორი Windows-ისთვის McAfee Labs-ისგან. პროდუქტი, რა თქმა უნდა, ასრულებს ყველა სტანდარტულ ფუნქციონირებას, რომელიც თან ახლავს ასეთ პროგრამულ უზრუნველყოფას, გთავაზობთ მოსახერხებელ ინტერფეისს ფაილების თექვსმეტობით და ტექსტურ რეჟიმში სანახავად და რედაქტირებისთვის. მაგრამ ეს მხოლოდ წვეთია ზღვაში, თუ გადავხედავთ მის მთელ ფუნქციურობას. დასაწყისისთვის, FileInsight-ს შეუძლია Windows-ის (PE ფაილების) შესრულებადი ბინარების სტრუქტურის გაანალიზება, ასევე Microsoft Office-ის OLE ობიექტები. არა მხოლოდ ეს, არამედ მომხმარებელს სთავაზობენ ჩაშენებულ x86 დემონტაჟს. უბრალოდ აირჩიეთ ფაილის ის ნაწილი, რომელიც გსურთ იხილოთ, როგორც წასაკითხი კოდი და FileInsight აჩვენებს ამ ფრაგმენტს, როგორც ასამბლეის ინსტრუქციების ჩამონათვალს. დემონტაჟი განსაკუთრებით სასარგებლოა მავნე ფაილებში shellcode-ის ძიებისას. სხვა ვარიანტები, რომლებსაც რევერსატორები დააფასებენ, მოიცავს სტრუქტურის დეკლარაციების იმპორტის შესაძლებლობას. ამისათვის პროგრამამ უბრალოდ უნდა მიუთითოს სათაურის ფაილი დეკლარაციებით, როგორიცაა:

ANIHeader-ის აგება(
DWORD cbSizeOf; // ბაიტების რაოდენობა AniHeader-ში
DWORD cFrames; // უნიკალური ხატების რაოდენობა
DWORD cSteps; // ბლიტების რაოდენობა
};

ამ შემთხვევაში, პროგრამა თავად აანალიზებს ასეთ სტრუქტურებს. თუმცა, კოდების დამუშავების მრავალი ინტუიციური ალგორითმი შემოთავაზებულია ნაგულისხმევად. საუბარია, უპირველეს ყოვლისა, დაბინძურების მრავალი მეთოდის (xor, add, shift, Base64 და ა.შ.) გაშიფვრაზე - ჩაშენებული სკრიპტები ასეთ კრიპტო დაცვას ერთ-ორ პუნჩად აქცევს. აქვე უნდა აღინიშნოს, რომ კვლევის ობიექტი სულაც არ უნდა იყოს ორობითი, ის ასევე შეიძლება იყოს ჩვეულებრივი ვებგვერდი, რომელიც იწვევს ეჭვს. პროგრამა საშუალებას გაძლევთ ავტომატიზირდეთ მრავალი მოქმედების მარტივი JavaScript სკრიპტების ან Python მოდულების გამოყენებით, რომელთაგან ბევრი უკვე დაწერილია. სამწუხაროდ, მთელი თავისი უპირატესობებით, FileInsight-ს ასევე აქვს სერიოზული ნაკლი, რაც არის დიდი ფაილების დამუშავების შეუძლებლობა. მაგალითად, თუ თქვენ ცდილობთ 400-500 მბ ზომის ფაილს უტილიტაში მიაწოდოთ, ჩნდება შეცდომა „დოკუმენტის გახსნა ვერ მოხერხდა“.

Hex რედაქტორი ნეო

ამ ექვსკუთხა რედაქტორის ორი ვერსია არსებობს HDD Software–დან - მარტივი უფასო ვერსია და გაფართოებული კომერციული ვერსია. უფასო პროგრამული უზრუნველყოფის ვარიანტი არის მყარი, მაგრამ გამორჩეული HEX რედაქტორი, რომელსაც აქვს მაგარი, კონფიგურირებადი ინტერფეისი სხვადასხვა ფერის სქემების მხარდაჭერით. მეტი არაფერი. მაგრამ Hex Editor Neo-ს პროფესიონალური ვერსია გთავაზობთ რამდენიმე სასარგებლო ვარიანტს, რომლებიც შეიძლება ძალიან სასარგებლო იყოს ბინარების ანალიზის დროს. მაგალითად, მომხმარებელი იღებს შესაძლებლობას გაშიფროს კოდი დაშიფრული ყველაზე გავრცელებული ალგორითმების გამოყენებით. გარდა ამისა, შესაძლებელი ხდება ადგილობრივი რესურსების ნახვა და რედაქტირება, როგორიცაა NTFS ნაკადები, ლოკალური დისკები, პროცესების მეხსიერება და ოპერატიული მეხსიერება. ყველაზე სრულყოფილი ვერსია ასევე მოიცავს სკრიპტირების ენის მხარდაჭერას, რომელიც საშუალებას გაძლევთ ავტომატიზირდეთ მრავალი პროცესის გამოყენებით სკრიპტები VBScript-ში და JavaScript-ში. მაგრამ ყველაზე კარგი ის არის, რომ თქვენ გაქვთ ჩაშენებული დემონტაჟი, რომელიც მუშაობს x86, x64 და .NET ბინარებით! კიდევ ერთი თვისება არის პატჩების სწრაფი შექმნა ორი ბინარის შედარების საფუძველზე. შთამბეჭდავად ჟღერს, მაგრამ ის უკეთესია ვიდრე FileInsight? ალბათ არა. FileInsight მთლიანობაში უფრო ფუნქციონალურად გამოიყურება. მეორეს მხრივ, Hex Editor Neo-ს ნებისმიერი, თუნდაც უფასო ვერსია მუშაობს ძალიან დიდ ფაილებთანაც კი და საშუალებას გაძლევთ მოძებნოთ ASCII და Unicode სტრიქონები. აქ დემონტაჟი არ შემოიფარგლება მხოლოდ x86 პლატფორმით და ჩაშენებული რესურსების რედაქტორი ძალიან მოსახერხებელია. საფიქრალი ბევრია.

FlexHex

FlexHex არის ძლიერი კომერციული თექვსმეტობითი რედაქტორი Heaventools Software-ისგან, რომელიც მოიცავს ბევრ იგივე ფუნქციას, რომელიც გვხვდება Hex Editor Neo-ში. ერთადერთი, რაც აქ აკლია, არის, ალბათ, სკრიპტის მხარდაჭერა. მაგრამ ეს სრულფასოვანი რედაქტორი თანაბრად კარგად ამუშავებს ბინარებს, OLE ფაილებს, ფიზიკურ დისკებს და ალტერნატიულ NTFS ნაკადებს. ეს უკანასკნელი განსაკუთრებით მნიშვნელოვანია, რადგან FlexHex გაძლევთ საშუალებას შეცვალოთ მონაცემები, რომლებიც სხვა რედაქტორებმა შეიძლება ვერც კი დაინახონ. გარდა ამისა, თქვენ შეგიძლიათ დაუყოვნებლივ იგრძნოთ აქცენტი დიდი რაოდენობით ინფორმაციასთან მუშაობაზე: არ აქვს მნიშვნელობა ფაილის ზომას, მასში ნავიგაცია ხორციელდება ყოველგვარი ჩამორჩენისა და დამუხრუჭების გარეშე. კიდევ უფრო მეტი მოხერხებულობისთვის, არსებობს მოსახერხებელი სანიშნეების სისტემა. ამავდროულად, FlexHex განუწყვეტლივ ინახავს ყველა ოპერაციის ისტორიას - შეგიძლიათ გააუქმოთ ნებისმიერი ქმედება ცვლილებების სიიდან უბრალოდ არჩევით (გაუქმება არ არის შეზღუდული)! FlexHex მხარს უჭერს ყველა საჭირო ოპერაციას ბინარული მონაცემებით, ეძებს ASCII და Unicode სტრიქონებს. თუ თქვენ გჭირდებათ სტრუქტურის დამუშავება ადრე ცნობილი ფორმატით, მისი პარამეტრების დაყენება არ არის რთული სპეციალური ხელსაწყოების გამოყენებით. შედეგი არის შესანიშნავი hex რედაქტორი, მაგრამ მაინც ბევრად ჩამოუვარდება FileInsight-ს. ერთადერთი შესამჩნევი ვარიანტია OLE ფაილის დამუშავება, მაგრამ აქაც არის პრობლემები. რამდენჯერმე, ინფიცირებული OLE-ის გახსნის მცდელობისას, პროგრამა ავარიულად დაიშალა შეცდომით "დოკუმენტის ფაილი დაზიანებულია".

010 რედაქტორი

010 Editor არის ცნობილი კომერციული პროდუქტი, რომელიც შემუშავებულია SweetScape Software-ის მიერ. თუ მას შევადარებთ წინა სამ ინსტრუმენტს, მას შეუძლია ყველაფერი გააკეთოს: მხარს უჭერს ძალიან დიდ ფაილებთან მუშაობას, უზრუნველყოფს მონაცემთა მუშაობის შესანიშნავ შესაძლებლობებს, საშუალებას გაძლევთ შეცვალოთ ადგილობრივი რესურსები და აქვს სკრიპტირების სისტემა რუტინული მოქმედებების ავტომატიზაციისთვის (მეტი 140 სხვადასხვა ფუნქცია თქვენს სამსახურში). და 010 რედაქტორს ასევე აქვს ირონია, უნიკალური თვისება. რედაქტორი ზრუნავს ყველაზე, სხვადასხვა ფაილის ფორმატის გაანალიზების შესაძლებლობის წყალობით, შაბლონების საკუთარი ბიბლიოთეკის გამოყენებით (ე.წ. ორობითი შაბლონები). აქ მას არ ჰყავს თანაბარი. მრავალი ენთუზიასტი მთელს მსოფლიოში მუშაობს შაბლონებზე, ამუშავებს სხვადასხვა ფორმატსა და მონაცემთა სტრუქტურებს. შედეგად, სხვადასხვა ფაილის ფორმატებში ნავიგაციის პროცესი გამჭვირვალე და გასაგები ხდება. ეს ასევე ეხება Windows ორობითი ფაილების (PE ფაილების), Windows მალსახმობების ფაილების (LNK), Zip არქივების, Java კლასის ფაილების და მრავალი სხვა დამუშავებას. ბევრმა შეძლო ამ ფუნქციის მთელი სილამაზის გაცნობიერება, როდესაც უსაფრთხოების ცნობილმა სპეციალისტმა დიდიე სტივენსმა შექმნა შაბლონი PDF ფაილების ანალიზისათვის 010 რედაქტორისთვის. სხვა კომუნალურ პროგრამებთან ერთად, ამან მნიშვნელოვნად გაამარტივა ინფიცირებული PDF დოკუმენტების ანალიზი, რომლებიც ბოლო ექვსი თვის განმავლობაში არ წყვეტდნენ გაოცებას იმ ადგილების რაოდენობით, საიდანაც შესაძლებელია მკითხველის პროგრამის გამოყენება. ჩვენ აქ დავამატებთ მაგარ ინსტრუმენტს ბინარების შესადარებლად, კალკულატორს C-ის მსგავსი სინტაქსით, მონაცემთა გადაქცევას ASCII, EBCDIC, Unicode ფორმატებს შორის და მივიღებთ ძალიან მიმზიდველ ინსტრუმენტს უნიკალური მახასიათებლებით.

ჰაი

Hiew, განაწილების მეთოდით, დიდად არ განსხვავდება მისი კოლეგებისგან - ეს ასევე კომერციული პროდუქტია, რომელიც შემუშავებულია ჩვენი თანამემამულე ევგენი სუსლიკოვის მიერ. ხანგრძლივი ისტორიის მქონე პროგრამას ძალიან უყვარს ინფორმაციული უსაფრთხოების ბევრ სპეციალისტს. ამის სავსებით აშკარა მიზეზები არსებობს - მძლავრი შესაძლებლობები, როგორც Windows-ის (PE) ასევე Linux-ისთვის (ELF) შესრულებადი ფაილების სტრუქტურისა და შინაარსის კვლევისა და რედაქტირებისთვის. კიდევ ერთი ძალიან სასარგებლო ფუნქცია საპირისპირო ინჟინერიისთვის არის ჩაშენებული x86-64 ასამბლერი და დემონტაჟი. ეს უკანასკნელი კი მხარს უჭერს ARM ინსტრუქციებს. ზედმეტია იმის თქმა, რომ რედაქტორი შესანიშნავად ითვისებს დიდ ფაილებს და საშუალებას გაძლევთ შეცვალოთ ლოგიკური და ფიზიკური დისკები. ბევრი დავალება ადვილად ავტომატიზირებულია კლავიატურის მაკროების, სკრიპტების და გაფართოებების განვითარების API-ის სისტემის მეშვეობით (Hiew Extrenal Modules). მაგრამ სანამ ბრძოლას შეუდგებით, გახსოვდეთ, რომ Hiew ინტერფეისი არის DOS-ის მსგავსი ფანჯარა, რომელთან მუშაობა საკმაოდ მოუხერხებელია, თუ არ ხართ მიჩვეული. მაგრამ თქვენ შეგიძლიათ განიცადოთ ძველი სკოლის მთელი ხიბლი.

რადარე

Radare არის უფასო კომუნალური საშუალებების ნაკრები Unix პლატფორმისთვის, რომელიც უზრუნველყოფს ფაილების რედაქტირების მაგარი შესაძლებლობებს HEX რეჟიმში. მასში შედის თავად hex რედაქტორი (radare) ადგილობრივი და დისტანციური ფაილების გახსნის შესაძლებლობით. პროგრამა აანალიზებს სხვადასხვა ფორმატის შესრულებად ფაილებს, როგორც Linux (ELF) ასევე Windows (PE). გარდა რედაქტირებისა, Radare პაკეტი მოიცავს ორობითი ფაილების შედარების ინსტრუმენტს (რადიფი) და ჩაშენებულ ასამბლერს/დაშლას. და პირადად, ჭურვის კოდების (rasc) გენერირების ინსტრუმენტი რამდენჯერმე გამოგადგებათ. ნებისმიერი ოპერაციების მარტივად ავტომატიზაცია და მორგება შესაძლებელია სკრიპტის სისტემის გამოყენებით. მინუსებიდან, კიდევ ერთხელ, შეგვიძლია აღვნიშნოთ GUI ინტერფეისის ნაკლებობა - ყველა მოქმედება ხორციელდება ბრძანების ხაზიდან და თქვენ შეგიძლიათ სრულად იმუშაოთ კომუნალურ კომპანიებთან მხოლოდ დოკუმენტაციის წაკითხვის შემდეგ. მეორეს მხრივ, საიტს აქვს ვიზუალური ეკრანის კადრები, რომლებიც ასახავს როგორც მთავარ პუნქტებს, ასევე პატარა საიდუმლოებებს (როგორიცაა პითონის მოდულის დაკავშირება).

ასე რომ, რა უნდა აირჩიოთ?

ჩვენ განვიხილეთ რამდენიმე ძლიერი თექვსმეტობითი რედაქტორი, რომელიც შეიცავს სასარგებლო ვარიანტებს საეჭვო ფაილების გასაანალიზებლად. ყველა პროდუქტიდან გამოირჩევა FileInsight, რომელიც, მიუხედავად მთელი ფუნქციონალურისა (და მართლაც შთამბეჭდავია), უფასო რჩება. 010 რედაქტორი გთავაზობთ შაბლონების დიდ რაოდენობას მრავალფეროვანი ფაილების, მათ შორის PDF დოკუმენტების დასამუშავებლად. ეს არის მეგა ფუნქცია, რომელიც არ უნდა იყოს უგულებელყოფილი. მე ყოველთვის ვიყენებ ამ ორ რედაქტორს; ანალიტიკოსის მუშაობისთვის, ალბათ, ისინი საუკეთესოდ შეეფერება. თუ ვსაუბრობთ Unix პლატფორმის ქვეშ მუშაობაზე, მაშინ, რა თქმა უნდა, ვერ დავივიწყებთ Radare-ს. პაკეტი გთავაზობთ ძალიან მძლავრ ფუნქციებს, თუმცა მისი გამოყენება რთულია იმის გამო, რომ ის მუშაობს ბრძანების ხაზიდან. Hiew ასევე არ არის ძალიან მეგობრული, თუმცა მისი შესაძლებლობები რა თქმა უნდა საშუალებას გაძლევთ განახორციელოთ სხვადასხვა ოპერაციები ბინარებით. გარდა ამისა, Hiew არის დიდი რაოდენობით რეალური დადებითი არჩევანი და ეს ბევრი ღირს (და ბევრს ნიშნავს). რაც შეეხება Hex Editor Neo-ს, ღირს არჩევა, თუ გაინტერესებთ x86, x64 და .NET კოდების დაშლის შესაძლებლობა.

კარგი დღე ყველას.

რატომღაც, ბევრს მიაჩნია, რომ ექვსკუთხა რედაქტორებთან მუშაობა პროფესიონალების სფეროა და რომ ახალბედა მომხმარებლებმა არ უნდა სცადონ ისინი. მაგრამ, ჩემი აზრით, თუ თქვენ გაქვთ მინიმუმ საბაზისო კომპიუტერის უნარები და წარმოდგენა იმის შესახებ, თუ რატომ გჭირდებათ hex რედაქტორი, მაშინ რატომაც არა?!

ამ ტიპის პროგრამის გამოყენებით, თქვენ შეგიძლიათ შეცვალოთ ნებისმიერი ფაილი, მიუხედავად მისი ტიპისა (ბევრი სახელმძღვანელო და სახელმძღვანელო შეიცავს ინფორმაციას კონკრეტული ფაილის შეცვლის შესახებ hex რედაქტორის გამოყენებით)! მართალია, მომხმარებელს უნდა ჰქონდეს მინიმუმ საბაზისო გაგება თექვსმეტობითი სისტემის შესახებ (თექვსმეტობითი რედაქტორის მონაცემები წარმოდგენილია ზუსტად მასში). თუმცა მის საბაზისო ცოდნას სკოლაში კომპიუტერული მეცნიერების გაკვეთილებზე ისწავლება და ალბათ ბევრს სმენია და აქვს წარმოდგენა ამის შესახებ (ამიტომ ამ სტატიაში კომენტარს არ გავაკეთებ). ასე რომ, აქ არის საუკეთესო hex რედაქტორები დამწყებთათვის (ჩემი მოკრძალებული აზრით).

1) უფასო Hex Editor Neo

Windows-ისთვის თექვსმეტობითი, ათობითი და ორობითი ფაილების ერთ-ერთი უმარტივესი და ყველაზე გავრცელებული რედაქტორი. პროგრამა საშუალებას გაძლევთ გახსნათ ნებისმიერი ტიპის ფაილი, განახორციელოთ ცვლილებები (ცვლილებების ისტორია შენახულია), მოხერხებულად აირჩიოთ და დაარედაქტიროთ ფაილი, გამართოთ და გააანალიზოთ.

ასევე აღსანიშნავია შესრულების ძალიან კარგი დონე, რომელიც დაკავშირებულია აპარატის დაბალ სისტემურ მოთხოვნებთან (მაგალითად, პროგრამა საშუალებას გაძლევთ გახსნათ და დაარედაქტიროთ საკმაოდ დიდი ფაილები, ხოლო სხვა რედაქტორები უბრალოდ იყინებიან და უარს ამბობენ მუშაობაზე).

სხვა საკითხებთან ერთად, პროგრამა მხარს უჭერს რუსულ ენას და აქვს კარგად გააზრებული და ინტუიციური ინტერფეისი. ახალბედა მომხმარებელიც კი შეძლებს ამის გარკვევას და კომუნალურ პროგრამასთან მუშაობას. ზოგადად, ვურჩევ ყველას, ვინც იწყებს გაცნობას Hex-ის რედაქტორებთან.

2) ვინჰექსი

ეს რედაქტორი, სამწუხაროდ, არის shareware, მაგრამ ის არის ერთ-ერთი ყველაზე მრავალმხრივი, მხარს უჭერს სხვადასხვა ვარიანტებსა და ფუნქციებს (ზოგიერთის პოვნა რთულია კონკურენტებს შორის).

დისკის რედაქტორის რეჟიმში ის გაძლევთ საშუალებას იმუშაოთ: HDD-ებთან, ფლოპი დისკებთან, ფლეშ დრაივებთან, DVD, ZIP დისკებთან და ა.შ. ფაილური სისტემების მხარდაჭერა: NTFS, FAT16, FAT32, CDFS.

არ შემიძლია არ აღვნიშნო ანალიზისთვის მოსახერხებელი ხელსაწყოები: მთავარი ფანჯრის გარდა, შეგიძლიათ დააკავშიროთ დამატებითი სხვადასხვა კალკულატორები, ინსტრუმენტები ფაილის სტრუქტურის ძებნისა და ანალიზისთვის. ზოგადად, ის შესაფერისია როგორც დამწყებთათვის, ასევე გამოცდილი მომხმარებლებისთვის. პროგრამა მხარს უჭერს რუსულ ენას ( აირჩიეთ შემდეგი მენიუ: დახმარება / დაყენება / რუსული ).

WinHex, გარდა მისი ყველაზე გავრცელებული ფუნქციებისა (რომლებიც მხარს უჭერენ მსგავს პროგრამებს), საშუალებას გაძლევთ „კლონიროთ“ დისკები და წაშალოთ ინფორმაცია მათგან, რათა ვერავინ შეძლოს მისი აღდგენა!

3) HxD Hex რედაქტორი

უფასო და საკმაოდ ძლიერი ორობითი ფაილის რედაქტორი. მხარს უჭერს ყველა ძირითად კოდირებას (ANSI, DOS/IBM-ASCII და EBCDIC), თითქმის ნებისმიერი ზომის ფაილებს (სხვათა შორის, რედაქტორი საშუალებას აძლევს ფაილების გარდა, შეცვალოს ოპერატიული მეხსიერება და პირდაპირ დაწეროს ცვლილებები მყარ დისკზე!).

თქვენ ასევე შეგიძლიათ აღნიშნოთ კარგად გააზრებული ინტერფეისი, მოსახერხებელი და მარტივი ფუნქცია მონაცემთა ძებნისა და ჩანაცვლებისთვის, სარეზერვო და უკან დაბრუნების საფეხურიანი და მრავალდონიანი სისტემა.

გაშვების შემდეგ, პროგრამა შედგება ორი ფანჯრისგან: მარცხნივ არის თექვსმეტობითი კოდი, ხოლო მარჯვნივ არის ტექსტის თარგმანი და ფაილის შინაარსი.

მინუსებს შორის გამოვყოფდი რუსული ენის ნაკლებობას. თუმცა ბევრი ფუნქცია გასაგები იქნება მათთვისაც, ვისაც ინგლისური არასოდეს უსწავლია...

4) HexCmp

HexCmp - ეს პატარა პროგრამა აერთიანებს ერთდროულად 2 პროგრამას: პირველი საშუალებას გაძლევთ შეადაროთ ბინარული ფაილები ერთმანეთთან, ხოლო მეორე არის hex რედაქტორი. ეს არის ძალიან ღირებული ვარიანტი, როდესაც თქვენ უნდა იპოვოთ განსხვავებები სხვადასხვა ფაილებში, რაც დაგეხმარებათ შეისწავლოთ სხვადასხვა ტიპის ფაილების სხვადასხვა სტრუქტურა.

სხვათა შორის, შედარების შემდეგ ადგილები შეიძლება შეიღებოს სხვადასხვა ფერში, იმისდა მიხედვით, თუ სად ემთხვევა ყველაფერი და სად არის მონაცემები განსხვავებული. შედარება ხდება ფრენის დროს და ძალიან სწრაფად. პროგრამა მხარს უჭერს ფაილებს, რომელთა ზომა არ აღემატება 4 გბ-ს (საკმარისია დავალებების უმეტესობისთვის).

ჩვეულებრივი შედარების გარდა, თქვენ ასევე შეგიძლიათ შეადაროთ ტექსტის ფორმით (ან თუნდაც ორივე ერთდროულად!). პროგრამა საკმაოდ მოქნილია, ის საშუალებას გაძლევთ დააკონფიგურიროთ ფერის სქემა და მიუთითოთ მალსახმობების ღილაკები. თუ პროგრამას სათანადოდ დააკონფიგურირებთ, შეგიძლიათ მასთან მუშაობა საერთოდ მაუსის გარეშე! ზოგადად, მე გირჩევთ, რომ ექვსკუთხა რედაქტორებისა და ფაილური სტრუქტურების ყველა საწყისმა „ჩეკერმა“ წაიკითხოს იგი.

5) Hex სახელოსნო

Hex Workshop არის მარტივი და მოსახერხებელი ორობითი ფაილების რედაქტორი, რომელიც გამოირჩევა, პირველ რიგში, მოქნილი პარამეტრებით და დაბალი სისტემური მოთხოვნებით. ამის წყალობით, ის შეიძლება გამოყენებულ იქნას საკმაოდ დიდი ფაილების რედაქტირებისთვის, რომლებიც უბრალოდ არ იხსნება ან იყინება სხვა რედაქტორებში.

რედაქტორს აქვს ყველა ყველაზე საჭირო ფუნქცია: რედაქტირება, ძიება და ჩანაცვლება, კოპირება, ჩასმა და ა.შ. პროგრამას შეუძლია შეასრულოს ლოგიკური ოპერაციები, განახორციელოს ორობითი ფაილების შედარება, ნახოს და შექმნას სხვადასხვა ფაილების საკონტროლო ჯამები, მონაცემთა ექსპორტი პოპულარულ ფორმატებში: rtf და html .

რედაქტორს ასევე აქვს გადამყვანი ბინარულ, ორობით და თექვსმეტობით სისტემებს შორის. ზოგადად, კარგი არსენალია თექვსმეტი რედაქტორისთვის. ალბათ ერთადერთი უარყოფითი ის არის, რომ პროგრამა არის shareware...

შენიშვნა
სურათები არ არის ნაჩვენები ამ გვერდზე, მაგრამ შეგიძლიათ იპოვოთ ისინი წიგნში.

რასაც ახლა გავაკეთებთ, ჩემი გადმოსახედიდან ძალიან საინტერესოა. ეს იქნება თქვენი პირველი პროგრამა მანქანის კოდით (და, სავარაუდოდ, ერთადერთი))).

ასამბლეა დაბალი დონის ენაა, მაგრამ მაინც ენაა. სცადეთ პროგრამის დაწერა მანქანის კოდით? ახლა ვცადოთ.

თქვენ შეგიძლიათ დაწეროთ პროგრამა ყოველგვარი ასამბლერ-კომპილერის ან სხვა ხელსაწყოების გარეშე - ნებისმიერი თექვსმეტობითი რედაქტორის (ან თექვსმეტობითი რედაქტორის ან თექვსმეტობითი რედაქტორის) გამოყენებით.

და მაინც, თექვსმეტობითი რედაქტორში პროგრამების გარჩევა ძალიან სასარგებლოა. განსაკუთრებით მათთვის, ვინც აპირებს ელექტრონიკასთან მუშაობას - ბოლოს და ბოლოს, მიკროპროცესორებს არ ესმით არც პასკალი და არც C++. მიუხედავად იმისა, რომ არსებობს სპეციალური მოწყობილობები და პროგრამები, რომლებიც მათ "ახსნიან" ამ ენებს.

დასაწყებად, დაგჭირდებათ hex რედაქტორი. შეგიძლიათ გამოიყენოთ ის, რაც ხელთ გაქვთ. თუმცა, მე გამოვიყენებ უკვე ნახსენებ McAfee FileInsight v2.1-ს. ამ თექვსმეტობითი რედაქტორის ჩამოტვირთვა შესაძლებელია უფასოდ. ქვემოთ აღწერილი ყველა მოქმედება მოქმედებს ამ რედაქტორისთვის.

ასე რომ, თქვენ გაქვთ დაინსტალირებული თექვსმეტობითი რედაქტორი. მოდით გავუშვათ იგი. დააწკაპუნეთ ღილაკზე OPEN, იპოვეთ ერთ-ერთი ჩვენ მიერ შექმნილი COM ფაილი, მაგალითად, debug_1.com და ჩატვირთეთ იგი რედაქტორში.

როდესაც ფაილი ჩაიტვირთება, რედაქტორში ნახავთ შემდეგს (იხ. აგრეთვე სურ. 1.12):

00000000 B4 02 B2 41 CD 21 CD 20 ...A.!. თქვენ შეგიძლიათ გახსნათ ჩვენ მიერ შექმნილი ორი სხვა ფაილი: mycode.com (შექმნილია emu8086-ში) ან ATEST.COM (რომელიც ჩვენ შევქმენით განყოფილებაში). თქვენც იგივეს ნახავთ. ეს ნიშნავს, რომ ყველა ასამბლეერი აწარმოებს იგივე მანქანის კოდს. ანუ პროგრამების ტექსტში განსხვავებები არ არის ფუნდამენტური - ისინი განპირობებულია მხოლოდ თავად ასამბლერებში არსებული განსხვავებებით.

შენიშვნა
თუ თქვენს შემთხვევაში ხედავთ სხვა სურათს, მაშინ ან გახსენით სხვა ფაილი, ან უყურებთ მას ტექსტურ რეჟიმში. ამ უკანასკნელ შემთხვევაში დააწკაპუნეთ ღილაკზე View as Hex ინსტრუმენტთა პანელზე (იხ. სურათი 1.12).

რას ნიშნავს ეს რიცხვები?

ყველაფერი ნათელია ნულებით - ეს არის მეხსიერების პირველი უჯრედი, რომელშიც ჩაწერილია ნომერი B4. შემდეგ ეს რიცხვი დაიწერება 0100h მისამართზე (COM ფაილისთვის). ხაზი უნდა შეიცავდეს 16 რიცხვს, რომელთაგან თითოეული შედგება ორი ციფრისგან. რიცხვები იწერება თექვსმეტობითი ფორმით. მაგრამ ჩვენი პროგრამა მცირეა - მხოლოდ 8 ბაიტი, ასე რომ, ჩვენ გვაქვს 8 ნომერი.

აბა, რა არის B4? ეს არის ბრძანება: "შეიყვანეთ მნიშვნელობა AN რეესტრში." რა მნიშვნელობას შევიყვანთ? სწორია: 02 (სტრიქონის შემდეგი ნომერი).

AX=0200 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0B72 IP=0102 NV UP NAB7 PL0: B241 MOV DL,41 იხილეთ B241 ბოლო სტრიქონში? ნაცნობ კომბინაციას ჰგავს? ეს არის MOV DL ბრძანების კოდი, 41.

რჩება მხოლოდ ხაზის ბოლოს იდუმალ გმირებთან გამკლავება. მაგრამ აქ ყველაფერი მარტივია: რიცხვში თითოეული ციფრი შეესაბამება ASCII ცხრილის სიმბოლოების კოდს და ეს სიმბოლოები გამოდის იმავე თანმიმდევრობით, როგორც თექვსმეტობითი ციფრები. ამ ტექსტში ზოგიერთი სიმბოლო ჩანაცვლებულია წერტილებით (.) - ეს არის უბრალოდ არაანბანური სიმბოლოების კოდები.

ახლა მოდით დავწეროთ და შევქმნათ ჩვენი საფუძვლიანად შესწავლილი პროგრამა ასამბლერებისა და ლინკერების გარეშე. გახსენით რედაქტორი, შექმენით ახალი ფაილი (ამისთვის დააწკაპუნეთ ღილაკზე NEW ინსტრუმენტთა პანელზე), შემდეგ დააჭირეთ ღილაკს View as Hex და შეიყვანეთ მონაცემები:

00000000 B4 02 B2 41 CD 21 CD 20 შეინახეთ ფაილი სახელით, მაგალითად, hex_1.com. ყველა. პროგრამა მზად არის. ახლა თქვენ შეგიძლიათ გაუშვათ იგი და კიდევ ერთხელ აღფრთოვანდეთ თქვენი შემოქმედებით. შედეგი იქნება იგივე, რაც ყველა წინა შემთხვევაში.

და კიდევ ერთი სასიამოვნო სიურპრიზი McAfee FileInsight v2.1 რედაქტორისგან - მას აქვს საკუთარი დემონტაჟი! თუ თქვენ ჩატვირთავთ შესრულებად ფაილს რედაქტორში და აირჩიეთ DISASSEMBLY ჩანართი ქვედა მარცხენა კუთხეში, შეგიძლიათ ნახოთ ჩატვირთული პროგრამის წყაროს კოდი ასამბლეის ენაზე (ნახ. 1.12).

რატომ გვჭირდება საერთოდ ექვსკუთხა რედაქტორები და დემონტაჟები? ძალიან რთულია. დიახ, ეს არ არის ადვილი. თუმცა ჰაკერები ასე არ ფიქრობენ. სწორედ ექვსკუთხა რედაქტორებისა და დემონტაჟების დახმარებით არღვევენ პროგრამებს. ისინი პოულობენ მათ საჭირო ადგილებს კოდში და აფიქსირებენ მათ ჰაკერული ახირებების შესაბამისად.

რა თქმა უნდა, ჩვენ არ ვართ ჰაკერები. ჩვენ არ ვარღვევთ პროგრამებს. თუმცა, დემონტაჟი და ექვსკუთხა რედაქტორები ძალიან სასარგებლოა კანონმორჩილი პროგრამისტებისთვის. ისინი გამოიყენება, მაგალითად, გამართვისთვის, მანქანების კოდების შესასწავლად და ა.შ. მაგალითად, თქვენ იცით, როგორ გამოიყურება ბრძანება ასამბლეის ენაზე, მაგრამ გსურთ იცოდეთ მისი მანქანის კოდი. თუ არ არსებობს დოკუმენტაცია, მაშინ გამოსავალი მხოლოდ ერთია - ექვსკუთხა რედაქტორი და/ან დემონტაჟი. ამასთან, გასათვალისწინებელია, რომ ყველა ბრძანება არ ჯდება ორნომრიან მანქანის კოდში. ზოგიერთი ბრძანება საკმაოდ რთულია და საჭიროებს მეტ რიცხვს, რათა გამოისახოს მანქანის კოდში.

HxD Hex Editor არის მონაცემთა რედაქტორი ANCI კოდირების მხარდაჭერით. აპლიკაცია იყენებს თექვსმეტობით გამოსახულებას ნებისმიერი გახსნილი ფაილისთვის, შეუძლია იმუშაოს RAM-ის ელემენტებთან და შეინახოს ცვლილებები მყარ დისკზე. საშუალებას გაძლევთ მოძებნოთ და შეცვალოთ მნიშვნელობები ავტომატურად ან ხელით. მოიცავს ინსტრუმენტებს მონაცემთა ექსპორტისთვის, შემოწმების ჯამების შესაქმნელად და კოდის ფრაგმენტების წაშლისთვის.

პროგრამას შეუძლია ფაილების დაყოფა საჭირო ზომის ნაწილებად და მხარს უჭერს დიდი რაოდენობით ინფორმაციის დამუშავებას. იყენებს მოდულურ ინტერფეისს სტანდარტული და თექვსმეტობითი კოდის ნახვის შესაძლებლობით. საშუალებას გაძლევთ გააუქმოთ ნებისმიერი ცვლილება, შეიცავს სანავიგაციო ინსტრუმენტებს კონტექსტის და ხაზის მისამართის მიხედვით.

HEX რედაქტორს შეუძლია ნებისმიერი ტიპის ფაილთან ურთიერთობა და მისი გამოყენება შესაძლებელია მიმდინარე პროცესების შესრულებადი მნიშვნელობების მოსაძიებლად და ჩანაცვლებისთვის.

ჩამოტვირთეთ HxD Hex Editor-ის სრული რუსული ვერსია უფასოდ ოფიციალური ვებ-გვერდიდან რეგისტრაციისა და SMS-ის გარეშე.

სისტემური მოთხოვნები

  • მხარდაჭერილი ოპერაციული სისტემა: Windows 8.1, Vista, 10, 8, 7, XP
  • ბიტის სიღრმე: 64 ბიტი, x86, 32 ბიტი

ამ სტატიაში საუბარი იქნება უფასო hex რედაქტორში Free Hex Editor Neo-ში მუშაობის შესახებ, ფაილის რედაქტირების მაგალითის გამოყენებით. BkEnd.dllმიწოდებიდან ამ სისტემის სწორი მუშაობისთვის.

1. ცოტა თექვსმეტი რედაქტორებისა და ფაილების შესახებ

მოგეხსენებათ, კომპიუტერის მყარ დისკზე შენახული ნებისმიერი ფაილი არის მანქანური სიტყვების თანმიმდევრობა - ბაიტი. ბაიტი, თავის მხრივ, შედგება 8 ბიტისაგან, რომელთაგან თითოეულს შეუძლია მიიღოს მნიშვნელობა "0" ან "1", რაც ნიშნავს, რომ ერთ ბაიტს შეუძლია მიიღოს 2 8 = 256 მნიშვნელობა 0-დან 255-მდე დიაპაზონში. არის 256 10. თექვსმეტობით სისტემაში დაწერილი, არის მრგვალი სამნიშნა რიცხვი - 100 16, ანუ 0-255 დიაპაზონის ნებისმიერი რიცხვის წარმოსადგენად საჭირო იქნება არაუმეტეს 2 ციფრი. ეს ნიშნავს, რომ ძალიან მოსახერხებელია თექვსმეტობითი რიცხვების სისტემაში თითოეული ბაიტის მნიშვნელობის ორნიშნა რიცხვის ჩაწერა.

Hex-რედაქტორი გვიჩვენებს ფაილს ისე, როგორც მას მანქანა „ხედავს“, კერძოდ, როგორც ბაიტების თანმიმდევრობა. მაგალითად, რედაქტორში ფაილის გახსნისას, ჩვენ დავინახავთ მატრიცას, რომელიც შედგება 16 სვეტისგან და სტრიქონების რაოდენობას ფაილის ზომაზე დაყრდნობით. თითოეული მატრიცის მნიშვნელობა შეესაბამება ერთ ბაიტს, რომელიც იწერება ორნიშნა თექვსმეტობით რიცხვში. სასურველი ბაიტის მნიშვნელობის შეცვლით, ჩვენ შეგვიძლია, შესაბამისად შევცვალოთ თავად ფაილი.

გარდა ამისა, ცხრილის გვერდით ვხედავთ:

  • მატრიცის მარცხნივ ნაჩვენებია რიცხვების ხაზი: თითოეული ხაზი შეესაბამება რიცხვს, რომელიც მიუთითებს ამ ხაზის პირველი ბაიტის მისამართს/ოფსეტზე. მისამართის ნაბიჯი უდრის სვეტების რაოდენობას.
  • მატრიცის ზედა ნაწილში ნაჩვენებია კიდევ ერთი მმართველი: თითოეული სვეტის ზემოთ ნაჩვენებია ამ სვეტის ბაიტის ოფსეტი შესაბამისი ხაზის პირველ ბაიტთან შედარებით. i-ე მწკრივის და j-ე სვეტის შესაბამისი რიცხვის ჯამი არის აღებული მწკრივისა და აღებული სვეტის კვეთაზე მდებარე ბაიტის (i;j) მისამართი/ოფსეტი.
  • მატრიცის მარჯვნივ არის იგივე მონაცემები, მაგრამ განსხვავებული ინტერპრეტაციით. ყველაზე გავრცელებული ალტერნატივა არის მონაცემების ჩვენება ASCII ტექსტის სახით, ბაიტებით, რომელთა მნიშვნელობები შეესაბამება არასაბეჭდად სიმბოლოებს, რომლებიც ნაჩვენებია წერტილების სახით (·). თქვენ ასევე შეგიძლიათ შეცვალოთ მნიშვნელობები ამ სფეროში.

2. დააინსტალირეთ უფასო Hex Editor Neo

მაგალითად, მე მჭირდება ბაიტი ოფსეტურით 000d9ccaდაწერე ღირებულება ებ. ამისათვის მე ვპოულობ მწკრივს "000d9cco" და სვეტს "0a", ორჯერ დააწკაპუნეთ სასურველ უჯრედზე და შეიტანეთ ახალი მნიშვნელობა.

ანალოგიურად, მე ვაკეთებ შემდეგ ცვლილებებს:

  1. შეცდომის გამოსასწორებლად" მოითხოვს MS SQL Server 6.5 + Service Pack 5a ან უფრო მაღალი!»შეცვალეთ ველები:
    ოფსეტურით 000d9ccaმნიშვნელობა 83 შეცვლა ებ
    ოფსეტურით 000d9ccbმნიშვნელობა e8შეცვლა 15
    ოფსეტურით 000db130მნიშვნელობა 83 შეცვლა ებ
    ოფსეტურით 000 დბ131მნიშვნელობა e8შეცვლა 10
  2. შეცდომის გამოსასწორებლად" მონაცემთა ბაზისთვის დალაგების თანმიმდევრობა განსხვავდება სისტემურისგან!»:
    ოფსეტურით 0018a79dმნიშვნელობა 75 შეცვლა ებ
  3. შეცდომის გამოსასწორებლად" არასწორი სინტაქსი საკვანძო სიტყვასთან „TRANSACTION“»
    ფრაზა DUMP TRANSACTION %s WITH TRUNCATE_ONLY, რომელიც მდებარეობს ოფსეტზე 002856B0შეცვალოს ფრაზით მონაცემთა ბაზის შეცვლა %s აღდგენის დაყენება მარტივია
  4. შეცდომის გამოსასწორებლად" მონაცემთა ბაზის გახსნა შეუძლებელია ერთი მომხმარებლის რეჟიმში", შეცვალეთ ველები:
    ოფსეტურით 0028549cმნიშვნელობა 64 შეცვლა 6ბ
    ოფსეტურით 0028549dმნიშვნელობა 62 შეცვლა 70

ყველა ცვლილების განხორციელების შემდეგ, შეინახეთ ფაილი დაწკაპუნებით " ფაილი» — « შენახვა» .

ეს სტატია დაგეხმარა?



რაიმე შეკითხვა?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: