יום ראשון, ספטמבר 25, 2016

התקנת חותמת לציתות

כאשר אנו צריכים לאפשר יכולת ציתות במחשב אחד הדברים הפשוטים ביותר הוא התקנת אישור הצפנה בשביל שנוכל לפתוח הצפנות SSL. 

בחלק מהכלים שראיתי יהיו פתיחה ואריזה מחדש של כל מה שעובר תחת 443, פשוט שולחים ללקוח את החותמת שלנו ו"מצפינים" את התעבורה עבורו עם המפתח שלנו.

יש הרבה ספקים שמאפשרים זאת ללא התקנת רכיב נוסף (אני חושב ש fortigate הוא הספק שנתקלתי בו הכי הרבה) אבל יש כאלה שדורשים התקנת חותמת אימות (קובץ crt). הייתרון בהתקנת החותמת שהלקוח לא מקבל הודעות של חיבור לא מאובטח (זה מעצבן).

אני חושב שחשוב להזכיר שתתקינו את זה רק אם אתם ממש רוצים לאפשר ציתות למערכת שלכם ואתם לקוחות קבועים של הספק ממנו אתם מתקינים.
בדרך זה מגיע ביחד עם מערכות האבטחה שנועדו "להגן" על התוכן אליו אתם נחשפים. זה  עובד בצורה שכשאתם מתחברים לאתר "מאובטח" הם יוכלו לפענח את ההצפנה לבדוק אותה ולארוז שוב. לא משנה אם זה ebay או gmail להם תהיה גישה להכל.

לדעתי האישית עדיף היה אם היו משתמשים ב sslstrip אבל זה עניין של טעם וריח.

את החותמת אפשר להתקין פר תוכנה (דפדפן , לקוח אימייל) או פר מערכת לכל דבר יש את הייתרונות והחסרונות שלו.

זוהיא דוגמה עבור ספק בשם netspark להתקנה פר מערכת זה עובד בצורה דומה גם על מובייל וגם על דסקטופ.

עבור דביאן :

לדוגמה אם יש לנו צורך להתקין את החותמת של Netspark  נוריד את הקובץ הזה) נקרא לו מקומית כ netpark.crt):

wget http://www.netsparkmobile.com/support/myca.crt -O netspark.crt

אפשר להוריד את אותו הקובץ מספקי השירות שמשתמשים בשרות שלהם (אינטרנט רימון , T4G ,אוניברסיטאות וכו') או מהשרת הראשי של netspark.

עבור fortinet הספק שלכם צריך לתת את הCA שלו (הסבר כאן).
עבור sonicwal אפשר להוריד את החותמת ברירת המחדל.


 את הקובץ נשים ב : 
/usr/share/ca-certificate
ונתקין לכל המערכת ע"י 
sudo dpkg-reconfigure ca-certificates

עכשיו יש לבחור אם אנו סומכים על האישור.

לדעתי האישית התקנה של חותמות כאלה במחשב נייד שיש לו סיכוי להתחבר לרשתות של אחרים זה חתיכת כאב ראש - גם אדם שלישי שהפעיל DPI יוכל לבצע ציתות למחשב אם נכנסים אליו לרשת (כי ה CA הוא אותו ה CA גם אצל לקוח א' וגם לקוח ב' של הספק).

לצערי העוד יותר יותר מדי "vpn"ים אינם מותקנים ע"י חבילות התקנת deb ומכילים טסריטים שידחפו את החותמות שלהם ל /etc/ssl ישירות מה שמקשה לבצע שידרוג או אחזקה של המכונה.

יום שבת, אוגוסט 06, 2016

פוסט ביקורת עמיתים - הכנת תשתית הקוד לביצוע מחקר

פוסט זה נועד לאפשר חזרה על הפעולות שביצעתי במהלך ביצוע המחקר בנושא חבילת תוכנה מסויימת.

ע"י מעבר על השלבים שמפורסמים פה ובפוסטים נוספים אני מקווה כי ניתן יהיה לשחזר ולבצע ביקורת עמיתים פשוטה.

כלים דרושים:

מערכת דביאן סיד , הפעולות בוצעו ע"י משתמש בשם user הקבצים הורדו לתיקיות pikud ו tmp.


apktool
unzip
grep
גישה לאינטרנט.

קבלת התוכנה עצמה:
הפעולה הראשונה היא הורדת ה APK עצמו ללא שימוש בחנות האפליקציות, במאמר עצמו אני מתייחס לנקודה הזאת שחוסמים את האפשרות של אנשים להם אין אפשרות להוריד מחנות האפליקציות (מכשיר ללא גישה לחנות האפליקציות, אין להם באמת מכשיר המקושר לחשבון).

ניתן להשתמש ב apkpure.com או apk-dl כל מערכת אחרת שמאפשרת הורדת אפצליקציות שלא מהסטור עצמו. ראויי לציין כי מכיוון שאנו מורידים מצד שלישי קוד המקור יכול להיות שעבר שינוי.
מסיבה זו אני מפרסם את ההאשים שקיבלתי (דרך שתי האתרים האלה הם היו זהים).


ההאשים של הAPK שלי הם :

user@laptop:~/pikud$ sha512sum Home%20Front%20Command_1.2_apk-dl.com.apk
28da60bf0e2941d632a65fe\
76960f45a715835d0567f0a\
3840eded45de7c63cef41d45\
817b5853d496b005d81b5e70\
713559957cf842daaaa0656ceb9ab6d075  Home%20Front%20Command_1.2_apk-dl.com.apk 
 
 
user@laptop:~/pikud$ md5sum Home%20Front%20Command_1.2_apk-dl.com.apk
81282187c7395e0cf1c72cabeeaa8b87  Home%20Front%20Command_1.2_apk-dl.com.apk

פריסת נתונים:

ביצוע פריסת הקבצים ופיענוח התוכן בוצעה ע"י apktool

Apktool v2.1.1-dirty - a tool for reengineering Android apk files
with smali v2.1.3-dev and baksmali v2.1.3-dev
Copyright 2014 Ryszard Wiśniewski 
Updated by Connor Tumbleson 
הותקן ע"י חבילה סטנדרטית :
apt-cache policy apktool 
apktool:
  Installed: 2.1.1+dfsg-3
  Candidate: 2.1.1+dfsg-3
  Version table:  

ביצוע הפריסה התבצע ע"י

user@laptop:~/pikud/$apktool d Home%20Front%20Command_1.2_apk-dl.com.apk 
I: Using Apktool 2.1.1-dirty on Home%20Front%20Command_1.2_apk-dl.com.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /home/user/.local/share/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

לאחר הפעולה תתקבל תיקייה Home%20Front%20Command_1.2_apk-dl.com מציאת הכתובת בוצעה ע"י :
user@laptop:~/pikud$ grep mailto -rn *
js/appObjs/globalMethods.js:60: 
 window.location = "mailto:itayg@elad.co.il?subject=Ioref%20Bug%20Report&body="+mailBoady;
js/controllers/contactUsController.js:51:                                                                       window.plugins.inAppBrowswer.open('mailto:info-oref@idf.gov.il?subject=Something to share with you...','_system');
grep .co.il -rn *

AndroidManifest.xml:20:        <meta-data android:name="server_url" 
android:value="https://ioref.co.il">
AndroidManifest.xml:21:        <meta-data android:name="dr_server_url" 
android:value="https://dr.ioref.co.il">

assets/www/js/appObjs/globalMethods.js:60: 
 window.location = "mailto:itayg@elad.co.il?subject=Ioref%20Bug%20Report&body="+mailBoady;

grep .org.il -rn *
assets/www/js/controllers/contactUsController.js:41:                                                                    window.plugins.inAppBrowswer.open('http://www.oref.org.il','_system');
assets/www/js/controllers/contactUsController.js:45:                                                                    window.location = "http://www.oref.org.il";


לאחר ביצוע הפיענוח הראשוני מתקבלים קבצי .smali שהם המקבילה (?) של קבצי אסמבלי לbytecode בעולם האנדרויד.

אימות הממצאים בוצע ע"י בידקה מתוצרי ה jadx.

פריסה ופיענוח באמצעות jadx

  • שימוש שימוש באתרים שמבצעים jadx , לשם שימוש מעלים את קובץ הapk שהורד קודם לאתר והוא מבצע המרת החבילה לקוד java שהוא קריא טיפה יותר מקבצי smali.

  • ביצוע פריסת jadx עצמאית
ככל קבצי הapk הם לא הרבה יותר מאשר ארכיב מסוג zip שמכיל מבנה קבצים מיוחד.
נשמור את הקובץ בתת תיקיה (בשביל להקל בדיקות לאחר מכן).

 הפיכת קובץ ה APK ל zip וביצוע פריסה שלו:
user@laptop:~/pikud/zip$ mv Home\ Front\ Command_v1.2.apk Home\ Front\ Command_v1.2.apk.zip

ביצוע פריסה שלו (השתמשתי בתוכנת ה unzip שמגיעה מחבילת unzip בדביאן):

user@laptop:~/pikud/zip$ unzip -x Home\ Front\ Command_v1.2.apk.zip 
Archive:  Home Front Command_v1.2.apk.zip
 extracting: assets/www/css/images/ajax-loader.gif  
  inflating: assets/www/css/idangerous.swiper.css  
  inflating: assets/www/css/index.css  
  inflating: assets/www/css/jquery.mobile-1.4.2.min.css  
  inflating: assets/www/css/toggle-switch.css  
 extracting: assets/www/img/A_minus.png  
 extracting: assets/www/img/A_plus.png  
 extracting: assets/www/img/AntennaRed.png  
 extracting: assets/www/img/Locate.png  
 extracting: assets/www/img/antenna.png  
 extracting: assets/www/img/arrow1.png  
 extracting: assets/www/img/arrow1Right.png  
 extracting: assets/www/img/arrowDown.png  
 extracting: assets/www/img/arrowLeft.png  
 extracting: assets/www/img/arrowRight.png  
 extracting: assets/www/img/back.png  
 extracting: assets/www/img/background.png  
 extracting: assets/www/img/call.png  
 extracting: assets/www/img/call2.png  
 extracting: assets/www/img/cellBlue.png  
 extracting: assets/www/img/cellOrange.png  
 extracting: assets/www/img/cellRed.png  
 extracting: assets/www/img/cellyellow.png  
 extracting: assets/www/img/checkBox1Off.png  
 extracting: assets/www/img/checkBox1On.png  
 extracting: assets/www/img/choosingShelter.jpg  
 extracting: assets/www/img/close.png  
 extracting: assets/www/img/earthquake.jpg  
 extracting: assets/www/img/emergencyBag.jpg  
 extracting: assets/www/img/facebook.png  
 extracting: assets/www/img/familyReadiness.jpg  
 extracting: assets/www/img/filterBar.png  
 extracting: assets/www/img/forbiddenMaterials.jpg  
 extracting: assets/www/img/home.png  
 extracting: assets/www/img/info.png  
 extracting: assets/www/img/key1.png  
 extracting: assets/www/img/location2.png  
 extracting: assets/www/img/locationIcon.png  
 extracting: assets/www/img/logo.png  
 extracting: assets/www/img/mail.png  
 extracting: assets/www/img/menu.png  
 extracting: assets/www/img/navBar.png  
 extracting: assets/www/img/news_icon_Yellow.png  
 extracting: assets/www/img/onAlarm.jpg  
 extracting: assets/www/img/progressBig0.png  
 extracting: assets/www/img/progressBig100.png  
 extracting: assets/www/img/progressBig20.png  
 extracting: assets/www/img/progressBig40.png  
 extracting: assets/www/img/progressBig60.png  
 extracting: assets/www/img/progressBig80.png  
 extracting: assets/www/img/progressSmall0.png  
 extracting: assets/www/img/progressSmall100.png  
 extracting: assets/www/img/progressSmall20.png  
 extracting: assets/www/img/progressSmall40.png  
 extracting: assets/www/img/progressSmall60.png  
 extracting: assets/www/img/progressSmall80.png  
 extracting: assets/www/img/protectiveZonesMap.jpg  
 extracting: assets/www/img/radio.png  
 extracting: assets/www/img/radio2.png  
 extracting: assets/www/img/ready.png  
 extracting: assets/www/img/settings.png  
 extracting: assets/www/img/situation.png  
 extracting: assets/www/img/textBox2.png  
 extracting: assets/www/img/textBox3.png  
 extracting: assets/www/img/time2.png  
 extracting: assets/www/img/timeIcon.png  
 extracting: assets/www/img/twitter.png  
 extracting: assets/www/img/update.png  
 extracting: assets/www/img/web.png  
 extracting: assets/www/img/youtube.png  
  inflating: assets/www/js/appObjs/appMenu.js  
 extracting: assets/www/js/appObjs/appMessages.js  
  inflating: assets/www/js/appObjs/contentLoader.js  
  inflating: assets/www/js/appObjs/errorsManager.js  
  inflating: assets/www/js/appObjs/globalMethods.js  
  inflating: assets/www/js/appObjs/globalVariables.js  
  inflating: assets/www/js/appObjs/languageManager.js  
  inflating: assets/www/js/appObjs/locationManager.js  
  inflating: assets/www/js/appObjs/navigationManager.js  
  inflating: assets/www/js/appObjs/requireConfig.js  
  inflating: assets/www/js/controllers/appLobbyController.js  
  inflating: assets/www/js/controllers/contactUsController.js  
  inflating: assets/www/js/controllers/messageDetailsController.js  
  inflating: assets/www/js/controllers/readinessController.js  
  inflating: assets/www/js/controllers/readinessDetailsController.js  
  inflating: assets/www/js/controllers/settingsController.js  
  inflating: assets/www/js/controllers/situationRoomController.js  
  inflating: assets/www/js/controllers/wizard_chooseLocationController.js  
  inflating: assets/www/js/controllers/wizard_choosingShelterController.js  
  inflating: assets/www/js/controllers/wizard_earthquakeReadinessController.js  
  inflating: assets/www/js/controllers/wizard_emergencyBagController.js  
  inflating: assets/www/js/controllers/wizard_progressStateController.js  
  inflating: assets/www/js/lib/idangerous.swiper.js  
  inflating: assets/www/js/lib/idangerous.swiper.min.js  
  inflating: assets/www/js/lib/jquery-1.7.1.min.js  
  inflating: assets/www/js/lib/jquery.blockUI.js  
  inflating: assets/www/js/lib/jquery.js  
  inflating: assets/www/js/lib/jquery.mobile-1.4.2.js  
  inflating: assets/www/js/lib/jquery.mobile-1.4.2.min.js  
  inflating: assets/www/js/lib/jquery.scrollTo.js  
  inflating: assets/www/js/lib/jquery.touchSwipe.min.js  
  inflating: assets/www/js/lib/require.js  
  inflating: assets/www/js/lib/rtl.jquery.mobile-1.2.0.min.js  
  inflating: assets/www/js/lib/rtl.jquery.mobile-1.4.0.js  
  inflating: assets/www/js/lib/text.js  
  inflating: assets/www/js/lib/underscore.js  
  inflating: assets/www/js/localization/ar/offlineContent/appTerms.html  
  inflating: assets/www/js/localization/ar/offlineContent/offlineContent_about.html  
  inflating: assets/www/js/localization/ar/offlineContent/offlineContent_choosingShelter.html  
  inflating: assets/www/js/localization/ar/offlineContent/offlineContent_earthquakeReadiness.html  
  inflating: assets/www/js/localization/ar/offlineContent/offlineContent_emergencyBag.html  
  inflating: assets/www/js/localization/ar/offlineContent/offlineContent_familyReadiness.html  
  inflating: assets/www/js/localization/ar/offlineContent/offlineContent_forbiddenMaterials.html  
  inflating: assets/www/js/localization/ar/offlineContent/offlineContent_onAlarmBehavior.html  
  inflating: assets/www/js/localization/ar/offlineContent/offlineContent_protectiveZonesMap.html  
  inflating: assets/www/js/localization/ar/arabic.js  
  inflating: assets/www/js/localization/ar/cities_ar_EG  
  inflating: assets/www/js/localization/ar/situationRoomMessagesAR.js  
  inflating: assets/www/js/localization/en/offlineContent/appTerms.html  
  inflating: assets/www/js/localization/en/offlineContent/offlineContent_about.html  
  inflating: assets/www/js/localization/en/offlineContent/offlineContent_choosingShelter.html  
  inflating: assets/www/js/localization/en/offlineContent/offlineContent_earthquakeReadiness.html  
  inflating: assets/www/js/localization/en/offlineContent/offlineContent_emergencyBag.html  
  inflating: assets/www/js/localization/en/offlineContent/offlineContent_familyReadiness.html  
  inflating: assets/www/js/localization/en/offlineContent/offlineContent_forbiddenMaterials.html  
  inflating: assets/www/js/localization/en/offlineContent/offlineContent_onAlarmBehavior.html  
  inflating: assets/www/js/localization/en/offlineContent/offlineContent_protectiveZonesMap.html  
  inflating: assets/www/js/localization/en/cities_en_US  
  inflating: assets/www/js/localization/en/english.js  
  inflating: assets/www/js/localization/en/situationRoomMessagesEN.js  
  inflating: assets/www/js/localization/he/offlineContent/appTerms.html  
  inflating: assets/www/js/localization/he/offlineContent/offlineContent_about.html  
  inflating: assets/www/js/localization/he/offlineContent/offlineContent_choosingShelter.html  
  inflating: assets/www/js/localization/he/offlineContent/offlineContent_earthquakeReadiness.html  
  inflating: assets/www/js/localization/he/offlineContent/offlineContent_emergencyBag.html  
  inflating: assets/www/js/localization/he/offlineContent/offlineContent_familyReadiness.html  
  inflating: assets/www/js/localization/he/offlineContent/offlineContent_forbiddenMaterials.html  
  inflating: assets/www/js/localization/he/offlineContent/offlineContent_onAlarmBehavior.html  
  inflating: assets/www/js/localization/he/offlineContent/offlineContent_protectiveZonesMap.html  
  inflating: assets/www/js/localization/he/cities_iw_IL  
  inflating: assets/www/js/localization/he/hebrew.js  
  inflating: assets/www/js/localization/he/situationRoomMessagesHE.js  
  inflating: assets/www/js/localization/ru/offlineContent/appTerms.html  
  inflating: assets/www/js/localization/ru/offlineContent/offlineContent_about.html  
  inflating: assets/www/js/localization/ru/offlineContent/offlineContent_choosingShelter.html  
  inflating: assets/www/js/localization/ru/offlineContent/offlineContent_earthquakeReadiness.html  
  inflating: assets/www/js/localization/ru/offlineContent/offlineContent_emergencyBag.html  
  inflating: assets/www/js/localization/ru/offlineContent/offlineContent_familyReadiness.html  
  inflating: assets/www/js/localization/ru/offlineContent/offlineContent_forbiddenMaterials.html  
  inflating: assets/www/js/localization/ru/offlineContent/offlineContent_onAlarmBehavior.html  
  inflating: assets/www/js/localization/ru/offlineContent/offlineContent_protectiveZonesMap.html  
  inflating: assets/www/js/localization/ru/cities_ru_RU  
  inflating: assets/www/js/localization/ru/russian.js  
  inflating: assets/www/js/localization/ru/situationRoomMessagesRU.js  
  inflating: assets/www/js/models/getCityName.js  
  inflating: assets/www/js/app.js    
  inflating: assets/www/plugins/org.apache.cordova.dialogs/www/android/notification.js  
  inflating: assets/www/plugins/org.apache.cordova.dialogs/www/notification.js  
  inflating: assets/www/plugins/appSettings.js  
  inflating: assets/www/plugins/appStorage.js  
  inflating: assets/www/plugins/debuggerPlugin.js  
  inflating: assets/www/plugins/errorsManagerPlugin.js  
  inflating: assets/www/plugins/geoLocation.js  
  inflating: assets/www/plugins/getAboutInfo.js  
  inflating: assets/www/plugins/getMessages.js  
  inflating: assets/www/plugins/getSegments.js  
  inflating: assets/www/plugins/getShelterEstimateTime.js  
  inflating: assets/www/plugins/inappbrowser.js  
  inflating: assets/www/plugins/login.js  
  inflating: assets/www/plugins/softKeyBoard.js  
  inflating: assets/www/plugins/updateServer.js  
  inflating: assets/www/plugins/updateStatistics.js  
  inflating: assets/www/plugins/video.js  
  inflating: assets/www/templates/pages/appLobbyTemplate.html  
  inflating: assets/www/templates/pages/chooseLocationTemplate.html  
  inflating: assets/www/templates/pages/choosingShelterTemplate.html  
  inflating: assets/www/templates/pages/contactUsTemplate.html  
  inflating: assets/www/templates/pages/earthquakeReadinessTemplate.html  
  inflating: assets/www/templates/pages/emergencyBagTemplate.html  
  inflating: assets/www/templates/pages/messageDetailsTemplate.html  
  inflating: assets/www/templates/pages/progressStateTemplate.html  
  inflating: assets/www/templates/pages/readinessDetailsTemplate.html  
  inflating: assets/www/templates/pages/readinessTemplate.html  
  inflating: assets/www/templates/pages/settingsTemplate.html  
  inflating: assets/www/templates/pages/situationRoomTemplate.html  
  inflating: assets/www/templates/emergencyBagItem.html  
  inflating: assets/www/templates/menuTemplate.html  
  inflating: assets/www/templates/readinessItem.html  
  inflating: assets/www/templates/situationRoomMessage.html  
 extracting: assets/www/config.xml   
  inflating: assets/www/cordova.js   
  inflating: assets/www/cordova_plugins.js  
  inflating: assets/www/index.html   
 extracting: assets/alert.mp3        
 extracting: assets/info.mp3         
  inflating: res/color/common_signin_btn_text_dark.xml  
  inflating: res/color/common_signin_btn_text_light.xml  
 extracting: res/drawable/alert_icon.png  
  inflating: res/drawable/button_border.xml  
  inflating: res/drawable/common_signin_btn_icon_dark.xml  
  inflating: res/drawable/common_signin_btn_icon_light.xml  
  inflating: res/drawable/common_signin_btn_text_dark.xml  
  inflating: res/drawable/common_signin_btn_text_light.xml  
  inflating: res/drawable/dialog_border.xml  
  inflating: res/drawable/dialog_header_border.xml  
 extracting: res/drawable/ic_notification.png  
 extracting: res/drawable/icon.png   
 extracting: res/drawable/info_circle.png  
 extracting: res/drawable/ioref_logo.png  
 extracting: res/drawable/splash.png  
  inflating: res/drawable/toast_border.xml  
  inflating: res/layout/dialog_push_message.xml  
  inflating: res/layout/splash.xml   
  inflating: res/layout/toast.xml    
  inflating: res/raw/smart_trust_store.bks  
  inflating: res/xml/config.xml      
  inflating: AndroidManifest.xml     
 extracting: resources.arsc          
 extracting: res/drawable-hdpi-v4/common_signin_btn_icon_disabled_dark.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_icon_disabled_light.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_icon_focus_dark.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_icon_focus_light.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_icon_normal_dark.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_icon_normal_light.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_icon_pressed_dark.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_icon_pressed_light.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_text_disabled_dark.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_text_disabled_focus_light.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_text_disabled_light.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_text_focus_dark.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_text_focus_light.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_text_normal_dark.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_text_normal_light.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_text_pressed_dark.9.png  
 extracting: res/drawable-hdpi-v4/common_signin_btn_text_pressed_light.9.png  
 extracting: res/drawable-hdpi-v4/ic_plusone_medium_off_client.png  
 extracting: res/drawable-hdpi-v4/ic_plusone_small_off_client.png  
 extracting: res/drawable-hdpi-v4/ic_plusone_standard_off_client.png  
 extracting: res/drawable-hdpi-v4/ic_plusone_tall_off_client.png  
 extracting: res/drawable-hdpi-v4/icon.png  
 extracting: res/drawable-hdpi-v4/splash.png  
 extracting: res/drawable-ldpi-v4/icon.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_icon_disabled_dark.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_icon_disabled_light.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_icon_focus_dark.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_icon_focus_light.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_icon_normal_dark.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_icon_normal_light.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_icon_pressed_dark.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_icon_pressed_light.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_text_disabled_dark.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_text_disabled_focus_light.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_text_disabled_light.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_text_focus_dark.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_text_focus_light.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_text_normal_dark.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_text_normal_light.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_text_pressed_dark.9.png  
 extracting: res/drawable-mdpi-v4/common_signin_btn_text_pressed_light.9.png  
 extracting: res/drawable-mdpi-v4/ic_plusone_medium_off_client.png  
 extracting: res/drawable-mdpi-v4/ic_plusone_small_off_client.png  
 extracting: res/drawable-mdpi-v4/ic_plusone_standard_off_client.png  
 extracting: res/drawable-mdpi-v4/ic_plusone_tall_off_client.png  
 extracting: res/drawable-mdpi-v4/icon.png  
 extracting: res/drawable-mdpi-v4/splash.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_dark.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_icon_disabled_light.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_icon_focus_dark.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_icon_focus_light.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_icon_normal_dark.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_icon_normal_light.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_icon_pressed_dark.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_icon_pressed_light.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_text_disabled_dark.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_text_disabled_focus_light.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_text_disabled_light.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_text_focus_dark.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_text_focus_light.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_text_normal_dark.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_text_normal_light.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_text_pressed_dark.9.png  
 extracting: res/drawable-xhdpi-v4/common_signin_btn_text_pressed_light.9.png  
 extracting: res/drawable-xhdpi-v4/ic_plusone_medium_off_client.png  
 extracting: res/drawable-xhdpi-v4/ic_plusone_small_off_client.png  
 extracting: res/drawable-xhdpi-v4/ic_plusone_standard_off_client.png  
 extracting: res/drawable-xhdpi-v4/ic_plusone_tall_off_client.png  
 extracting: res/drawable-xhdpi-v4/icon.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_dark.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_focus_dark.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_focus_light.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_icon_disabled_light.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_icon_focus_dark.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_icon_focus_light.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_icon_normal_dark.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_icon_normal_light.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_icon_pressed_dark.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_icon_pressed_light.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_dark.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_focus_dark.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_focus_light.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_text_disabled_light.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_text_focus_dark.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_text_focus_light.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_text_normal_dark.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_text_normal_light.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_text_pressed_dark.9.png  
 extracting: res/drawable-xxhdpi-v4/common_signin_btn_text_pressed_light.9.png  
 extracting: res/drawable-xxhdpi-v4/ic_plusone_medium_off_client.png  
 extracting: res/drawable-xxhdpi-v4/ic_plusone_small_off_client.png  
 extracting: res/drawable-xxhdpi-v4/ic_plusone_standard_off_client.png  
 extracting: res/drawable-xxhdpi-v4/ic_plusone_tall_off_client.png  
  inflating: classes.dex             
  inflating: org/apache/http/entity/mime/version.properties  
  inflating: META-INF/MANIFEST.MF    
  inflating: META-INF/CERT.SF     

בשונה מקבצי smali את קבצי ה dex נאלץ להמיר לקוד קריא יותר כך :
jadx -d out classes.dex

יום רביעי, יולי 06, 2016

לראות ולחייך

איזה תענוג לראות את הדבר הבא כאשר מדברים על בנייה של מוצר -
Linux
  • Python v2.7
  • make
  • A proper C/C++11 compiler tool chain, for example GCC
  • native-keymap needs libx11-dev.
    • On Debian-based Linux: sudo apt-get install libx11-dev
    • On Red Hat-based Linux: sudo yum install libx11-devel.x86_64 # or .i686.
  • Building deb and rpm packages requires fakeroot and rpm, run: sudo apt-get install fakeroot rpm
After you have these tools installed, run the following commands to check out Code and install dependencies:

Windows
git clone https://github.com/microsoft/vscode
cd vscode
scripts\npm install


למה זה מגניב ? כי מדובר על מוצר Visual Studio Code, שזה סביבת פיתוח מבית מייקרוספט ובה משתמשים במוצרי קוד פתוח כמשהוא מקובל ומשומש (לא שזה חדש לראות את זה , פשוט מחמם את הלב לראות שזה הפך להיות כל כך מיינסטרים).

יום חמישי, מאי 19, 2016

זה הכל עניין של עוצמה

היום במפגש  יצא לי לדון לגבי השפעה של קרינה אלקטרומגנטית של ציוד תקני בתדרי ה 2.4Ghz וההשפעה (החוסר שלה)

הטענה שלי היא שהדרך היחידה שאני מצליח לחשוב עליה לגרום לנזק (שינוי) בגוף ביולגי ע"י משדר תקני (נתב) היא טיגון: הקרינה הנפלטת מנתב אינה מיננת ועוצמת שידור מקסימלית היא 1 וואט.

לצערי אמרתי טעות ואמרתי שה FCC מאשר מספר וואטים בודדים אבל לפי בדיקה נוספת מדובר על וואט אחד בלבד .


עבור מיליוואט :
P(dbm) = 10 * log_10 (P(mW) / 1mW)

מכאן כן לראות שעבור וואט אחד מדובר על 30dbm:
10 * log_10 (1000 mW / 1 mW) = 10 * 3 = 30dbm

תוסיפו לזה שעוצמת השדה יורדת בהתאם למרחק (ריבוע).

האם קרינה לא מיננת אינה גורמת נזק ? ממש לא ! המיקרוגל הביתי אינו מיינן אבל הוא הורס רקמות מצויין (טיגון) .

על מנת לבצע שינויים צריך שתהיה עוצמה מתאימה (אנרגיה) ואורך גל מתאים , יינון כשלעצמו משפיע במספר תחומים גרעיני , כימי ו חשמלי.

בתחום הגרעיני מדובר על שינוי אטומים , בתחום הכימי מדובר על פירוק קשרים כימיים ובתחום החשמלי מעלים את המוליכות.

עכשיו אם באמת רוצים לדבר על קרינה א"מ שהיא ככל הנראה מעל התקנים של הזהירות המונעת תבקקו למשל תחנת ממסרים שיושבות בתוך בניין או מטרים ספורים ממנו , קו מתח צמוד לבניין , שנאי חלוקה מתחת לדירה, וקווי חלוקה תת קרקעים שעוברים מתחת לבית ספר.

עריכה - הפוסט המקורי נכתב לפני פרסום המחקר הזה, בו הוצגה טענה כי קרינת רדיו  גורמת מקושרת לסרטן  ,

 
These findings appear to support the International
Agency for Research on Cancer (IARC) conclusions regarding the possible carcinogenic
potential of Radiofrequency radiation (RFR) .


הבדיקה נעשתה ע"י חשיפה לקרינה במשך כ9 שעות בעוצמות של 1.5 וואט לקילוגרם ' בתדרים 900 ו 1900 (לא מדובר על התדרים של וי-פי ואם זכרוני אינו מטעה אותי הם לא בשימוש ).

מדובר על קבוצה קטנה (90 יחידות) אבל מדובר במחקר (שלדעתי) פורץ דרך בגלל שמודבר על מקרה ראשון שמציג תוצאות כאלה.

יום שלישי, מאי 10, 2016

windows subsystem for linux

אם כבר עברתי לצד האפל , חשבתי לעצמי אולי הבעיות בהן נתקלתי (חוסר תמיכה) יפתרו על ידי שימוש ב windows subsytem for linux.

הרי כבר הראתי שאם אני מפעיל מכונה וירטואלית ומעביר אליה התקן ניתן להשתמש בו מתוך המכונה,אז אולי אפשר לעשות את אותו הדבר ללא מכונה וירטואלית.

בשביל ההתקנה  יש לעבור ל developer mode ולהוריד preview (אני הלכתי על 14332) ,את ההורדה ביצעתי  באמצעות wget על וינדוס אבל אפשר גם דרך דפדפן.

בשביל להתקין תצטרכו לאשר את windows subsystem for linux תחת windows features בתוך programs and features.

לאחר איתחול הפעילו cmd ומתוכו הריצו bash וצרו משתמש (זאת כמובן אם אתם מסכימים לתנאי השימוש של ubuntu :) )




ההתקנה הולכת לתוך  %localAppData%\lxss אצלי היא לקחה 630 מ"ב .
מתחתיה התיקיות cache data home mnt root ו rootfs באופן מתפיע יש אפילו grub מותקן (רק שאני מאמין שאינו עוזר בשיט.

בשביל להסיר : lxrun.exe /uninistall

כמה דברים בסיסים להתחלה :

user@DELL-E6540:/proc$ uname -a
Linux DELL-E6540 3.4.0+ #1 PREEMPT Thu Aug 1 17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux

user@DELL-E6540:/mnt/c$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"

user@DELL-E6540:/mnt/c$ mount
rootfs on / type rootfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,seclabel,relatime)
user@DELL-E6540:/mnt/c$ sudo df -h
df: cannot read table of mounted file systems: No such file or directory


לצערי בגלל הבעיה של proc דברים אחרים חשובים אינם עובדים כמו lsusb ו lsmod (מה שמונע שימוש בדברים כמו wvdial למשל) .

התחלתי לוודא אילו כלים שהיום עובדים לי בwindows יעבוד מתוך ה subsystem.

netcat עובד.
telnet עובד.
git-svn אינו עובד (נתקע).
nmap אינו עובד (Problem binding to interface).
ping אינו עובד (icmp open socket: socket type not supported)

מה אני אגיד לכם שימוש ב msysgit ו gnuwin נותן יכולות טובות יותר נכון לעכשיו.