Showing posts with label programming language. Show all posts
Showing posts with label programming language. Show all posts

Hacker Debugging Uncovered (Uncovered series) Review

Hacker Debugging Uncovered (Uncovered series)
Average Reviews:

(More customer reviews)
Are you looking to buy Hacker Debugging Uncovered (Uncovered series)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Hacker Debugging Uncovered (Uncovered series). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Hacker Debugging Uncovered (Uncovered series) ReviewFirst, a word about the publisher, A-List. This book was delayed time and time again. So much so that I had this book preordered for over a year. This sort of thing is just unacceptable, and would make me inclined to not purchase any books from this publisher in the future, and some of the rating I gave it is because of the publisher.
This book has a much larger unix focus than the 'Hacker Disassembling Uncovered' which was largely windows based, however the author's relative unfamiliarity with unix tends to show.
For example, on page 39 the author states:
IDA Pro, the best disassembler of all times, is nw available under Linux! Users of FreeBSD and other operating systems will have to be content with the console Windows version started under the emulator or have to work on native MS-DOS, OS/2, and Windows.
Unfortunately, the author does not mention (or does not know?) that the OS2 and DOS4GW products were discontinued when the linux version was released. Additionally, FreeBSD (and OpenBSD and NetBSD) can easily run linux binaries by mapping the system calls. It's a very cheap way to run linux binaries, and it was acomplished for OpenBSD within a day or so of the 4.7 release. A much cleaner way is available now; others have managed to do the same for FreeBSD, and NetBSD is likely to be straihtforward as well.
There's also some problems with the book that confuse me. For example, on page 432 the author states the following:The C programming language doesn't allow you to declare functions
returning pointers to functions, because this declaration is recursively
looped.
I simply do not know where he pulled this from. The following small C example demonstrates how to do just this:
#include
int (*HelloWorld(void))(int,int);
int helloworld(int a, int b)
{
printf("hello world: %d %d\n", a, b);
return 0;
}
int main(void)
{
int (*foo)(int, int) = HelloWorld();
foo(1,2);
return 0;
}
int (*HelloWorld(void))(int, int)
{
return helloworld;
}
And here is it being compiled:
brian@lemon:~> gcc -ansi -std=c89 -Wall -o foo foo.c
brian@lemon:~>
and here is it being run:
brian@lemon:~> ./foo
hello world: 1 2
brian@lemon:~>
On to the actual content of the book, it's largely okay. However, if you are expecting new antidebugging ideas, or even ideas hackers are actually going to use, you are in for a rather unfortunate surprise.
When I purchased this book, I sort of expected it would keep the duplication from Hacker Disassembling Uncovered to a minimum, but I found that the amount of the book dedicated to static analysis (ie: disassembling and the line) is significant. Far more significant than it should be; nearly the first half of the book is filled with static analysis stuff, working on straightforward crackmes (similar to the previous book in the series), and so forth. This strikes me as fluff in order to boost the price the publisher can charge.
Once you get past these negative parts, you have an okay book about (mostly) antidebugging techniques, and some debugging techniques. There's also the requisite PE injection section (sorry, no elf version) along with some basic PE documentation (also no elf version of this).
There's quite a bit here if you want a broad ovrview of binary analysis using both static and dynamic analysis. There's nothing new here at all, but if you'd like a bunch of things all in one place, this book may be useful, dispite its many flaws.Hacker Debugging Uncovered (Uncovered series) OverviewTips for the practical use of debuggers, such as NuMega SoftIce, Microsoft Visual Studio Debugger, and Microsoft Kernel Debugger, with minimum binding to a specific environment are disclosed in this debugger guide. How debuggers operate and how to overcome obstacles and repair debuggers is demonstrated. Programmers will learn how to look at what is inside a computer system, how to reconstruct the operating algorithm of a program distributed without source code, how to modify the program, and how to debug drivers. The use of debugging applications and drivers in Windows and Unix operating systems on Intel Pentium/DEC Alpha-based processors is also detailed.

Want to learn more information about Hacker Debugging Uncovered (Uncovered series)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Accelerated C++: Practical Programming by Example Review

Accelerated C++: Practical Programming by Example
Average Reviews:

(More customer reviews)
Are you looking to buy Accelerated C++: Practical Programming by Example? Here is the right place to find the great deals. we can offer discounts of up to 90% on Accelerated C++: Practical Programming by Example. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Accelerated C++: Practical Programming by Example ReviewThis is a nice change for the better! Instead of introducing the basics and then going on to class design, inheritance, and polymorphism, Andrew and Barbara delay things such as class design until the latter part of the book and instead launch straight into use of the STL, illustrated with practical examples of how to use STL containers and algorithms to solve programming problems.
As far as I am concerned, this is definitely a change for the better. Most programming projects I see heavily abuse inheritance to do things that would have better been done with templates and, as a rule, most C++ projects continue to ignore the STL, even though it is probably the most fundamental contribution to C++ programmer productivity in years. Following this book, readers are encouraged to use STL from the word go, which is as it should be.
The language and flow of the book are excellent, and the presentation is very lucid. What really shines through is that both authors are experts on the topic and really know what they are talking about. The explanations of language features are complete, correct, and precise. There is none of the muddled exposition that I find in so many other C++ books. The teaching experience that Andrew and Barbara have gained over the years is truly reflected in the prose. The book anticipates many questions and typically answers them just at the right time, namely, when the question is just about to pop into the reader's head.
Information density of the book is high. A lot of information is packed into few words, so the reader has to concentrate on what is being said, and skipping paragraphs is not something that I would recommend. The concentration, however, is well repaid by the large amount of solid knowledge that is imparted: I believe that no other C++ book manages to convey as much information per page as this one.
To me, the target audience are people who have done some programming in other languages and do not know C++. (I would not recommend the book for people who have never programmed before, unless they are very determined readers.) More seasoned C++ programmers also will get good value. And, if you are an experienced C++ programmer, but haven't much used the standard library up to now, there is still plenty of meat to be found: there are enough gems of advice in the book for it appeal to people who have considerable C++ experience.
This is an excellent effort from two experts in the field. I recommend it!Accelerated C++: Practical Programming by Example OverviewWant to learn how to program in C++ immediately? Want to start writing better, more powerful C++ programs today? Accelerated C++'s uniquely modern approach will help you learn faster and more fluently than you ever believed possible. Based on the authors' intensive summer C++ courses at Stanford University, Accelerated C++ covers virtually every concept that most professional C++ programmers will ever use -- but it turns the "traditional" C++ curriculum upside down, starting with the high-level C++ data structures and algorithms that let you write robust programs immediately. Once you're getting results, Accelerated C++ takes you "under the hood," introducing complex language features such as memory management in context, and explaining exactly how and when to use them. From start to finish, the book concentrates on solving problems, rather than learning language and library features for their own sake. The result: You'll be writing real-world programs in no time -- and outstanding code faster than you ever imagined.

Want to learn more information about Accelerated C++: Practical Programming by Example?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series) Review

RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series)
Average Reviews:

(More customer reviews)
Are you looking to buy RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series)? Here is the right place to find the great deals. we can offer discounts of up to 90% on RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series) ReviewRailsSpace does an excellent job of teaching Ruby on Rails through a hands-on, real world application. If you are like me then you probably cringed at the thought of yet another social networking site. However, after reading through the first part to this book my apprehensions were put at ease. The authors explained in the opening chapter that "There's a tension in any educational book between the two extremes of pure tutorial and pure reference. We land firmly on the tutorial side of this spectrum--" The audience for the book is anyone beginning with Ruby on Rails. This book assumes no prior knowledge of Rails or Ruby, and sticks to that through the entire book. Each chapter walks you through the process of creating RailsSpace, while also teaching you best practices and some of the nuances of Ruby and the Rails framework.
This book is broken into two main parts, Foundations and Building a Social Network, with each part comprising several chapters each.
Foundations
Getting Started
With the introduction out of the way, it is time to jump into building the application. This chapter assists you in getting Ruby on Rails and its dependencies on your platform of choice, and then gives instruction for setting up your development environment. Once all of the pieces are in place they move to setting up your rails application, and how to get started with your first pages. They use rails generator to create the controllers and give you an idea of the default routing of a Rails application. The rest of the chapter spends some time building views and using embedded ruby to work with your templates. For the beginner to Ruby or Rails, this part is valuable for the rest of the application. They teach the basics of Ruby and introduce you to instance variables, hashes, and symbols. It isn't practical for them to cover everything, so they also give you direction on finding answers to questions that might arise. The first place to look is always the API. We have the basics down, we have created our application, generated some controllers, and put our navigation into place.
Modeling users
What good is a social networking site without any users? Here we are introduced to setting up our models in our application. This chapter touches on defining your schema through the use of migrations. You build the migration, run the migration, and then work within the model to create your validations. They spend some time with the validations and show you how to use the default helper methods or extend the validations to be more powerful and suit your needs. Now we have a place to store our users, lets move on to the process of letting them become part of the community.
Registering users
This chapter focuses on the process needed to allow a user to register to RailsSpace. We are introduced to some more Rails magic as we build the User controller and the views. We start first with the view of the registration form and learn how to use Rails helpers to generate our form fields and error messages. Next we look at the action that handles the response to the user. This involves the validation, flash error messages, and flash notifications. With the registration in place, we take a pause to look at something very important in any software development: testing.
Getting started with testing
Before we move any further we need to make sure things are responding as they should be. Testing things yourself may seem practical when the application is small, but as it expands testing proves to be extremely useful. We create tests for the database connection, our site controller, the registration process, and testing of the User model. Testing allows us to check all important aspects of our application. We can simulate the processes of a user and assure that we receive the proper response and that everything stays fine tuned. This chapter sets the foundation for the rest of the application as we expand and create new tests. We have tested everything is working as planned, now let's handle the process of logging in.
Logging in and out
Authenticating a user may seem simple at first glance, but there are often times steps that are overlooked in the process. This chapter attempts to cover all bases of making the login process painless. We learn how to setup the database for sessions and how to utilize them in our application. The sessions allow us to keep state of a user and their privileges. This also means that we need to protect our pages and some of our actions. They take the time to cover friendly URL forwarding, letting a user be directed back to any page after they login. Again, we run tests as we build more pieces onto the application. The end of the chapter is spent looking at the current code and refactoring to keep neat and tidy with the DRY principle. Just as with testing, this is also a very important part to the application and something the authors spend time doing with each and every piece of the application. We are also introduced to some more helpful Ruby nuances such as boolean methods and the bang! methods. A user has the ability to login, but we can take it one step further.
Advanced login
Users now have the ability to login. It is time to extend the login by allowing the application to remember the user. This chapter is spent on building the remember me functionality. This involves extending several aspects including the User model, the user session, and the authentication cookie stored in the browser. Since we are updating different aspects we take the time to extend our tests, assure our previous tests still work, and refactor some more of the code that we are building.
Updating user information
With login out of the way it is time to look at allowing users to interact with the website. The first part to this interaction is allowing them to update their details and information. This chapter discusses the process of allowing a user to change their email or update their password. The username is left untouched, as we will be creating a permalink with their username.
Our foundation is set. We have come a long way in just a few chapters, now it is time to extend our solid foundation.
Building a Social Network
Personal profiles
In the last chapter we allowed the user to update their email and password. Now we extend that to let the user create their own profile or spec. This allows a user to share all of their most intimate details one a single page. We look at building the user profile to be modular and utilize the same views for the public face and administrative face. We are introduced to some more rails helpers and some advanced routing techniques named routes. The user profile is in place, now it is time to create the pieces that allow all of your friends, teachers, aunts, and enemies to find you.
Community
The next few chapters will be spent building the central hub that will allow you to interact with the community as a whole. The first part addresses setting up the Community controller and setting up sample data to test our features with. Our first piece to the community controller is allowing you to browse users by an alphabetical index. This shows us some more options of the find method in ActiveRecord and how we can implement pagination and a summary in our results. Browsing by an alphabetical index is helpful, but lets move on to allow search and browsing by A/S/L.
Searching and browsing
Here we are introduced to plugins and using Ferret to help us with our search. As with the alphabetical listing we set it up to allow pagination within the results. We then setup a custom form to allow the user to search by age and sex. This utilizes the same views to return the results and allow pagination. Now we look at the location part. This is a little more advanced as it uses a GeoData database and a proximity search that allows you to find other users within a certain mileage of your current zip code. This concludes giving us all of the tools we need to find any information we need related to our users.
Avatars
What good is a name without a face? This chapter discusses several new aspects. The first is using a model that doesn't connect to a table in the database. The second is handling image uploads and resizing. We create the interface and allow for the user to upload, save, or delete their picture.
Email
This chapter introduces us to Active Mailer, an aspect of Rails that allows us to send emails. We will setup a model that extends Active Mailer, configure our server to send email, and create the necessary links to allow users to contact their friends. We create a double-blind email system that allows the users to contact each other without exposing their actual email address. Naturally, we add the methods that allow you to correspond with the user. Once it is all in place, we take a look at some new testing methods that allow us to simulate the sending of emails without filling our inboxes.
Friendships
Friendships live at the core of creating a social networking system. After all, the more friends you have the more popular you must be in real life! Again, we are introduced to some new modeling techniques in this chapter. In order for a user to be a friend with another user, we must create the relationship accordingly. This involves having a Friendship model that has the current user ID, and the friend ID. Using has_many :through we are able to recursively look through this table to keep track of the friendships and their statuses. As with everything else, we take the time at the end to test and refactor.
RESTful blogs
This chapter throws an advanced topic our way, that of creating RESTful URLs for our application. There is much to be...Read more›RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series) Overview
Ruby on Rails is fast displacing PHP, ASP, and J2EE as the development framework of choice for discriminating programmers, thanks to its elegant design and emphasis on practical results. RailsSpace teaches you to build large-scale projects with Rails by developing a real-world application: a social networking website like MySpace, Facebook, or Friendster.

Inside, the authors walk you step by step from the creation of the site's virtually static front page, through user registration and authentication, and into a highly dynamic site, complete with user profiles, image upload, email, blogs, full-text and geographical search, and a friendship request system. In the process, you learn how Rails helps you control code complexity with the model-view-controller (MVC) architecture, abstraction layers, automated testing, and code refactoring, allowing you to scale up to a large project even with a small number of developers.

This essential introduction to Rails provides

A tutorial approach that allows you to experience Rails as it is actually used
A solid foundation for creating any login-based website in Rails
Coverage of newer and more advanced Rails features, such as form generators, REST, and Ajax (including RJS)
A thorough and integrated introduction to automated testing

The book's companion website provides the application source code, a blog with follow-up articles, narrated screencasts, and a working version of the RailSpace social network.


Want to learn more information about RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Disassembling Code: IDA Pro and SoftICE Review

Disassembling Code: IDA Pro and SoftICE
Average Reviews:

(More customer reviews)
Are you looking to buy Disassembling Code: IDA Pro and SoftICE? Here is the right place to find the great deals. we can offer discounts of up to 90% on Disassembling Code: IDA Pro and SoftICE. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Disassembling Code: IDA Pro and SoftICE ReviewIf you don't know anything about what is a disassembler or a debugger, then you may find this book interesting. Personally, i bought it because i thought it would go in deep in IDA and softice. Unfortunately, the author cover both of those tools within 100 pages giving nothing more than a summary of commands. All the remaining content is about assembly (that is if you don't understand anything in the intel reference books), the PE format (studying PEDump and reading Matt Pietrek article would be better), some little cracking sessions (the free articles on the net are far enough for this purpose), some other tools like W32dasm and disassembling some sample windows programs.
Well, i am disappointed and still waiting for a good reference book about reverse engineering.Disassembling Code: IDA Pro and SoftICE OverviewThis book describes how software code analysis tools such as IDA Pro are used to disassemble programs written in high-level languages and recognize different elements of disassembled code in order to debug applications in less time. Also described are the basics of Assembly language programming (MASM) and the system and format of commands for the Intel microprocessor. Aspects of disassembling, analyzing, and debugging software code are considered in detail, and an overview of contemporary disassemblers and debuggers used when analyzing executable code is provided. The basics of working with these tools and their operating principles are also included, and emphasis is placed on analyzing software code and identifying the main structure of those languages in which they were written.

Want to learn more information about Disassembling Code: IDA Pro and SoftICE?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...