Ja se si

Assembler – Ndërrimi i strukturës dhe enkriptimi i programeve .COM

Sep 1 2008
0 Shpërndarje
Assembler – Ndërrimi i strukturës dhe enkriptimi  i programeve  .COM

Struktura e dokumenteve .COM është e thjeshtë dhe për këtë, në këtë artikull, do tëmerremi me programet e këtij lloji, që zakonisht
të bazuar në DOS. Nga ana tjetër, dokumentet të tipit EXE, janë zakonisht programe më të mëdha dhe që kanë strukturë të komplikuar. Një shembull tipik i programit .COM është COMMAND.COM, vetë thelbi i DOS.

Në sistemet operative DOS dhe Windows (të gjitha llojet e DOS dhe Windows), janë dy lloje të dokumentesh që sistemi operativ i njeh si programe. Këto janë dokumentet me ekstencionin . COM (command) (http:// en.wikipedia.org/wiki/COM_ file) dhe .EXE (executable) (http://en.wikipedia.org/wiki/ Exe_file). Këto dy lloje dokumentesh në vete përmbajnë kodin e programitnë gjuhën e procesorit (Assembler). Struktura e dokumenteve .COM është e thjeshtë dhe për këtë, në këtë artikull, do të merremi me programet e këtij lloji, që zakonisht të bazuar në DOS. Nga ana tjetër, dokumentet të tipit EXE, janë zakonisht programe më të mëdha dhe që kanë strukturë të komplikuar.

Një shembull tipik i programit .COM ështëCOMMAND.COM, vetë thelbi i DOS. Me startimin e programit .COM, sistemi operativ bën leximin komplet të tij dhe e vendos në memorien punuese (RAM), ku menjëherë bëhet ekzekutimi i tij. Para shumë kohësh kam shkruar një program të vogël që mu duk se mund të jetë në interesin e programuesve të rinj. Programi që do të shqyrtojmë në vijim bën ndërrimin e strukturës dhe njëkohësisht inkriptimin e vet programit por pa ia humbur funksionalitetin.

 

Të shohim tani se si bëhet e gjithë kjo

Së pari programi bën leximin e katër bajteve të para dhe i “mban në mend”. Në vazhdim programi bën kriptimine gjithë programit të vjetër dhe atë me komandën XOR (^ në gjuhën C), ndërrimi i biteve dhe pastaj me komandën ROR (Rotate Right), bën zhvendosjen e biteve djathtas. Kjo bën inkriptimin të dyfishtë të çdo bajti. Tani, në fillim të programit, 4 bajtet e para, vendoset komanda JMP, që bën kërcimin e ekzekutimit të programit në fund të programit të vjetër, në të cilin vendosim kodin për dekriptimin e programit dhe kthimin e programit në gjendjen origjinale. Pasi bëhet dekriptimi i programit, duhet të vendosim edhe kodin për kthimin e katër bajteve që i kemi “mbajtur në mend”. Në fund e bëjmë edhe një JMP, që bën kërcimin në fillim të programit origjinal. Nëse posedoni ndonjë program DEBUG, programin e kriptuar mundeni ta analizoni dhe të lëshoni ekzekutimin e tij hap pas hapi. Këtë metodë e përdorin të gjitha viruset, por diku në mes të programit që “implantohet”, vendoset kodi TSR (Terminate and Stay Resident) i cili i mundëson virusit të jetë aktiv në memorien e sistemit operativ, ose të kyçet (Hook) në ndonjë nga Interruptet e vetë sistemit operativ. P.sh, mund të kyçet në Interruptin e mausit dhe në çdo aktivitet të mousit, virusi reagon sipas qejfit : -). Programet e koduara nga ky aplikacion te disa antiviruse që bëjnë një skanim Heuristic (skanim i thellë) mund të detektohen dhe të paraqiten si “possible new virus”. Me shpresë që ky artikull të jetë edukativ e jo si bazë i krijimit të viruseve të reja.

Lajmet e fundit>