Android phone users widely cover up mobile phone market. We understand that no hack proof devices in the world. Even though iphone iOS before 10.2.1 is vulnerable to DoS Exec Code Overflow (CVE-2017-2370). As a Android user we are not surprise Android operation system bug. There are 2 critical bug occurs on mediaserver and surfaceflinger. A bug was found on 2014 identify that a potential memory leak in SurfaceFlinger on Android 4.4.4. Memory leak due to not complete designed or programmed applications limitation that fail to free up memory segments when they are no longer needed. Since this is design fault (bug), as time goes by bug become a vulnerability found by security expert last month. The CVE alert that attacker is able to use a specially crafted file to cause memory corruption during media file and data processing on Android 7.0. Apart from that, media server found new vulnerability. Such vulnerability also affects the libhevc library. As far as we know, to improve device security on Android 7.0. Andriod breaks up the monolithic mediaserver
process into multiple processes with permissions and capabilities restricted to only those required by each process. However a design weakness causes the vulnerability located in the function that created the native handle. When passing in well-structured numFds and numInts (such as numFds = 0xffffffff, numInts = 2) to native_handle_create, you can cause the expression “sizeof (native_handle_t) + sizeof (int) * (numFds + numInts)” Integer overflow.
Below code is a proof of concept shown that each GraphicBuffer object contains a pointer to a native handle.
native_handle_t* native_handle_create(int numFds, int numInts)
{
native_handle_t* h = malloc(
sizeof(native_handle_t) + sizeof(int)*(numFds+numInts));//———->Integer overflow position
h->version = sizeof(native_handle_t);
h->numFds = numFds;
h->numInts = numInts;
return h;
}
For details about vulnerabilities on Android. Please refer to below url for reference.
https://source.android.com/security/bulletin/2017-02-01.html
We heard that the overall comment on Android phone is not secure any more! As a matter of fact, design fault and design limitation are the element of the result. Since no prefect product was made in the world. Even though you put more time in development and staging phase can’t avoid a design fault occurs in your product. Yes, agree, shorten the development life cycle will hits the design fault encounter in frequent way. However modern mobile phone world integrate with Multi-application and functions. Sometime a 3rd party application will integrate into your mobile phone. Thus Andriod 7 contains defense mechanism to protect memory space and Kernel environment. But what is the fact causes the operating system still vulnerable? Ok, Let go together on this journey to elaborate more techincal details in this regard.
The evolution of Android 7.0
Android 7.0 includes a variety of system and API behavior changes.
Battery and Memory
Background Optimizations
Permissions Changes
Sharing Files Between Apps
Accessibility Improvements
NDK Apps Linking to Platform Libraries
Check if your app uses private libraries
TLS/SSL Default Configuration Changes
On above feature enhancement, it looks that the improvement on new version of Android looks fine. As said, no prefect product design in the world. On the other way of thinking, what if we become a hacker. On above items, which part will become vulnerable or weakness let attacker compromise the phone?
Observational standpoint:
Point 1: (Sharing Files Between Apps)
Regarding to technical details written on technical documentation. For apps targeting Android 7.0, the Android framework enforces the StrictMode API policy that prohibits exposing file:// URIs outside your app. If an intent containing a file URI leaves your app, the app fails with a FileUriExposedException exception. To share files between applications, you should send a content://
URI and grant a temporary access permission on the URI. The easiest way to grant this permission is by using the FileProvider
class.
Side effect of Point 1 – Hacker can make use of File Provider class feature try to dig out the mobile phone data. The easy way is embedded a malicious program script in 3rd party application. Fool the user to click the button (accept sharing files between apps) during software installation. Since many mobile phone users are smart today, but still have many people fall down to this trap.
Point 2: (Memory)
Both the Android Runtime (ART) and Dalvik virtual machine perform routine garbage collection, this does not mean you can ignore when and where your app allocates and releases memory. Software designer need to avoid introducing memory leaks, usually caused by holding onto object references in static memory variables, and release any Reference
objects at the appropriate time as defined by lifecycle callbacks.
Side effect of Point 2 – The easiest way to leak an Activity is by defining a static variable inside the class definition of the Activity and then setting it to the running instance of that Activity. If this reference is not cleared before the Activity’s lifecycle completes, the Activity will be leaked. So all depends on mobile apps developer design. It is hard to avoid memory leak. As you know, what is the defect of memory leak? Hacker relies on this error can implant malware.
Point 3: (Background Optimizations)
ART (Android run-time)
Starting with Android 5.0, Android Runtime (ART) replaces Dalvik as the default virtual machine in the system.
Reference: The Dalvik Virtual Machine (Dalvik VM)
The Android platform leverages the Dalvik Virtual machine (Dalvik VM) for memory, security, device, and process management. Application designer can think of the Dalvik VM as a box that provides the necessary environment for you to execute an Android application sans, and therefore not to worry about the target device (mobile phone system).
Side effect of Point 3 – ART became the default runtime. While Dalvik relies on interpretation and just-in-time compilation, ART precompiles app Dalvik bytecode into native code. The command responsible for compiling an application into OAT is dex2oat, which can be found in /system/bindex2oat. All mobile apps will be compiled every time the device’s system is upgraded or the first time it is booted up after it is purchased. So attacker might have way to use dex2oat to generate OAT files from modified versions of installed apps or system frameworks and replace the original OAT files with them. This is the famous attack hiding behind Android Runtime. Yes, compile method sounds like jail break of the mobile phone device. Even though iPhone can’t avoid. And therefore I still believe Android security not such poor because no products on the market can say it is hackproof.
Remark: Did you heard that hacker prepare scam email lure the user to upgrade their Android phone. It is the similar case which bring with my concerns.
Reference: Critical vulnerabilities on iPhone and Android found on Feb 2017.
Apple » Iphone IOS | |||||
score | Publish Date | Update Date | |||
CVE-2017-2370 | 9.3 | DoS Exec Code Overflow | 2017-02-20 | 2017-02-22 | |
CVE-2017-2360 | 9.3 | DoS Exec Code | 2017-02-20 | 2017-02-22 |
Andriod OS | |||||
CVE-2017-0405 | 9.3 | Remote code execution vulnerability in Surfaceflinger | 2017 | 2017 Feb | |
CVE-2017-0406, CVE-2017-0407 | 9.3 | Remote code execution vulnerability in Mediaserver | 2017 | 2017 Feb | |
Summary:
If people tell you that a new mobile device is excellent, less vulnerabilities found. It is a perfect design. Even though he is the best at this moment. But believed that it is hard to maintain the glory in the long run. Why, because of today business on demand business strategy. If you heard that Android operating not secure anymore, but it is properly not.
Very nice write-up. I certainly love this site. Stick with it!|
I don’t even know how I ended up here, but I thought this post was good. I do not know who you are but certainly you are going to a famous blogger if you aren’t already 😉 Cheers!|
Outstanding post, you have pointed out some great details , I too think this s a very wonderful website.
I just want to tell you that I am just new to blogs and definitely enjoyed you’re web site. Very likely I’m going to bookmark your blog . You surely have impressive posts. Thanks for revealing your website.
I am so grateful for your article post.Really thank you! Want more.
My spouse and i felt satisfied that John could deal with his preliminary research through your precious recommendations he grabbed out of the web page. It’s not at all simplistic to just possibly be releasing strategies that many people today have been trying to sell. And we all fully grasp we need the website owner to thank for this. The specific explanations you’ve made, the easy blog menu, the friendships your site help instill – it’s got everything amazing, and it’s leading our son and the family know that the issue is thrilling, and that’s pretty vital. Many thanks for the whole thing!
Hi there very cool blog!! Guy .. Beautiful .. Wonderful .. I’ll bookmark your blog and take the feeds also¡KI’m happy to seek out a lot of helpful information right here in the put up, we’d like develop more strategies in this regard, thanks for sharing. . . . . .
I’m extremely impressed with your writing skills as well as with the layout on your blog. Is this a paid theme or did you modify it yourself? Either way keep up the nice quality writing, it is rare to see a great blog like this one these days..
Heya i am for the first time here. I found this board and I find It really useful & it helped me out much. I hope to give something back and aid others like you helped me.
Nice post. I was checking continuously this blog and I am inspired! Extremely helpful information specially the final phase 🙂 I care for such information much. I was looking for this certain information for a long time. Thank you and good luck.
Hello, you used to write fantastic, but the last several posts have been kinda boring¡K I miss your tremendous writings. Past few posts are just a little bit out of track! come on!
It’s the best time to make some plans for the future and it is time to be happy. I have read this post and if I could I wish to suggest you few interesting things or suggestions. Maybe you can write next articles referring to this article. I want to read even more things about it!
I haven¡¦t checked in here for some time as I thought it was getting boring, but the last several posts are good quality so I guess I will add you back to my daily bloglist. You deserve it my friend 🙂
Whats Happening i am new to this, I stumbled upon this I’ve found It absolutely useful and it has helped me out loads. I hope to contribute & assist different customers like its aided me. Great job.
It is actually a great and helpful piece of info. I¡¦m glad that you just shared this useful information with us. Please keep us up to date like this. Thanks for sharing.
Heya i am for the first time here. I found this board and I find It really useful & it helped me out a lot. I hope to give something back and aid others like you helped me.
Keep functioning ,impressive job!
There is apparently a bundle to realize about this. I believe you made certain nice points in features also.
you are in point of fact a just right webmaster. The website loading pace is amazing. It sort of feels that you are doing any distinctive trick. Moreover, The contents are masterpiece. you’ve performed a excellent process in this topic!
Excellent post. I was checking continuously this blog and I’m impressed! Extremely helpful information particularly the last part 🙂 I care for such info much. I was seeking this particular info for a very long time. Thank you and best of luck.
Thanks for every other fantastic article. The place else may anybody get that type of information in such an ideal approach of writing? I have a presentation next week, and I am at the search for such information.
Good post and straight to the point. I am not sure if this is really the best place to ask but do you guys have any thoughts on where to get some professional writers? Thx 🙂
I haven¡¦t checked in here for some time since I thought it was getting boring, but the last few posts are great quality so I guess I will add you back to my daily bloglist. You deserve it my friend 🙂
Very nice post. I just stumbled upon your weblog and wished to say that I have truly enjoyed surfing around your blog posts. In any case I will be subscribing to your feed and I hope you write again very soon!
I think other web-site proprietors should take this site as an model, very clean and excellent user genial style and design, as well as the content. You’re an expert in this topic!
I was suggested this website by my cousin. I’m not sure whether this post is written by him as no one else know such detailed about my trouble. You are wonderful! Thanks!
You really make it appear so easy together with your presentation however I in finding this matter to be actually one thing which I feel I’d never understand. It sort of feels too complex and very large for me. I am looking ahead for your subsequent post, I¡¦ll attempt to get the hang of it!
I think this is among the most significant info for me. And i am glad reading your article. But wanna remark on some general things, The site style is ideal, the articles is really nice : D. Good job, cheers
Very nice post. I just stumbled upon your blog and wanted to say that I’ve truly enjoyed surfing around your blog posts. In any case I will be subscribing to your feed and I hope you write again soon!
Thank you, I’ve just been looking for info about this topic for a while and yours is the greatest I have came upon till now. However, what concerning the conclusion? Are you certain about the source?
I like what you guys are up too. Such smart work and reporting! Keep up the excellent works guys I¡¦ve incorporated you guys to my blogroll. I think it will improve the value of my web site 🙂
I have recently started a site, the info you provide on this site has helped me greatly. Thanks for all of your time & work.
I¡¦ve recently started a website, the info you offer on this website has helped me tremendously. Thank you for all of your time & work.
I am continuously looking online for ideas that can benefit me. Thank you!
Keep working ,great job!
I am no longer positive the place you’re getting your information, but good topic. I must spend some time finding out more or working out more. Thanks for excellent information I used to be on the lookout for this information for my mission.
As I site possessor I believe the content material here is rattling great , appreciate it for your efforts. You should keep it up forever! Best of luck.
Hi, i think that i saw you visited my website thus i came to “return the favor”.I am trying to find things to enhance my site!I suppose its ok to use some of your ideas!!
Very nice post. I just stumbled upon your blog and wished to say that I have really enjoyed browsing your blog posts. After all I’ll be subscribing to your rss feed and I hope you write again very soon!
Good write-up, I¡¦m regular visitor of one¡¦s blog, maintain up the nice operate, and It’s going to be a regular visitor for a long time.
Excellent post. I was checking constantly this blog and I’m impressed! Very useful information particularly the last part 🙂 I care for such information a lot. I was seeking this certain info for a very long time. Thank you and good luck.
Definitely, what a splendid website and instructive posts, I will bookmark your website.All the Best!
I am extremely impressed with your writing skills and also with the layout on your weblog. Is this a paid theme or did you modify it yourself? Anyway keep up the excellent quality writing, it is rare to see a nice blog like this one today..
Nice blog here! Also your site rather a lot up very fast! What host are you the usage of? Can I am getting your affiliate hyperlink on your host? I want my web site loaded up as quickly as yours lol
It¡¦s actually a cool and useful piece of info. I am glad that you simply shared this helpful info with us. Please stay us up to date like this. Thanks for sharing.
I want to express appreciation to you for rescuing me from such a incident. As a result of exploring throughout the internet and coming across opinions that were not pleasant, I thought my entire life was gone. Existing devoid of the approaches to the difficulties you have fixed as a result of the posting is a critical case, and the kind which might have adversely damaged my career if I hadn’t discovered your web site. Your own training and kindness in taking care of almost everything was important. I don’t know what I would have done if I had not come upon such a thing like this. I’m able to now look forward to my future. Thank you very much for your reliable and results-oriented help. I will not be reluctant to refer your blog to anyone who should receive assistance on this matter.
Wow! This can be one particular of the most useful blogs We have ever arrive across on this subject. Actually Excellent. I’m also a specialist in this topic therefore I can understand your effort.
Hello, Neat post. There’s a problem with your web site in internet explorer, might test this¡K IE nonetheless is the marketplace leader and a big element of other folks will leave out your wonderful writing because of this problem.
wonderful points altogether, you simply won a brand new reader. What would you recommend in regards to your post that you just made some days ago? Any positive?
I have been browsing online more than 3 hours as of late, but I by no means discovered any attention-grabbing article like yours. It¡¦s beautiful price enough for me. In my view, if all site owners and bloggers made good content material as you probably did, the net shall be a lot more helpful than ever before.
I have been examinating out some of your posts and it’s pretty clever stuff. I will surely bookmark your site.
Magnificent beat ! I wish to apprentice while you amend your web site, how could i subscribe for a blog website? The account aided me a acceptable deal. I had been tiny bit acquainted of this your broadcast offered bright clear concept
Wow! Thank you! I continuously needed to write on my blog something like that. Can I take a fragment of your post to my blog?
Unquestionably believe that which you said. Your favorite justification seemed to be on the net the easiest thing to be aware of. I say to you, I definitely get irked while people think about worries that they just do not know about. You managed to hit the nail upon the top and also defined out the whole thing without having side-effects , people could take a signal. Will probably be back to get more. Thanks
Thanks for sharing excellent informations. Your web-site is very cool. I’m impressed by the details that you¡¦ve on this blog. It reveals how nicely you perceive this subject. Bookmarked this website page, will come back for extra articles. You, my friend, ROCK! I found simply the information I already searched everywhere and simply couldn’t come across. What an ideal web-site.
Hello there, I discovered your website by means of Google while looking for a related matter, your site got here up, it appears good. I have bookmarked it in my google bookmarks.
There is visibly a bunch to identify about this. I feel you made various nice points in features also.
I have not checked in here for a while because I thought it was getting boring, but the last few posts are good quality so I guess I will add you back to my everyday bloglist. You deserve it my friend 🙂
Hello, you used to write great, but the last several posts have been kinda boring¡K I miss your great writings. Past several posts are just a bit out of track! come on!
I do trust all the ideas you have presented in your post. They are very convincing and can definitely work. Nonetheless, the posts are very brief for novices. Could you please prolong them a bit from subsequent time? Thank you for the post.
My spouse and i were now glad Raymond managed to deal with his homework using the precious recommendations he got using your web site. It’s not at all simplistic just to choose to be giving away instructions most people might have been making money from. Therefore we figure out we’ve got the writer to be grateful to for that. The specific explanations you’ve made, the straightforward web site menu, the friendships your site make it possible to promote – it’s mostly astonishing, and it’s really making our son and our family recognize that this matter is amusing, which is seriously pressing. Many thanks for the whole thing!
I don’t even know how I ended up here, but I thought this post was great. I do not know who you are but definitely you’re going to a famous blogger if you are not already 😉 Cheers!
Hi, Neat post. There is a problem along with your web site in internet explorer, may check this¡K IE still is the marketplace leader and a huge element of folks will omit your great writing because of this problem.
I’m very happy to read this. This is the type of manual that needs to be given and not the random misinformation that is at the other blogs. Appreciate your sharing this best doc.
I get pleasure from, lead to I found just what I used to be taking a look for. You have ended my 4 day long hunt! God Bless you man. Have a great day. Bye
Hello there, just became aware of your blog through Google, and found that it is truly informative. I’m going to watch out for brussels. I’ll appreciate if you continue this in future. Numerous people will be benefited from your writing. Cheers!
Enjoyed looking through this, very good stuff, thankyou . “It is well to remember that the entire universe, with one trifling exception, is composed of others.” by John Andrew Holmes.
I have been exploring for a little for any high-quality articles or weblog posts in this sort of space . Exploring in Yahoo I at last stumbled upon this web site. Studying this info So i’m satisfied to express that I have a very good uncanny feeling I found out just what I needed. I so much without a doubt will make sure to don’t overlook this web site and give it a look on a constant basis.
Hello very cool blog!! Man .. Excellent .. Amazing .. I’ll bookmark your web site and take the feeds also…I am happy to search out so many helpful information here in the post, we want develop more techniques in this regard, thank you for sharing. . . . . .
I delight in, cause I discovered just what I used to be looking for. You’ve ended my four day lengthy hunt! God Bless you man. Have a nice day. Bye
Getting a issue with the Feed, could you help me?
I would like to thank you for the efforts you’ve put in writing this site. I am hoping the same high-grade blog post from you in the upcoming as well. Actually your creative writing abilities has inspired me to get my own website now. Really the blogging is spreading its wings quickly. Your write up is a good example of it.
Im thankful for the article.Much thanks again. Keep writing.
Good write-up, I¡¦m regular visitor of one¡¦s web site, maintain up the excellent operate, and It’s going to be a regular visitor for a lengthy time.
certainly like your web site but you need to check the spelling on several of your posts. Several of them are rife with spelling problems and I to find it very bothersome to inform the reality nevertheless I’ll certainly come back again.
Youre so cool! I dont suppose Ive read anything like this before. So nice to seek out someone with some authentic thoughts on this subject. realy thank you for starting this up. this web site is one thing that’s wanted on the net, somebody with just a little originality. helpful job for bringing something new to the web!
Fantastic post.Really thank you! Keep writing.
Enjoy ones site as its directly to the point but not technical. I’m keen on gadgets as well as anything tech connected thats the reason why i posted right here. are you carrying out some sort of up-date soon because I am engaged in your niche. I am going to return before long and even sign up to your blog. cheers.
What theme is this? Love it!
Hello, Neat post. There is a problem with your web site in web explorer, may check this¡K IE nonetheless is the marketplace leader and a large element of other folks will miss your magnificent writing due to this problem.
Hi my loved one! I want to say that this article is amazing, nice written and include almost all important infos. I would like to see extra posts like this .
An attention-grabbing dialogue is value comment. I think that you need to write extra on this topic, it might not be a taboo topic however typically people are not sufficient to speak on such topics. To the next. Cheers
Fantastic post.Really looking forward to read more. Much obliged.
Muchos Gracias for your blog.Really looking forward to read more. Keep writing.
Hello. fantastic job. I did not anticipate this. This is a great story. Thanks!
Appreciate you sharing, great blog post.Really thank you! Fantastic.
Fantastic blog article.Much thanks again. Much obliged.
I simply wanted to thank you so much again. I am not sure the things that I might have gone through without the type of hints revealed by you regarding that situation.
It¡¦s in point of fact a great and useful piece of information. I¡¦m satisfied that you simply shared this helpful info with us. Please stay us up to date like this. Thanks for sharing.
Thank you for any other informative site. Where else could I get that type of info written in such an ideal approach? I have a project that I am just now running on, and I have been at the glance out for such information.
I think this is among the most significant information for me. And i’m glad reading your article. But should remark on some general things, The site style is great, the articles is really excellent : D. Good job, cheers
Thanks for any other fantastic article. The place else may just anybody get that kind of info in such an ideal method of writing? I’ve a presentation next week, and I am at the search for such information.
Generally I do not learn post on blogs, however I would like to say that this write-up very forced me to check out and do it! Your writing taste has been amazed me. Thank you, quite nice article.
I cannot thank you enough for the post.Thanks Again.
Wow, great blog article. Will read on…
I was just looking for this info for a while. After 6 hours of continuous Googleing, finally I got it in your web site. I wonder what’s the lack of Google strategy that don’t rank this type of informative web sites in top of the list. Generally the top websites are full of garbage.
I really appreciate this post. I¡¦ve been looking everywhere for this! Thank goodness I found it on Bing. You’ve made my day! Thx again
I like what you guys are up also. Such smart work and reporting! Carry on the excellent works guys I have incorporated you guys to my blogroll. I think it will improve the value of my web site 🙂
Awsome blog! I am loving it!! Will be back later to read some more. I am taking your feeds also.
You ought to take portion in a contest for one of the finest blogs on the web. I will advocate this web-site!
You could definitely see your enthusiasm in the paintings you write. The sector hopes for more passionate writers like you who are not afraid to say how they believe. All the time follow your heart.
I do agree with all the ideas you have presented for your post. They’re really convincing and will definitely work. Still, the posts are too quick for beginners. May just you please prolong them a little from subsequent time? Thanks for the post.
I do consider all of the ideas you have offered on your post. They are really convincing and can certainly work. Still, the posts are very short for starters. May you please prolong them a little from next time? Thanks for the post.
After research a number of of the weblog posts in your web site now, and I actually like your manner of blogging. I bookmarked it to my bookmark website checklist and can be checking again soon. Pls check out my website online as well and let me know what you think.
I cannot thank you enough for the article post.Thanks Again. Keep writing.
Thank you for your article post.Thanks Again. Want more.
Thanks for another informative blog. Where else could I get that kind of info written in such a perfect way? I’ve a project that I’m just now working on, and I’ve been on the look out for such information.
Pretty nice post. I just stumbled upon your weblog and wished to say that I have truly enjoyed browsing your blog posts. After all I’ll be subscribing to your rss feed and I hope you write again very soon!
I value the blog post.Really looking forward to read more. Keep writing.
I’m usually to blogging and i actually appreciate your content. The article has actually peaks my interest. I’m going to bookmark your website and maintain checking for brand new information.
I am not sure where you are getting your info, however good topic. I must spend some time studying much more or understanding more. Thank you for excellent info I was looking for this information for my mission.
Right now it appears like Drupal is the top blogging platform available right now. (from what I’ve read) Is that what you are using on your blog?
Thanks for another informative website. Where else could I get that type of information written in such an ideal way? I’ve a project that I am just now working on, and I have been on the look out for such info.
I’m often to running a blog and i actually recognize your content. The article has actually peaks my interest. I’m going to bookmark your web site and hold checking for brand spanking new information.
A big thank you for your post. Really Cool.
I loved your article post. Cool.
I have not checked in here for a while as I thought it was getting boring, but the last several posts are good quality so I guess I¡¦ll add you back to my everyday bloglist. You deserve it my friend 🙂
Really enjoyed this blog article. Keep writing.
Thank you for any other great article. The place else may anyone get that kind of info in such a perfect way of writing? I’ve a presentation subsequent week, and I am on the search for such info.
There are incredibly a great deal of details like that to think about. This is a excellent point to start up. I provide you with the thoughts above as general inspiration but clearly you can find questions much like the one you start up where biggest thing will probably be doing work in honest good faith. I don?t determine if recommendations have emerged around things like that, but Most likely that a job is clearly referred to as a fair game. Both girls and boys glance at the impact of just a moment’s pleasure, throughout their lives.
Very good blog article. Want more.
Keep working ,splendid job!
I think other web site proprietors should take this website as an model, very clean and fantastic user friendly style and design, as well as the content. You’re an expert in this topic!
I have not checked in here for some time as I thought it was getting boring, but the last few posts are good quality so I guess I¡¦ll add you back to my everyday bloglist. You deserve it my friend 🙂
Major thanks for the blog article.Much thanks again. Want more.
I and my friends were going through the nice, helpful tips from the blog then the sudden came up with an awful suspicion I never expressed respect to the website owner for those secrets.
I cannot thank you enough for the post. Much obliged.
It’s always so sweet and also full of a lot of fun for me personally and my office colleagues to search your blog a minimum of thrice in a week to see the new guidance you have got.
I loved your article post.Really thank you! Fantastic.
wow, awesome blog.Really thank you! Much obliged.
you are in point of fact a good webmaster. The site loading velocity is incredible. It kind of feels that you’re doing any unique trick. Furthermore, The contents are masterwork. you have performed a wonderful process on this topic!
experiencing some small security issues with my latest blog, and I’d like to find something safer. Do you have any suggestions?
Youre so cool! I dont suppose Ive read anything in this way before. So nice to find somebody with a few original applying for grants this subject. realy appreciate starting this up. this excellent website is something that is required on the net, a person with some originality. helpful work for bringing something totally new on the world wide web!
This is so good to see. We have do more things like this for the military families. They are protecting us and we need to support them in this way
I truly appreciate this blog article.Thanks Again. Much obliged.
This is my first time pay a quick visit at here and i am in fact impressed to read all at single place.|
Thank you for your post.Thanks Again.
I appreciate you sharing this blog. Will read on…
|I want to thanks for this particular data
Great, thanks for sharing this blog.Really thank you! Keep writing.
Muchos Gracias for your blog.Much thanks again. Really Cool.
I am so grateful for your blog post. Cool.
Thank you ever so for you blog post.Thanks Again. Cool.
Im grateful for the blog post.Much thanks again. Fantastic.
Thank you ever so for you blog article. Will read on…
I just want to mention I am just very new to weblog and really savored this website. Very likely I’m want to bookmark your site . You certainly have very good articles and reviews. Kudos for revealing your website.
Im thankful for the article.Much thanks again. Keep writing.
It isIt’s appropriateperfectthe best time to make some plans for the future and it isit’s time to be happy. I haveI’ve read this post and if I could I want towish todesire to suggest you fewsome interesting things or advicesuggestionstips. PerhapsMaybe you couldcan write next articles referring to this article. I want towish todesire to read moreeven more things about it!
I loveI really likeI enjoyI likeEveryone loves what you guys areare usuallytend to be up too. This sort ofThis type ofSuchThis kind of clever work and exposurecoveragereporting! Keep up the superbterrificvery goodgreatgoodawesomefantasticexcellentamazingwonderful works guys I’ve incorporatedaddedincluded you guys to myourmy personalmy own blogroll.
I’ve been browsing on-line more than 3 hours lately, yet I by no means found any fascinating article like yours. It is lovely worth sufficient for me. Personally, if all website owners and bloggers made good content material as you probably did, the net will be a lot more useful than ever before.
WOW just what I was searching for. Came here by searching for ig
This website is amazing. I will tell about it to my friends and anybody that could be interested in this subject. Great work guys!
fantastic put up, very informative. I wonder why the opposite experts of this sector don’t notice this. You should proceed your writing. I’m sure, you’ve a huge readers’ base already!
I simply could not depart your website prior to suggesting that I really loved the standard info a person supply for your visitors? Is gonna be again often to check out new posts.
It is really a nice and helpful piece of information. I’m happy that you shared this useful information with us. Please stay us up to date like this. Thanks for sharing.
Your writing taste has been amazed me. Thank you, very nice article.)
Rattling nice layout and wonderful content , absolutely nothing else we need : D.
I couldn’tcould not resistrefrain from commenting. Very wellPerfectlyWellExceptionally well written!
I am regular readervisitor, how are you everybody? This articlepostpiece of writingparagraph posted at this websiteweb sitesiteweb page is reallyactuallyin facttrulygenuinely nicepleasantgoodfastidious.
I must voice my passion for your kindness providing support to those individuals that should have advice on this important matter.
I am planning to start my blog soon, but I’m a bit lost on everything. Can you suggest starting with a free platform such as WordPress or move for a paid option? There are so many choices out there which I’m completely confused. Any suggestions? Thank you a lot.
I merely wanted to thank you a lot again. I am unsure the things that I might have gone through without the kind of hints shown by you concerning that situation.
| Normally I don’t read article on blogs, but I would like to say that this write-up on this worth-sharing article very pressured me to try and do this!
HiWhat’s upHi thereHello to all, how is everythingallthe whole thing, I think every one is getting more from this websiteweb sitesiteweb page, and your views are nicepleasantgoodfastidious fordesigned forin favor ofin support of new userspeopleviewersvisitors.
I believe there are lots more pleasurable opportunities ahead for individuals that looked at your website.
I simply had to say thanks yet again. I do not know the things I would have made to happen in the absence of those ways contributed by you relating to such a theme. It previously was a real terrifying circumstance in my circumstances, but noticing your specialized fashion you processed the issue forced me to jump with gladness. I’m happy for your information and then believe you comprehend what a powerful job that you’re getting into educating some other people through the use of a web site. I know that you have never come across any of us.