. ├── data │ ├── passwordStealer.js │ └── passwordStealerResults.js ├── doc │ └── main.md ├── lib │ └── main.js ├── package.json ├── README.md └── test └── test-main.js 4 directories, 7 filesДобавката закача свой собствен манипулатор (handler), който се задейства, когато потребителят напише потребителското си име и парола във логин формата на https://www.facebook.com/ и на всички форми по този домейн, където има поле за записване на парола. Този манипулатор изпраща данните към друг модул на добавката, който от своя страна го записва във simple-storage-а на браузъра (simple-storage е просто хранилище, където може да пазим информация във браузъра между рестартите). Това е кодът, който извършва взимането на написаните от потребителя данни. Намира се в passwordStealer.js файла. Този код се задейства преди формата да бъде изпратена към фейсбук. Взима стойностите на полетата и чрез self.port.emit('getPassword', stolenPasswordAndEmailString); подава взетите данни към основния модул на добавката. В основния модул – main.js, когато се случи събитието getPassword, манипулаторът, задачен за него взима подадените данни и ги записва в simple-storage. Този манипулатор може да бъде видян в main.js. След това можем да достъпваме тези данни по различен начин. Можем да ги запишем в текстови файл, който по-късно да може да бъде отворен, можем да ги изпратим на имейл и пр., но целта ни в случая е проста демонстрация за това ще покажем данните само на страница, която потребителят не знае. В случая аз избирам това да е този url http://get.bg/index.html?gnaa=true. Както може да бъде видяно на screenshot-a, показан по-долу той връща грешка.
Отворен, обаче през Mozilla FireFox на която е инсталирана добавката може да бъде видян списък със записаните потребителски имена и пароли.
Когато засече този url добавката променя страницата и добавя таблицата и бутона Clear saved info. При натискане на този бутон се изчистват всички запаметени потребителски имена и пароли. Кодът, който засича този url може да бъде видян в main.js файла. Както се вижда ние викаме passwordStealerResults.js като на onAttach събитието му подаваме всички записани пароли. Освен това осигуряваме обработка на clearSavedInfo събитието, при което ще изчистваме записаните данни. Във passwordStealerResults.js сглобяваме таблица със записаните данни и създаваме бутон, причиняващ clerSavedInfo събитието. Описаното до тук е нужно да се билдне със cfx инструмента от командния ред на FireFox add-on SDK. Инструментът cfx ни дава възможност да разработваме, тестваме и експортваме към готова браузърна добавка. Най-крато с него се работи по следния начин. Описанието е как се работи под Linux, но под Windows всичко е почти същото.
-
От командния ред отиваме до мястото където сме разпакетирали архива на FireFox add-on SDK-то и пишем следната команда:
source bin/activate.
Като резултат получаваме следното:georgi@sepulcher:~/Documents/addon-sdk-1.14$ source bin/activate Welcome to the Add-on SDK. Run 'cfx docs' for assistance.
-
Създаваме директория с името името на бъдещата добавка. (addon-sdk-1.14)georgi@sepulcher:~/Documents/addon-sdk-1.14$ mkdir passwordStealer
-
Отиваме в директорията и изпълнявме командата cfx init. Това създава скелета на бъдещата добавка:
(addon-sdk-1.14)georgi@sepulcher:~/Documents/addon-sdk-1.14$ cd passwordStealer (addon-sdk-1.14)georgi@sepulcher:~/Documents/addon-sdk-1.14/passwordStealer$ cfx init * lib directory created * data directory created * test directory created * doc directory created * README.md written * generated jID automatically: jid1-2lQn4A7yK6W9BA * package.json written * test/test-main.js written * lib/main.js written * doc/main.md written Your sample add-on is now ready. Do "cfx test" to test it and "cfx run" to try it. Have fun! (addon-sdk-1.14)georgi@sepulcher:~/Documents/addon-sdk-1.14/passwordStealer$
- Инструментът cfx ни предлага приятната възможност да тестваме добавката в отделна инстанция на FireFox, където е инсталирана само тя. За да ползваме тази възможност просто трябва да изпълним cfx run. По-долу прилагам изображение на резултата от командата.
-
След като приключим с разработката и тестовете изпълняваме cfx xpi командата, чрез която инструмента ни създава добавката, пакетирана за инсталиране в браузер.
(addon-sdk-1.14)georgi@sepulcher:~/Documents/addon-sdk-1.14/passwordStealer$ cfx xpi Exporting extension to passwordstealer.xpi. (addon-sdk-1.14)georgi@sepulcher:~/Documents/addon-sdk-1.14/passwordStealer$
-
Чрез командата deactivate деактивираме командния ред на FireFox add-on SDK.
(addon-sdk-1.14)georgi@sepulcher:~/Documents/addon-sdk-1.14$ deactivate georgi@sepulcher:~/Documents/addon-sdk-1.14$
- Стартираме Mozilla FireFox и избираме от менюто File -> Open File.
- Отиваме до .xpi файла, който искаме да инсталираме.
- Избираме го и кликаме на Open. След това трябва да се съгласим с инсталацията като кликнем на Install бутона.
- От менюто Tools се отива на Add-Ons и се избира добавката.
- Клика се на Remove.
Няма коментари:
Публикуване на коментар