Click here to Skip to main content
15,889,335 members

ThatsAlok - Professional Profile



Summary

LinkedIn      Blog RSS
70,750
Author
24,919
Authority
6,899
Debator
707
Editor
86
Enquirer
3,971
Organiser
3,031
Participant
He used to have biography here Smile | :) , but now he will hire someone (for free offcourse Big Grin | :-D ), Who writes his biography on his behalf Smile | :)

He is Great Fan of Mr. Johan Rosengren (his idol),Lim Bio Liong, Nishant S and DavidCrow and Believes that, he will EXCEL in his life by following there steps!!!

He started with Visual C++ then moved to C# then he become language agnostic, you give him task,tell him the language or platform, he we start immediately, if he knows the language otherwise he quickly learn it and start contributing productively

Last but not the least, For good 8 years he was Visual CPP MSMVP!

Groups

Below is the list of groups in which the member is participating

The CodeProject Authors are a group of talented technical writers who create articles and whitepapers for some of the biggest companies in the industry. Under our ContentLab.io unit we reach out to those who need content written but lack the time, expertise or resources to complete the work.

Looking to earn a little extra and get connected to, and be featured on, the websites of the companies whose technologies you know and love? If you can write well and are efficient with time then send us an email at info@contentlab.io.
This is a Collaborative Group
This member has Member status in this group

90 members
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
This is a Collaborative Group
This member has Member status in this group

136 members
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
This is a Collaborative Group
This member has Member status in this group

41 members

Reputation

Weekly Data. Recent events may not appear immediately. For information on Reputation please see the FAQ.

Privileges

Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege. The member types column lists member types who gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilver
Bypass spam checks when posting contentsilversilversilversilversilversilvergoldSubEditor, Mentor, Protector, Editor
Store personal files in your account areaplatinumplatinumSubEditor, Editor
Have live hyperlinks in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Have the ability to include a biography in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Edit a Question in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Edit an Answer in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Delete a Question in Q&AYesSubEditor, Protector, Editor
Delete an Answer in Q&AYesSubEditor, Protector, Editor
Report an ArticlesilversilversilversilverSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubEditor, Mentor, Protector, Editor
Edit other members' articlesSubEditor, Protector, Editor
Create an article without requiring moderationplatinumSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending QuestionProtector
Approve/Disapprove a pending AnswerProtector
Report a forum messagesilversilverbronzeProtector, Editor
Approve/Disapprove a pending Forum MessageProtector
Have the ability to send direct emails to members in the forumsProtector
Create a new tagsilversilversilversilver
Modify a tagsilversilversilversilver

Actions with a green tick can be performed by this member.


 
GeneralRe: New Job! Pin
toxcct3-Aug-05 5:05
toxcct3-Aug-05 5:05 
GeneralRe: New Job! Pin
ThatsAlok4-Aug-05 2:46
ThatsAlok4-Aug-05 2:46 
GeneralRe: New Job! Pin
Ankit Aneja14-Aug-05 3:15
Ankit Aneja14-Aug-05 3:15 
GeneralRe: New Job! Pin
ThatsAlok16-Aug-05 19:51
ThatsAlok16-Aug-05 19:51 
GeneralRe: New Job! Pin
G Haranadh15-Sep-05 21:18
G Haranadh15-Sep-05 21:18 
GeneralRe: New Job! Pin
ThatsAlok15-Sep-05 21:56
ThatsAlok15-Sep-05 21:56 
GeneralRe: New Job! Pin
Eytukan27-Dec-05 2:55
Eytukan27-Dec-05 2:55 
GeneralMr Toby Secret Code :) Pin
ThatsAlok10-Jun-05 19:13
ThatsAlok10-Jun-05 19:13 
ThatsAlok wrote at 0:03 11 Jun '05
8bc7c0ec02c0e404c0cc0680f7018827ebee
What does this Means


Mr Toby replied 0:47 11 Jun '05
You will be sorry that you asked Smile | :)

This is actually the machine code of a program I wrote a long time ago. This is whole program and it was basically in "TINY" .COM format. The .COM format is a raw binary format that contains no headers and only raw binary code and data. The .COM is limited to 64k of memory - sizeof PSP - your stack.

The PSP was the first 256 bytes of the segment and at offset 100h (256) your raw binary code would be loaded. This file format's elegance of having no header information made it a perfect candidate for "lowest bytes" competitions. If you used to do the very small ones you know that you would ask what rules would need to be applied to the competition, such as:

1. Can I print garbage?
2. Can I assume certain registry values?
3. Can I use x or y interrupt?
4. Can I use this or that trick?

So, in MS DOS you could assume certain values of registers on entry. These were:

DI = FFFEh
SI = 100h
AX = 0
BX = 0
CX = 00FFh


The binary code that is in my signature looks like this in 16 bit:

8BC7          MOV     AX,
DIC0EC02      SHR     AH, 
2C0E404       SHL     AH,
4C0CC06       ROR     AH,
680F701       XOR     BH,
018827        MOV     [BX],
AHEBEE        JMP     0100


"JMP 100" means jump back to the top of this program since 100h is the starting offset. So, without further evaluation of what this code is doing it looks like it's an infinite loop.

Let's examine what is going on though.

1. MOV AX, DI ; AX = DI = FFFEh
2. SHR AH, 2 ; AH = FF, AH>>2 = 6Fh
3. SHL AH, 4 ; AH = 6F, AH<<4 = F0h
4. ROR AH, 6 ; AH = F0, AH Rotate 6 = C3h
5. XOR BH, 1 ; BX = 0, BX = 100h
6. MOV [BX], AH ; BX = 100h, Ah = C3h, [100h] = C3h
7. Jmp to 100h (256)

So, what happens is that we take FFFEh into AX then we take the top half and do a few funny tricks just to confuse and eventually rotate the result into C3h.

Then what happens is the high byte of BX is set to 1 through the 0 xor 1 = 1 which makes BX = 256. We then move the value of AH into the memory location of 100h.

The final jump goes to 100h which now contains the value of C3h. You could say that if the cache isn't flushed it would contain the old value of MOV AX, DI however the JMP instruction should have flushed it.

In any case again we have another trick in that the Stack is said to be initialized to 0. C3h = RET instruction or Return which takes the address on the stack and jumps to that location. In this case, it's 0.

What's at 0? The PSP is at 0 and the first two bytes of the PSP is CD20 or "INT 20h" which was the original method of exiting a .COM application (preceeded by the .EXE method of INT 21h with function 4fh).

So that's it. The code is just self modifying code that does nothing but return.

On a side note, the extension of .COM and .EXE does not matter. The first two bytes of a .EXE (LE, NEHDR or PE format) are "MZ". The loader ignores ".COM" and ".EXE" and looks for these two bytes. If it finds them it attempts to load as a .EXE if not, then .COM. The only difference the .COM and .EXE extensions made was the loader looks for .COM first then .EXE. So if two applications named "x.com" and "x.exe" were in the same directory and you typed "x", "x.com" would be the only one executed. And it could even be in .EXE format!


"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow


cheers,
Alok Gupta
GeneralRe: Mr Toby Secret Code :) Pin
toxcct29-Jun-05 1:19
toxcct29-Jun-05 1:19 
GeneralRe: Mr Toby Secret Code :) Pin
ThatsAlok29-Jun-05 1:23
ThatsAlok29-Jun-05 1:23 
GeneralRe: Mr Toby Secret Code :) Pin
ThatsAlok29-Jun-05 1:24
ThatsAlok29-Jun-05 1:24 
GeneralRe: Mr Toby Secret Code :) Pin
toxcct29-Jun-05 1:27
toxcct29-Jun-05 1:27 
GeneralRe: Mr Toby Secret Code :) Pin
ThatsAlok29-Jun-05 1:35
ThatsAlok29-Jun-05 1:35 
GeneralRe: Mr Toby Secret Code :) [edited] Pin
toxcct29-Jun-05 1:42
toxcct29-Jun-05 1:42 
GeneralRe: Mr Toby Secret Code :) [edited] Pin
ThatsAlok29-Jun-05 1:55
ThatsAlok29-Jun-05 1:55 
GeneralFOLD WITH US Pin
ThatsAlok22-May-05 20:43
ThatsAlok22-May-05 20:43 
Generalhi Guptha Pin
sreejith ss nair22-Jun-05 23:05
sreejith ss nair22-Jun-05 23:05 
GeneralRe: hi Guptha Pin
ThatsAlok22-Jun-05 23:25
ThatsAlok22-Jun-05 23:25 
GeneralRe: hi Guptha Pin
sreejith ss nair22-Jun-05 23:36
sreejith ss nair22-Jun-05 23:36 
GeneralRe: hi Guptha Pin
ThatsAlok22-Jun-05 23:39
ThatsAlok22-Jun-05 23:39 
GeneralRe: hi Guptha Pin
sreejith ss nair23-Jun-05 0:23
sreejith ss nair23-Jun-05 0:23 
GeneralRe: hi Guptha Pin
ThatsAlok23-Jun-05 1:11
ThatsAlok23-Jun-05 1:11 
GeneralRe: FOLD WITH US Pin
G Haranadh15-Sep-05 23:46
G Haranadh15-Sep-05 23:46 
GeneralRe: FOLD WITH US Pin
ThatsAlok16-Sep-05 21:18
ThatsAlok16-Sep-05 21:18 
GeneralLooking for most Voted out Message Pin
ThatsAlok10-Feb-05 23:43
ThatsAlok10-Feb-05 23:43 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.