Thursday, February 17, 2011

How to Crack a Software

By Magesh Kumar   Posted at  3:18 AM   How to Crack a Software No comments
Reverse Engineering Tools


Welcome to my reworked tools page. Here you will find a combination of archives and direct links to many of the great reversing tools that most reverse engineers use. If you are just starting out, you could do a lot worse than download all of the materials I've made available here (I apologise if it is rarely updated). Many of the files are compressed 'scene style', i.e. RAR inside ZIP, you'll therefore need WinZip & WinRAR to uncompress them. I don't take any responsibility for the tools here, so be sure you read the instructions very carefully.
Some readers have asked why I always rip .nfo files from downloads. The reason I do so is that I'm guessing (rightly or wrongly) that most of my readers aren't the slightest bit interested in the .nfo file unless it actually contains something useful (usually its just a long list of egotistical greetings / members etc. that frankly not that many people seem to care about and causes me all sorts of legal hassles). Should you find bad URL's and I'm sure you probably can, please send me just 1 e-mail and see what happens in a week or so, although link fixing is important from your viewing perspective it is seldom a priority for me, you can probably source that which you require elsewhere. If you really can't find a particular tool then maybe someone on one of the IRC channels can help.


Assemblers
MASM32 v8 - Maintained by hutch-- and Iczelion, this compilation is one of the best ready-made Win32 assembly resources you can download.
Turbo Assembler v5.0 - Full version of Borland's TASM (original installation disks). You'll need this to assemble and link most of the assembly language source codes on my site. Disk 1Disk 2Disk 3. TASM v5.0r patch (minor update 152k).
Turbo Assembler v5.3 & Resource Compiler v5.4 - Updated files taken from Borland Developer Studio (1.31Mb's).


Decompilers / Disassemblers
BDASM v2.5 - Lightweight disassembler, an alternative to W32Dasm (1.84Mb's).
DeDe 3.50.02.1619 - Delphi decompiler by DaFixer.
Eltima Flash Decompiler v2.9.9.360 - Flash Decompiler (6.58Mb's).
InstallShield 6 Tools - Further continuation of fOSSiL's great i5comp (121k).
Interactive Disassembler Pro (IDA) v4.30a - Masterpiece from Datarescue (32Mb's) (since this link seems to disappear or be actively removed, I suggest you make note of the name 'ida430a.rar' for future searches ;-) ).
Interactive Disassembler Pro (IDA) v4.51.770 - A later version of IDA (29.2Mb's).
Interactive Disassembler Pro (IDA) v4.9 SDK - for making your own plugins (6.37Mb's).
isDcc v1.22 - Very capable InstallShield script decompiler by Andrew De Quincy.
palmdeMON - Carpathia's experimental Palm Pilot disassembler, abandoned in 2003 or so.
V-Communications Sourcer 7 - Old but worthy sourcering tool which deserves a place in any reversers archive (986k - 1,010,214 bytes).
V-Communications Sourcer 8 - Latest version (1.62Mb).
VB Decompiler Pro 3.4 - GPcH Soft's Decompiler (2.12Mb).
Visual Basic v3.0 Decompiler - from DoDi (1.28Mb).
W32Dasm v8.93 - Good disassembler for starting out, superseeded by IDA a while back.


Debuggers
Debugger Archive - MeltICE, SoftICE v1.54 (Windows 3.1), SoftICE v2.62 (DOS), SoftICE v2.8 (DOS), SoftICE ATI Driver Fix (621k - 636,249 bytes).
NuMega SoftICE v4.05 (Windows 9x) (filename si405w9x.zip) & NuMega SoftICE v4.05 (NT) - (filename SI405WNT.zip) Debugger of choice, alternative link here (NT).
NuMega SoftICE for Windows Millennium Beta (120k).
OllyDbg - 32-bit code level debugger (useful for environments where SoftICE doesn't perform so well).
SoftICE Cover v1.0 - Tool for hiding SoftICE against well-known anti-debugging tricks (9.61Mb's).
Syser v1.93 - Very capable and recent SoftICE alternative (3.55Mb).
TRW 2000 v1.22 - LiuTaoTao's capable (if slightly buggy) SoftICE alternative (453k).


Resource Editors
Borland Resource Workshop v4.5 - The original installation disks for this very good (if aging) resource compiler/editor.
Resource Hacker - Freeware resource editor.
Symantec ResourceStudio v1.0 16/32 bit - Alternative to BRW.


Reference
HelpPC v2.10 - Invaluable quick ASM reference.


Spying
APISpy32 v2.5 - A poor man's BoundsChecker, of limited use (255k).
File Monitor, Registry Monitor & VxD Monitor - Capable file, registry and vxd monitoring tools with source code by Mark Russinovich & Bryce Cogswell.
Forms Spy - A hard to find tool for spying on applications using forms, e.g. VB and Delphi programs (129k).
OpenTrap v1.2 - Another recommended file system activity monitor for Windows 95/8 (323k).
Win-eXpose-I/O v3.00 - A very useful I/O monitoring tool (1.81Mb).
Win-eXpose-Registry v1.00 - A capable registry monitoring tool (1.12Mb).

Useful Tools

Byte Parser - Tool written by me for parsing dumps into text (well I think its useful anyway ;-) ) (16k).
FrogsICE - Useful anti-debugging tool for Win9x/WinME (please note his page is MSIE hostile).
Hex Workshop v3.0x
 - HEX editor from Breakpoint Software.

Hiew - Another great HEX editor from Sen.
IceDump
 - The tool that NuMega forgot with a neverending array of options, study the source code, for all common versions of SoftICE 95 & NT, highly recommended.

j0b's DeShrink v1.6 - Latest version always available here, j0b has now fixed the problems with Shrinker v3.4.
ProcDump v1.6.x - The last ever version of G-RoM, lorian & Stone's very capable OO unpacker.
Snippet Creator v1.05 build 2 - Iczelion's handy programming tool.
WinManage v1.0 - 605k.














-- Chapter 4-- Adding Images

By Magesh Kumar   Posted at  3:07 AM   HTML No comments



Adding an image is a simple way to make your website more attractive.
For this exercise find any image you like, and put it into the same folder as the webpage. Rename your image to "myimage"

We are now going to insert the image underneath our text.
Once again open up your HTML file in notepad so you can see the code.
This is what the code is going to look like:
<img src="myimage.gif"></a>
Notice that my image file is called "myimage.gif", your file may be "myimage.jpg" or "myimage.bmp" depending on how you saved your picture. To find out what type of picture it is right click on the picture and select "Properties".
Once inserted your code will look like this:
<html>
<head>
<title>My Own Home Page </title>
</head>
<body>
<body bgcolor= "blue">
<font color="Red">
<H1> I am Your-Name and this is my web Page!</H1>
<img src="myimage.gif"></a>
</font>
</body>

IMPORTANT TIPS: Most websites will store their images in a seperate folder called "images".
To show a picture from the images folder the code would look like this:
<img src="/images/myimage.gif"></a>
You could try this now by creating a folder called images in the folder where your HTML file is saved. Here is an illustration:





-- Chapter 3 -- Adding colour

By Magesh Kumar   Posted at  2:54 AM   HTML No comments



When you create a web page you will want to use different background and text colour's and to add images. This makes the site more attractive to visitors and generally makes the website look better. Take care not to make the text and background colour the same!

In this excercise we will change the background colour of your website you created in Chapter 2, to blue.
To do this you would add the following HTML code into the body of your text file. (To open your first website as a text file and not HTML, open the HTML file and select "View>Source"):
<body bgcolor = "#0000FF">
Notice how instead of saying <body bgcolor = blue> We have used some strange looking code.
Dont worry this is called "Hexadecimal colour" and can be used for inserting complex colours into your website.
Click HERE for a full list of colours and their Hexadecimal values.
If you are finding all of these different colour codes confusing dont worry!
As well as using the Hexadecimal method, you can also use good old fasioned English! Meaning that placing the following code into your HTML file would have the exact same effect:
<body bgcolor = "blue">

When inserted into your code, the code should look like this:
<html>
<head>
<title>My Own Home Page </title>
</head>
<body>
<body bgcolor= "blue">
<H1> I am Your-Name and this is my web Page!</H1>
</body>
Test your file by saving it, remember to save it as "index.html" and make sure you slect "All Files" from the save as type box.
Your website should now look something like this:




Now that we have our background colour sorted out, we can now alter the text colour.
We go about doing this in the same way. This is the code we need to insert into our webpage:

<font color="Red">Text that you want to make red goes here</font>
Notice that you must put </font> after the text has ended. If you didnt insert the </font> then your entire document would have the text as red. This isnt to important for now but if you ever have more than one text colour on a page this may become a problem.
Here is how your code should now look:
<html>
<head>
<title>My Own Home Page </title>
</head>
<body>
<body bgcolor= "blue">
<font color="Red">
<H1> I am Your-Name and this is my web Page!</H1>
</font>
</body>

IMPORTANT TIP: A common error when coding with colours and HTML in general are simple spelling mistakes.
Remember that when typing "color" it is the american spelling, make sure you dont use the english spelling "colour" or your HTML wont work.
Now lets move onto Chapter 4 and look at adding images

-- Chapter 2 -- Your first code

By Magesh Kumar   Posted at  2:52 AM   HTML No comments



HTML has two sections, the "Head" section and the "Body" section.
The head section is where the information about the web page is put for the browser. This has nothing to do with the heading that you want to see on your web page.
Things that can be stored in the head section include Keywords for search engines or the title of your webpage
The body section is where the web page is coded. This is where you put the information for your web page.

We are now going to create our very own webpage, for now we are going to create a simple page telling people your name.
Please follow these instructions:
  1. Create a new folder so you have somewhere to save your website, call this folder anything you wish, this is where all pages and images for your website will be saved.
  2. Open notepad and type the following code, you may change the code in yellow to suit your needs:

    Type the following code into NotePad

    <html>
    <head>

    <title>My Own Home Page </title>
    </head>

    <body>
    <H1> I am Your-Name and this is my web Page!</H1>
    </body>

    </html>
Thats it! You have just coded your first webpage. Now save the notepad file by selecting "Save as" (make sure you save the file in the folder you have just created) 





In the filename box type "index.html" and from the "Save as type" box select "All Files"
Then click "Save"


You are now ready to view your first webpage, navigate to the folder where you saved the file, double click on it and you will see your first webpage. It should look something like this:



Now we have created your first page, lets go to chapter 3 and look at colours!






-- Chapter 1 -- What is HTML?

By Magesh Kumar   Posted at  2:44 AM   HTML No comments


HTML stands for "Hyper Text Markup Language"
HTML is the bricks and mortar of the WWW. Without HTML the World Wide Web could not have become as important as it is today.
HTML is a document formatting language common the all computers on the WWW. html permits cross platform communication between Macs, Apples, SUNs, PCs and others to view a document in a similar way.
Every webpage that you visit uses HTML in some way, you can view the HTML code behind a website in Internet Explorer by selecting: View>Source
Next we are going to look at Chapter 2 - Your first code

SlidingDrawer

By Magesh Kumar   Posted at  2:36 AM   Android No comments

Unlike most other Android containers, SlidingDrawer moves, switching from a closed to an open position. This puts some restrictions on which container holds the SlidingDrawer. It needs to be in a container that allows multiple widgets to sit atop each other. RelativeLayout and FrameLayout satisfy this requirement; FrameLayout is a container purely for stacking widgets atop one another. On the flip side, LinearLayout does not allow widgets to stack (they fall one after another in a row or column), and so we should not have a SlidingDrawer as an immediate child of a LinearLayout.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="#FF4444CC"
              >
       <SlidingDrawer
              android:id="@+id/drawer"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:handle="@+id/handle"
              android:content="@+id/content">
              <ImageView
                    android:id="@id/handle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/tray_handle_normal"
              />
              <Button
                    android:id="@id/content"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:text="I'm a SlidingDrawer!"
              />
       </SlidingDrawer>
</FrameLayout>
The SlidingDrawer should contain two things:
  • A handle, frequently an ImageView or something along those lines, such as the one used here, pulled from the Android open source project.
  • The contents of the drawer itself, usually some sort of container, but a Button in this case.





TabWidget

By Magesh Kumar   Posted at  2:33 AM   Android No comments




A TabWidget offers the ability to easily draw an interface that uses tabs to navigate between different views. It displays a list of tab labels representing each page in the parent's tab collection. The container object for this widget is TabHost. When the user selects a tab, this object sends a message to the parent container, TabHost, to tell it to switch the displayed page. We typically won't use many methods directly on this object. The container TabHost is used to add labels, add the callback handler, and manage callbacks. We might call this object to iterate the list of tabs, or to tweak the layout of the tab list, but most methods should be called on the containing TabHost object.
Here is the layout we're using in this example:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/tabhost"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">
       <LinearLayout
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
              <TabWidget android:id="@android:id/tabs"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"/>
              <FrameLayout android:id="@android:id/tabcontent"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent">
                    <AnalogClock android:id="@+id/tab1"
                           android:layout_width="fill_parent"
                           android:layout_height="fill_parent"
                           android:layout_centerHorizontal="true"/>
                    <DigitalClock android:id="@+id/tab2"
                           android:layout_width="fill_parent"
                           android:layout_height="fill_parent"
                           android:layout_centerHorizontal="true"/>
                    <Button android:id="@+id/tab3"
                           android:layout_width="fill_parent"
                           android:layout_height="fill_parent"
                           android:text="A do-nothing button"/>           
              </FrameLayout>
       </LinearLayout>
</TabHost>
The TabWidget and FrameLayout are immediate children of the TabHost, and the FrameLayout itself has children representing the various tabs. In out case, there are three tabs: a analog clock, a digital clock, and a button.
Our Java code needs to tell the TabHost which views represent the tab content and what the tab buttons should look like. This is all wrapped up in TabSpec objects. We get a TabSpec instance from the host via newTabSpec(), fill it our, and then add it to the host in the proper sequence.
TabSpec has two key methods:
  • setContent() 
    Indicated what goes in the tab content for this tab, typically the android:id of the view we want shown when this tab is selected.
  • setIndicator() 
    Sets the caption for the tab button and, in some flavors of this method, supplies a
     Drawable to represent the icon for the tab.
Note that we must call setup() on the TabHost before configuring any of these TabSpec objects. The call to setup() is not needed if we're using the TabActivity base class for our activity.
Here is our Java code:
package com.bogotobogo.TabWidget;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TabHost;

public class TabWidget extends Activity {
       @Override
       public void onCreate(Bundle icicle) {
              super.onCreate(icicle);
              setContentView(R.layout.main);

              TabHost tabs=(TabHost)findViewById(R.id.tabhost);
             
              tabs.setup();
             
              TabHost.TabSpec spec=tabs.newTabSpec("tag1");
             
              spec.setContent(R.id.tab1);
              spec.setIndicator("Analog Clock");
              tabs.addTab(spec);
      
              spec=tabs.newTabSpec("tag2");
              spec.setContent(R.id.tab2);
              spec.setIndicator("DigitalClock");
              tabs.addTab(spec); 
             
              spec=tabs.newTabSpec("tag3");
              spec.setContent(R.id.tab3);
              spec.setIndicator("Button");
              tabs.addTab(spec);
       }
}
We find our TabHost using findViewById() method, and then we call setup(). Then we get a TabSpec via newTabSpec(), supplying a tab. Given the spec, we call setContent() and setIndicator(), and then call addTab() back on the TabHost to register the tab as available for use. Finally, we can choose which tab is the one to show via setCurrentTab(), providing the 0-based index of the tab.
The results are shown below.

Back to top ↑
Connect with Us

What they says

© 2013 MaGeSH 2 help. WP Mythemeshop Converted by BloggerTheme9
Blogger templates. Proudly Powered by Blogger.