<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Talk%3AAlphanumeric_shellcode</id>
	<title>Talk:Alphanumeric shellcode - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Talk%3AAlphanumeric_shellcode"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Talk:Alphanumeric_shellcode&amp;action=history"/>
	<updated>2026-05-09T16:51:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Talk:Alphanumeric_shellcode&amp;diff=1146615&amp;oldid=prev</id>
		<title>imported&gt;Tom.Reding: -redundant class param</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Talk:Alphanumeric_shellcode&amp;diff=1146615&amp;oldid=prev"/>
		<updated>2025-02-14T16:40:47Z</updated>

		<summary type="html">&lt;p&gt;-redundant class param&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{WikiProject banner shell|&lt;br /&gt;
{{WikiProject Computer security|importance=mid|computing-importance=low}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Untitled ==&lt;br /&gt;
&lt;br /&gt;
Description of what the program does:&lt;br /&gt;
&lt;br /&gt;
%## = and ax, ## (remember that x86 uses [[little endian]] order!)&amp;lt;br&amp;gt;&lt;br /&gt;
-## = sub ax, ##&amp;lt;br&amp;gt;&lt;br /&gt;
P = push ax (search for &amp;quot;computer stack&amp;quot; or something)&amp;lt;br&amp;gt;&lt;br /&gt;
X = pop ax&amp;lt;br&amp;gt;&lt;br /&gt;
\ = pop sp&amp;lt;br&amp;gt;&lt;br /&gt;
T = push sp&amp;lt;br&amp;gt;&lt;br /&gt;
A = inc cx&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. The program calculates the value of &amp;quot;50 bytes after where the algorithm ends&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
2. It sets the stack pointer to point to that location&amp;lt;br&amp;gt;&lt;br /&gt;
3. It calculates a [[hexadecimal]] C3C3 and places it in the AX-cpu register. (Sort of like a very-very-fast variable)&amp;lt;br&amp;gt;&lt;br /&gt;
4. It pushes (overwrites) &amp;quot;C3C3&amp;quot; to the stack&amp;lt;br&amp;gt;&lt;br /&gt;
5. It jumps to the written code.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason why it has to calculate the values is that it is impossible to store this information in alphanumeric writeable ASCII. The values are simply way out of the reach for anything that you can write with an ordinary keyboard.&lt;br /&gt;
&lt;br /&gt;
C3 means &amp;quot;RET&amp;quot; in x86 [[assembly language]]. It returns back to the previous routine/function by popping a new IP (Instruction Pointer) off the stack.&lt;br /&gt;
&lt;br /&gt;
The reson why I choose to rewrite the code first after 50 bytes is because of the [[Prefetch Input Queue]]. Kind of complicated. The CPU reads its codes some cycles before it executes them, so, well, i had to be sure it wasnt allready loaded into the PIQ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0912:0100 252121        AND     AX,2121      ; %!!&lt;br /&gt;
0912:0103 254242        AND     AX,4242      ; %BB   .. null ax-register (register = very very fast variable hardcoded in the cpu)&lt;br /&gt;
0912:0106 2D747A        SUB     AX,7A74&lt;br /&gt;
0912:0109 2D2121        SUB     AX,2121&lt;br /&gt;
0912:010C 2D2563        SUB     AX,6325      ; zero minus large numbers equals 0x146 (the program starts at 0x100 + code + 50 bytes)&lt;br /&gt;
0912:010F 50            PUSH    AX&lt;br /&gt;
0912:0110 5C            POP     SP           ; ser the stack pointer to this location (*sp = 0x146 in C&amp;#039;ish)&lt;br /&gt;
0912:0111 252121        AND     AX,2121&lt;br /&gt;
0912:0114 254242        AND     AX,4242      ; null ax-register again&lt;br /&gt;
0912:0117 2D3D3C        SUB     AX,3C3D      : 0 - 0x3D3C = 0xC3C3 (remember little endian byte order)&lt;br /&gt;
0912:011A 50            PUSH    AX           ; *sp = 0xC3C3 ... C3 = &amp;quot;RET&amp;quot; in x86 assembly, meaning &amp;quot;return from function&amp;quot; or &amp;quot;}&amp;quot; in Cish.&lt;br /&gt;
0912:011B 7528          JNZ     0145         ; &amp;quot;goto *sp&amp;quot;, think of it as the last &amp;quot;}&amp;quot; in the main-function&lt;br /&gt;
(...)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
%!!%BB-tz-!!-%cP\%!!%BB-=&amp;lt;Pu(&lt;br /&gt;
&lt;br /&gt;
== Links to alphanumeric/unicode shellcode articles ==&lt;br /&gt;
&lt;br /&gt;
Even though the topics of these articles mention &amp;#039;&amp;#039;shellcode&amp;#039;&amp;#039;, the information applies to alphanumeric code in general. They are more relevant to alphanumeric code then they are to shellcode.  [[User:SkyLined|SkyLined]] ([[User talk:SkyLined|talk]]) 08:46, 10 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Alphanumeric vs printable ==&lt;br /&gt;
&lt;br /&gt;
This article states that alphanumeric code uses any printable character. This is not true; alphanumeric code uses only 0-9A-Za-z (hence the name alphanumeric). &amp;#039;&amp;#039;Printable&amp;#039;&amp;#039; code uses any printable character (charcodes 0x20-0x7F). [[User:SkyLined|SkyLined]] ([[User talk:SkyLined|talk]]) 08:46, 10 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;m planning on rewriting and expanding this article. Here&amp;#039;s what I think should be in it:&lt;br /&gt;
 1) alphanumeric / printable code&lt;br /&gt;
   1.1) Techniques &lt;br /&gt;
     1.2.1) individual instructions create code, which is executed (rix, others?)&lt;br /&gt;
     1.2.2) decoder loop decodes code, which is executed (Alpha2, others?)&lt;br /&gt;
   1.2) uppercase/lowercase&lt;br /&gt;
 2) Platform specific sections:&lt;br /&gt;
   2.1) IA-32&lt;br /&gt;
     2.1.1) The GetPC problem&lt;br /&gt;
     2.1.2) uppercase/lowercase&lt;br /&gt;
   Other platforms?&lt;br /&gt;
 3) Semi-alphanumeric/printable code:&lt;br /&gt;
   3.1) toLowercase / toUppercase safe code&lt;br /&gt;
   3.2) unicode safe code&lt;br /&gt;
   3.3) Ascii art code&lt;br /&gt;
- [[User:SkyLined|SkyLined]] ([[User talk:SkyLined|talk]]) 18:49, 16 March 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Removed BSCS Reference ==&lt;br /&gt;
&lt;br /&gt;
I removed this:&lt;br /&gt;
:In [[BSCS]] the alphanumeric character have meaning: &amp;quot;a&amp;quot;-&amp;quot;z&amp;quot;, &amp;quot;A&amp;quot;-&amp;quot;Z&amp;quot;, &amp;quot;0&amp;quot;-&amp;quot;9&amp;quot;. No special characters are included.&lt;br /&gt;
because there&amp;#039;s nothing to explain what it means, and [[BSCS]] is an irrelevant link.  Also it duplicates later content. [[User:Johantheghost|johantheghost]] ([[User talk:Johantheghost|talk]]) 13:54, 6 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
The last link &amp;quot;Shellcoding for Linux and Windows — Printable Shellcode: Explanation and tutorial&amp;quot; doesn&amp;#039;t strike me as particularly relevant or informative. It also doesn&amp;#039;t seem to cover anything that isn&amp;#039;t already covered in more detail in the other links. Because a lot of the links are pointing to my site, I&amp;#039;m worried that I will appear biased towards my own links. Can somebody else confirm the link isn&amp;#039;t useful and remove it? &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;— [[User:SkyLined|&amp;lt;tt style=&amp;quot;text-shadow:#80FF80 0.1em 0.1em 0.2em; color:#008000;&amp;quot;&amp;gt;SkyLined&amp;lt;/tt&amp;gt;]] &amp;lt;small&amp;gt;([[User_talk:SkyLined|talk]])&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt; 23:22, 26 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== External links modified ==&lt;br /&gt;
&lt;br /&gt;
Hello fellow Wikipedians,&lt;br /&gt;
&lt;br /&gt;
I have just modified 2 external links on [[Alphanumeric shellcode]]. Please take a moment to review [[special:diff/814570212|my edit]]. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit [[User:Cyberpower678/FaQs#InternetArchiveBot|this simple FaQ]] for additional information. I made the following changes:&lt;br /&gt;
*Added archive https://web.archive.org/web/20110716082815/http://skypher.com/wiki/index.php?title=X86_alphanumeric_opcodes to http://skypher.com/wiki/index.php?title=X86_alphanumeric_opcodes&lt;br /&gt;
*Added archive https://web.archive.org/web/20110716082850/http://skypher.com/wiki/index.php?title=X64_alphanumeric_opcodes to http://skypher.com/wiki/index.php?title=X64_alphanumeric_opcodes&lt;br /&gt;
&lt;br /&gt;
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.&lt;br /&gt;
&lt;br /&gt;
{{sourcecheck|checked=false|needhelp=}}&lt;br /&gt;
&lt;br /&gt;
Cheers.—[[User:InternetArchiveBot|&amp;#039;&amp;#039;&amp;#039;&amp;lt;span style=&amp;quot;color:darkgrey;font-family:monospace&amp;quot;&amp;gt;InternetArchiveBot&amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;#039;]] &amp;lt;span style=&amp;quot;color:green;font-family:Rockwell&amp;quot;&amp;gt;([[User talk:InternetArchiveBot|Report bug]])&amp;lt;/span&amp;gt; 16:39, 9 December 2017 (UTC)&lt;/div&gt;</summary>
		<author><name>imported&gt;Tom.Reding</name></author>
	</entry>
</feed>