Dažreiz CODE.EXE un citas EXE sistēmas kļūdas var būt saistītas ar Windows reģistra problēmām. Vairākas programmas var izmantot failu CODE.EXE, taču, kad šīs programmas tiek atinstalētas vai modificētas, dažkārt tiek atstāti "bāreņu" (nepareizi) EXE reģistra ieraksti.

Būtībā tas nozīmē, ka, lai gan faila faktiskais ceļš var būt mainījies, tā nepareizā iepriekšējā atrašanās vieta joprojām tiek ierakstīta Windows reģistrā. Kad Windows mēģina uzmeklēt šīs nepareizās failu atsauces (failu atrašanās vietas datorā), var rasties CODE.EXE kļūdas. Turklāt ļaunprātīgas programmatūras infekcija, iespējams, ir sabojājusi reģistra ierakstus, kas saistīti ar Game Cracker. Tādējādi šie bojātie EXE reģistra ieraksti ir jālabo, lai problēmu novērstu saknē.

Nav ieteicams manuāli rediģēt Windows reģistru, lai noņemtu nederīgās CODE.EXE atslēgas, ja vien neesat datoru pakalpojumu profesionālis. Reģistra rediģēšanas laikā pieļautās kļūdas var padarīt jūsu datoru nederīgu un radīt neatgriezeniskus bojājumus operētājsistēmai. Patiesībā pat viens nepareizā vietā ievietots komats var novērst datora sāknēšanu!

Šī riska dēļ mēs ļoti iesakām izmantot uzticamu reģistra tīrītāju, piemēram, %%product%% (izstrādājis Microsoft Gold Certified Partner), lai skenētu un labotu visas ar CODE.EXE saistītās reģistra problēmas. Izmantojot reģistra tīrītāju, jūs varat automatizēt bojātu reģistra ierakstu, trūkstošo failu atsauču (piemēram, to, kas izraisa kļūdu CODE.EXE) un bojāto saišu atrašanu reģistrā. Pirms katras skenēšanas tiek automātiski izveidota rezerves kopija, kas ļauj atsaukt visas izmaiņas ar vienu klikšķi un pasargā jūs no iespējamiem datora bojājumiem. Labākā daļa ir tāda, ka reģistra kļūdu novēršana var ievērojami uzlabot sistēmas ātrumu un veiktspēju.


Brīdinājums: Ja vien neesat pieredzējis datoru lietotājs, NEIESAKAM manuāli rediģēt Windows reģistru. Nepareiza reģistra redaktora izmantošana var izraisīt nopietnas problēmas, kuru dēļ jums var būt jāpārinstalē sistēma Windows. Mēs negarantējam, ka problēmas, kas radušās nepareizas reģistra redaktora lietošanas dēļ, var tikt labotas. Jūs izmantojat reģistra redaktoru uz savu risku.

Pirms manuāli labojat Windows reģistru, jums ir jāizveido dublējums, eksportējot reģistra daļu, kas saistīta ar CODE.EXE (piemēram, Game Cracker):

  1. Noklikšķiniet uz pogas Sāciet.
  2. Ievadiet " komandu"V meklēšanas josla... VĒL NEKLIKŠĶINIET ENTER!
  3. Turot nospiestus taustiņus CTRL-Shift uz tastatūras, nospiediet ENTER.
  4. Tiks parādīts piekļuves dialoglodziņš.
  5. Klikšķis .
  6. Melnā kaste tiek atvērta ar mirgojošu kursoru.
  7. Ievadiet " regedit"un nospiediet ENTER.
  8. Reģistra redaktorā atlasiet ar CODE.EXE saistīto atslēgu (piem., Game Cracker), kuru vēlaties dublēt.
  9. Izvēlnē Fails atlasiet Eksportēt.
  10. Sarakstā Saglabāt atlasiet mapi, kurā vēlaties saglabāt Game Cracker atslēgas dublējumu.
  11. Laukā Faila nosaukums Ievadiet dublējuma faila nosaukumu, piemēram, "Game Cracker dublējums".
  12. Pārliecinieties, ka lauks Eksporta diapazons atlasītā vērtība Izvēlētā filiāle.
  13. Klikšķis Saglabāt.
  14. Fails tiks saglabāts ar paplašinājumu .reg.
  15. Tagad jums ir ar CODE.EXE saistītā reģistra ieraksta dublējums.

Tālāk norādītās darbības manuālai reģistra rediģēšanai šajā rakstā netiks aprakstītas, jo tās var sabojāt sistēmu. Ja vēlaties iegūt plašāku informāciju par reģistra manuālu rediģēšanu, lūdzu, skatiet tālāk esošās saites.

Ar palīdzību Resursu skaņotājs varat atvērt izpildāmos failus, piemēram, .EXE, .DLL, .OCX, ekrānsaudzētājus (.SCR) un daudzus citus. Atverot failu, jūs iegūstat piekļuvi faila resursiem un varat aizstāt ikonas, kursorus un grafiku dažādos formātos, mainīt rindas izvēlnēs, dialoglodziņos un citos lietotāja interfeisa elementos.

Tomēr ir vērts paturēt prātā, ka izpildāmā faila resursi ir atsevišķi no programmas koda, un, mainot programmas saskarni, jūs neiegūstat piekļuvi programmas kodam. Izmantojot resursu redaktoru, varat mainīt programmas vadīklas. Programmas kodu nevar mainīt, izmantojot resursu redaktoru.

Nopietnākām izmaiņām (kas tomēr ne pie kā laba nenovedīs bez pietiekamas pieredzes Windows lietojumprogrammu programmēšanā), iesakām izmantot PE Explorer (PE failu struktūras redaktors) vai FlexHex (bināro failu hex redaktors).

EXE vai DLL faila atvēršana programmā Resource Tuner

Atbalsta vairākus veidus, kā atvērt failus. Lai atvērtu failu apskatei un rediģēšanai, noklikšķiniet uz pogas Atver failu rīkjoslā vai atlasiet komandu Fails > Atvērt no izvēlnes. Nolaižamajā izvēlnē blakus pogai rīkjoslā varat ātri piekļūt nesen atvērto failu sarakstam. To pašu sarakstu var iegūt ar komandu Fails > Jaunākie faili no programmas izvēlnes. Failu skaits sarakstā tiek konfigurēts dialoglodziņā Pielāgot.


Varat arī atvērt failu, izmantojot Resource Tuner tieši no Windows Explorer, ar peles labo pogu noklikšķinot uz faila un atlasot Atveriet ar Resource Tuner no konteksta izvēlnes.

Vai arī varat vienkārši vilkt un nomest faila ikonu no Windows Explorer uz Resource Tuner ikonu darbvirsmā vai uz palaist Resource Tuner logu.

Failu var atvērt arī no komandrindas.
Piemēram: restuner.exe faila nosaukums.exe

Atverot failu, Resource Tuner veic vairākas automātiskas darbības: izpako failu, ja tiek konstatēts, ka tas ir iepakots, izmantojot UPX, pēc tam pārbauda faila struktūru un resursus, vai nav iespējamas kļūdas, un visbeidzot atjauno bojātos resursus atbilstoši izpildāmajam failam. formāta specifikācija.

Kļūdas, atverot failu

Ja, atverot failu, rodas kļūda, visticamāk, tas ir trīs iemeslu dēļ: fails ir aizsargāts, fails ir 16 bitu vai tas vispār nav izpildāms fails.

1. Kļūda: fails ir bojāts, saspiests ar iepakotāju vai aizsargāts ar aizsargu.

Pastāv ļoti liela iespēja, ka fails ir saspiests, lai samazinātu tā lielumu. Izpildāmajiem failiem ir desmitiem pakotņu un aizsargu, un visu laiku parādās jauni. Resursu skaņotājs atbalsta tikai viena, bet visizplatītākā pakotāja - UPX - izsaiņošanu. Citi iepakotāji netiek atbalstīti, un jums pašam ir jāizpako fails, lai to varētu atvērt skatīšanai vai rediģēšanai.

Šī situācija netiek uzskatīta par programmas kļūdu. Mēs negrasāmies cīnīties ar citu programmu autoru mēģinājumiem aizsargāt savus darbus no uzlaušanas, kā arī neatbalstīsim vairāku desmitu dažādu iepakotāju izsaiņošanu, tostarp gan komerciālo, gan paštaisītu produktu.

2. Kļūda: fails ir definēts kā 16 bitu NE izpildāms. Šis formāts netiek atbalstīts!

Mūsu programmas darbojas tikai ar 32 un 64 bitu PE failiem. NE formāts (saīsinājums no "New Executable") ir 16 bitu lietojumprogrammas formāts, kas palicis no vecākām Windows 3.xx versijām. Līdz ar Windows 95 parādīšanos šis formāts tiek uzskatīts par novecojušu un netiek izmantots, lai gan to var izpildīt mūsdienu Microsoft platformās. Mēs neatbalstām 16 bitu failus un neplānojam tos atbalstīt.

3. Kļūda: fails nav EXE vai DLL fails. Pavisam!

Resursu uztvērējs neatklāj failu pēc paplašinājuma. Ja pārdēvējat izpildāmā faila paplašinājumu, teiksim, labojat .EXE uz .TXT vai noņemat paplašinājumu pavisam, Resource Tuner netiks maldināts: atverot failu, programma analizē faila galveni failā un uz pagarinājumu vispār neskatās.

Tāpēc, ja Resource Tuner norāda, ka fails nav izpildāms, tas tā ir. Ja kāds spēles pakotnes teksta failam kāda iemesla dēļ ir pievienojis paplašinājumu .DLL, fails nepārstāj būt teksts un nekļūst par dinamisku bibliotēku. Neļaujiet sevi apmānīt ar faila paplašinājumu.

Kurus failus nav jēgas atvērt resursu redaktorā?

Neskatoties uz to, ka Resource Tuner ir paredzēts jebkuru 32/64 bitu izpildāmo failu atvēršanai un rediģēšanai, ir daži EXE failu veidi, kuriem praktiski nav resursu.

1. Faili, kas izveidoti, izmantojot Visual Basic.

Šādos failos resursu sadaļā nav nekā cita, izņemot ikonu un informāciju par versiju. Līnijas un dialogi programmās, kas rakstītas programmā Visual BASIC, tiek glabātas savā patentētajā formātā, un tās neizmanto standarta resursu sadaļu.

2. EXE faili, kuru izmērs ir gigabaiti vai vairāk.

Tā kā Resource Tuner ir 32 bitu programma, ir dabiski ierobežojumi atvērtā faila attēla ievietošanai virtuālajā atmiņā pirmajā gigabaitā. Gigabaita vai lielāka fails tur vienkārši neiederēsies.

3. Pašizvilkšanas arhīvi EXE failu veidā.

Šādos failos resursos nav nekā cita, izņemot ikonu un informāciju par versiju, un varbūt pat to. Būtībā tie ir arhivēti dati, kas aprīkoti ar izpakošanas apakšprogrammu.

4. Citu programmu instalētāji.

Šādos failos resursos nav nekā cita, izņemot ikonu un informāciju par versiju. Ļoti līdzīgs 3. punktam. Instalēšanas failu var uzskatīt par konteineru, kurā ir cits .EXE fails saspiestā formā un tā izvilkšanas rutīna. Turklāt instalētāju izveides programmas izmanto dažādus algoritmus arhivēto datu glabāšanai sevī.

Lejupielādējiet savu bezmaksas izmēģinājuma versiju!


Resursu uztvērējs darbojas visas Windows versijas
no 2000 un XP līdz 8 un 10.

Minimālās sistēmas prasības:
Intel Pentium® vai AMD K5 166 MHz procesors
16 MB RAM

Nav iespējams izpaust avota kodu, ja viņi ir mēģinājuši nodrošināt drošību (it īpaši, ja tas ir patentēts vienums).

Bet ir veidi, kā pilnībā vai daļēji atklāt kodu.

  • IDA Pro ir labākais bezmaksas krekers, daži makro var ļaut konvertēt kodu atpakaļ. Bet ne vienmēr. Borland produkti ir īpaši labi.
  • Hiew.Exe ir ļoti maza bezmaksas utilīta, kas ļauj rediģēt montāžas valodas kodu. Varat rediģēt tekstu un veselu skaitļu konstantes. Jūs pat varat to izmantot, lai "tulkotu" programmu citā valodā, izdzēstu uzņēmuma nosaukumu utt.
  • Ja ir PDB fails vai failam ir pievienota atkļūdošanas informācija, tad kodu var iegūt izstrādes vidē (ja debug-info ir pabeigta), to var izmantot reti. Nav iespējams iegūt avota kodu, taču jūs varat iegūt "rindu numurus un avotu nosaukumus", kā arī visu konstantu nosaukumus/vērtības, lokālos mainīgos, izvairīties no "funkciju sadrumstalotības", kā arī iegūt klases ar klases aizpildījumu. (gandrīz visas struktūras, izņemot programmas tekstu), kas ievērojami vienkāršos jūsu izpratni par programmas darbību. Dažām bibliotēkām (dll) pdb failus var lejupielādēt atsevišķi. Maz ticams, ka sevi cienošs uzņēmums pieļaus sava vērtīgā produkta PBP noplūdi.
  • Atkļūdošanas informācija, exe ir iebūvēta DebugInfo informācija. Ja ir šāda informācija un atbilstošā lietderība (Piemēram, Delphi ir apkopots Borlandā, un tas ir pieejams), tad varat darīt kaut ko līdzīgu iepriekšējā punktā. Bet diez vai sevi cienošs uzņēmums pieļaus tik “stulbu” kļūdu (līdzīgi kā pdb).
  • Ja fails ir rakstīts C#, to gandrīz pilnībā var apskatīt kodā, izmantojot disSharp (šādās programmās importēšanas tabulā "ietver" tikai mscorlib, un tas arī viss). DisSharp slikti izjauc dažas programmas daļas, taču, iespējams, tā maksas versija vai līdzīgu utilītu maksas versijas labāk atklāj kodu.
  • Ja fails ir rakstīts FoxPro, clipper un citās līdzīgās baitu koda valodās, to atver īpašas utilītas (piemēram, Refox).
  • Exescope.exe utilīta ResourceHacker.exe un līdzīgas utilītas ļauj skatīt galveni, pievienotās bibliotēkas (izmantojot tās, varat saprast kādā programmā ir rakstīta) un rediģēt programmas resursus (resursu formas, tostarp Delphi, ikonas, attēlus, resursu virkņu tabulas).
  • Ja ir zināms, kā kods tika izveidots, manuprāt, ir speciāli utilīti, kas to var atvērt (tās ir maksas un nepieejamas).

Atkal, tas ir ar nosacījumu, ka nav koda pakotnes (tad vispirms jāpielieto depakotājs), šifrētāja/pašmodificējošā koda. Ja to nesalauž obfuskators, to nevar atšķetināt. Jo lielāks kods, jo grūtāk to saprast.

P.S. Mans personīgais viedoklis ir tāds, ka viss tiek atklāts un uzlauzts, bet tas aizņem daudz, daudz laika. Varbūt gadu vai vairāk (atkarībā no pieredzes un rīkiem, labu rīku nav brīvi pieejami).

*** VISS RAKSTĪTAIS JĀIZMANTO TIKAI IZGLĪTOSNIEM NOLŪKĀM! ***

-Rīki-
OLLYDBG
Lietojumprogramma, kurā ievietosim savu kodu.
Tas būs NOTEPAD.EXE.
Ieteicams izveidot faila kopiju.
Tas ir viss

-Sākt-
Mūsu mērķis ir ielīmēt mūsu kodu Notepad.EXE.
Mēs ielīmēsim vienkāršu MessageBox palaišanai Notepad.
Sāksim palaist Piezīmju grāmatiņa, un pārliecinieties, vai tas sākas normāli.

Ja esat pārliecināts, ka tas ir oriģināls Notepad.exe, atveriet to Olly.
Parādīsies šāds logs:

Lai ievietotu mūsu kodu, mums ir nepieciešama vieta programmas kodā.
Exe failos ir daudz lietu CodeCaves. Tie ir baiti ( DB 00).
Jums tikai nepieciešams ritināt programmas kodu nedaudz zem sākuma un jūs redzēsiet CodeCave:


Sarkanais taisnstūris izceļ gabalu ar CodeCave"ami?
Šeit varat ievietot jebkuru kodu, un jūsu programma netiks avarējusi.
Ja zināt API funkciju, lai izsauktu MessageBox vienkārši izlaidiet šīs rindas.

***** SĀC CITĀTU NO WIN32 PROGRAMĒTĀJA ROKASGRĀMATAS

Funkcija MessageBox izveido, parāda un pārvalda ziņojumu lodziņu.
Ziņojuma lodziņā ir lietojumprogrammas definēts ziņojums un nosaukums,
plus jebkura iepriekš definētu ikonu un spiedpogu kombinācija.

Int MessageBox(
HWND hWnd, // īpašnieka loga rokturis
LPCTSTR lpText, // teksta adrese ziņojuma lodziņā
LPCTSTR lpCaption, // ziņojuma lodziņa virsraksta adrese
UINT uType // ziņojuma lodziņa stils
);

***** BEIGAS CITĀTS NO WIN32 PROGRAMĒTĀJA ROKASGRĀMATAS

Noklikšķiniet, lai izvērstu...

Tas ir viss, kas jums jāzina MessageBox.
Darīsim kaut ko ar CodeCaves.
Lai lietotu MessageBox, mums ir jāizveido teksts, kurā tiks parādīts
MessageBox. Nākamajā attēlā esmu izcēlis pāris rindiņas ar CodeCaves Un
parādīja ēdienkarti BinaryEdit jums (mums tas būs vajadzīgs).


Ja jūs nospiedāt Binārais => Rediģēt vai (CTRL+E), jūs redzēsit šādu logu.
Vienkārši aizpildiet augšējo lauku tāpat kā es.
Noklikšķiniet uz Labi, un jūs redzēsit modificēto kodu (izcelts sarkanā krāsā):
Tagad nospiediet CTRL+A, lai atkārtoti analizētu kodu.
LABI! Tagad, ja vēlaties, lai ziņojuma nosaukums būtu atšķirīgs, dublējiet šo rindiņu
(tas ir kā procedūras izsaukuma otrais parametrs).

-Mazliet montētāja-

Ir pienācis laiks A.S.M. A
Lūk, labs piemērs!

PUSH 0 ; POGAS =<ТОЛЬКО КНОПКА OK>
PUSH 1008751 ; APRAKSTS = MŪSU ADRESE "INJICĒTA PIEZĪMES PUNKTS"
PUSH 1008751 ; ZIŅOJUMS = TAS PATS.
PUSH 0 ; IKONA =<БЕЗ ИКОНКИ>
ZVANIET MessageBoxA; Zvaniet uz MessageBoxA ar norādītajiem parametriem.

Noklikšķiniet, lai izvērstu...

Šīs rindas tika ievadītas Ollija izskatīsies šādi:

Tu redzi bultu?! TAS IR ĻOTI SVARĪGI!
Galu galā, ja mēs vienkārši palaižam programmu, nekas nenotiks. Kāpēc?
Jo mūsu mazā procedūra vēl nekur nav izsaukta!
Jāpieraksta tā sākuma adrese, t.i. adrese " SPIEDIET 0", jo mums ir jāveic lēciens
uz mūsu procedūru un atgriezieties
Lieliski. Tagad dodieties atpakaļ uz programmas sākumu ( poga C rīkjoslā Ollija vai kā attēlā).

Tagad mēs esam pašā pirmajā rindā, kas tiks izpildīta.
Vai joprojām atceraties, ka mūsu mērķis ir ievietot jūsu kodu?
Tad turpināsim!
No sākuma atlasiet pāris rindiņas un kopējiet tās starpliktuvē.


Ielīmējiet tos jebkurā teksta reaktorā - tie mums noderēs vēlāk.
Atkal atgriezieties programmas sākumā.
(Attēls augšā ir SPIEDIET 70).
Veicot dubultklikšķi uz šīs rindas, tiks parādīts šāds logs.
Jums jāievada " JMP<адрес PUSH 0, который мы записывали ранее> "
Noklikšķiniet uz pogas Assemble, un programmas kods atkal mainīsies, t.i. izmaiņas tiks iezīmētas sarkanā krāsā.

Paskaties uz sarkano taisnstūri! Šī ir adrese, uz kuru mums ir jāpāriet, kad kods ir pabeigts.
Bet, ja pēc injekcijas lēksim šeit, programma darbosies it kā bez tās
Tātad ir vēl viena lieta, kas jādara!
Salīdziniet programmas jauno sākumu ar veco, ko mēs iekopējām teksta redaktorā.
Jūs redzēsiet, ka divas rindiņas ir pārrakstītas! Bet mums tie ir nepieciešami normālai darbībai.
programmas bez kļūdām. Atrodiet pārrakstītās rindas.
Manā gadījumā tas bija šāds kods:

SPIEDIET 70
SPIEDIET PAZIŅOJUMU.01001898

Noklikšķiniet, lai izvērstu...

Noklikšķiniet uz pirmās koda rindas (mūsu JMP) un nospiediet ENTER.
Jūs tiksit novirzīts uz ievietoto MessageBox izsaukšanas kodu!
Pēc ZVANIET MessageBoxA mums vajadzēs ievietot šīs divas rindiņas UN lēkt atpakaļ!


TAS IR VISS!
(Ir viegli pārbaudīt, vai lēciens darbojas pareizi - noklikšķiniet uz tā ENTER!)
Lai saglabātu mūsu “modificēto” piezīmju grāmatiņu, rīkojieties, kā parādīts attēlā:
Pēc tam nospiediet Kopēt visu. Parādītajā logā ir jānoklikšķina ar peles labo pogu
atlasiet izvēlnes vienumu Saglabāt failu un saglabāt ar jaunu nosaukumu. Palaidiet failu:

Pievienoto funkciju nevajadzētu izsaukt tieši, kā rakstīts rakstā, bet gan nedaudz savādāk.

Pirmkārt, pēc procedūras pievienošanas importam, jums tā ir jāzina FT (FirstThunk "IAT"). Tas tiek parādīts šeit:

Atceries to!(Es viņam piezvanīšu TrueAddress)​


Tagad pāriesim uz vietu, kur rakstīsim savu kodu ( Kodu alas).
Tagad pievienosim mūsu funkcijai pareizo zvanu MessageBoxA. Lai to izdarītu, mēs rakstām:

JMP [[B]TrueAddress]

Ja Olly automātiski identificēja jauno kodu kā procedūras izsaukumu - tas ir ļoti, ļoti labi! Tātad turpmāk būs vieglāk. Ja nē, tad jūs nepareizi aprēķinājāt importēšanas adresi. Pārbaudi vēlreiz!
Pierakstiet šīs vietas adresi JMP(Es viņam piezvanīšu TrueCall).

Tagad mēs darām visu, kā norādīts rakstā (ievietojot rindiņas, PUSH utt.), Bet tā vietā:

Zvaniet uz MessageBoxA

tev jāraksta:

Zvaniet[B]TrueCall

Pārējais paliek nemainīgs.

Noklikšķiniet, lai izvērstu...