Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
>>> 0b1010printf("%d\n", 0b1010);>>> 0o12
10 B 0 B 0 C A
1011 0000 1011 0000 1100 1010>>> 0xa
10
>>> 0x0A
10
>>> 0x000000000000000000000a
10
>>> 0xA
10>>> 'Execute isto na console do Python!'#include <stdio.h>
int main(void) {
printf("Compilar com o Visual Studio e executar!\n");
}>>> -3 + 1
-2>>> 0b11110110
246>>> import ctypes
>>> ctypes.c_byte(0b11110110).value
-10>>> chr(97)
'a'>>> b'menteb.in'.hex(' ')
'6d 65 6e 74 65 62 2e 69 6e'0xa = 1010
12 = 1100
-------
1000>>> 0b1010 & 12
8
>>> 10 & 12
8
>>> 0xa & 0b1100
8
>>> 0o12 & 0xc
8
>>> 0xa & 0xc
88 = 1000
5 = 0101 (perceba o zero à esquerda para facilitar o cálculo)
------
11019 = 1001
5 = 0101
------
1101 1000 0101
0101 0101
------ ------
1101 0000>>> x = 90
>>> x = x ^ x
>>> x
0>>> x = 8
>>> y = 5
>>> x = x ^ y
>>> y = x ^ y
>>> x = x ^ y
>>> x
5
>>> y
8x = 0b1000 # 8 em decimal
y = 0b0101 # 5 em decimal
x = x ^ y # 0b1101
y = x ^ y # resulta em 0b1000 (já é o valor original de x)
x = x ^ y # resulta em 0b0101 (valor original de y)>>> x = 2025
>>> x ^ 0x42
1963
>>> 1963 ^ 0x42
20250111 # 7 em decimal
1 # Deslocar uma vez para a esquerda (SHL)
----
1110 # 14>>> x = 7
>>> x = x << 1
>>> x
14
>>> x = x << 1
>>> x
28
>>> x = x << 1
>>> x
56>>> 7 << 3
56>>> 0b111 >> 1
3 00000101 # 5 em decimal
1 # ROL com 1
----------
00001010 # 10 em decimal 10000101 # 133 em decimal
1 # ROL com 1
----------
00001011 # 11 em decimal>>> ~4
-5>>> 'mentebinária'.encode('utf-8').hex(' ')
'6d 65 6e 74 65 62 69 6e c3 a1 72 69 61'>>> '💚'.encode('utf-8').hex(' ')
'f0 9f 92 9a'>>> b'mente'.hex(' ')
'6d 65 6e 74 65'>>> 'mente'.encode('utf-16').hex(' ')
'ff fe 6d 00 65 00 6e 00 74 00 65 00'>>> 'mente'.encode('utf-16-le').hex(' ')
'6d 00 65 00 6e 00 74 00 65 00'>>> 'mente'.encode('utf-16-be').hex(' ')
'00 6d 00 65 00 6e 00 74 00 65'>>> '💚'.encode('utf-16-le').hex(' ')
'3d d8 9a dc'>>> 'binária'.encode('iso-8859-1').hex(' ')
'62 69 6e e1 72 69 61'>>> 'binária'.encode('utf-16-le').hex(' ')
'62 00 69 00 6e 00 e1 00 72 00 69 00 61 00'>>> 'mb'.encode('utf-32').hex(' ')
'ff fe 00 00 6d 00 00 00 62 00 00 00'>>> 'mb'.encode('utf-32-le').hex(' ')
'6d 00 00 00 62 00 00 00'>>> 'mb'.encode('utf-32-be').hex(' ')
'00 00 00 6d 00 00 00 62'66 65 72 6e 61 6e 64 6f 00>>> 'Erro'.encode().hex(' ')
'45 72 72 6f'typedef struct _IMAGE_DATA_DIRECTORY {
uint32_t VirtualAddress;
uint32_t Size;
} IMAGE_DATA_DIRECTORY;
arquivo.txt no editor hexadecimal>>> b'mentebinaria.com.br'.hex(' ')
'6d 65 6e 74 65 62 69 6e 61 72 69 61 2e 63 6f 6d 2e 62 72'typedef struct {
uint16_t e_magic;
uint16_t e_cblp;
uint16_t e_cp;
uint16_t e_crlc;
uint16_t e_cparhdr;
uint16_t e_minalloc;
uint16_t e_maxalloc;
uint16_t e_ss;
uint16_t e_sp;
uint16_t e_csum;
uint16_t e_ip;
uint16_t e_cs;
uint16_t e_lfarlc;
uint16_t e_ovno;
uint16_t e_res[4];
uint16_t e_oemid;
uint16_t e_oeminfo;
uint16_t e_res2[10];
uint32_t e_lfanew;
} IMAGE_DOS_HEADER;This program cannot be run in DOS mode.#define MAX_DIRECTORIES 16
typedef struct {
uint16_t Magic;
uint8_t MajorLinkerVersion;
uint8_t MinorLinkerVersion;
uint32_t SizeOfCode;
uint32_t SizeOfInitializedData;
uint32_t SizeOfUninitializedData;
uint32_t AddressOfEntryPoint;
uint32_t BaseOfCode;
uint64_t ImageBase;
uint32_t SectionAlignment;
uint32_t FileAlignment;
uint16_t MajorOperatingSystemVersion;
uint16_t MinorOperatingSystemVersion;
uint16_t MajorImageVersion;
uint16_t MinorImageVersion;
uint16_t MajorSubsystemVersion;
uint16_t MinorSubsystemVersion;
uint32_t Win32VersionValue;
uint32_t SizeOfImage;
uint32_t SizeOfHeaders;
uint32_t CheckSum;
uint16_t Subsystem;
uint16_t DllCharacteristics;
uint64_t SizeOfStackReserve;
uint64_t SizeOfStackCommit;
uint64_t SizeOfHeapReserve;
uint64_t SizeOfHeapCommit;
uint32_t LoaderFlags;
uint32_t NumberOfRvaAndSizes;
IMAGE_DATA_DIRECTORY DataDirectory[MAX_DIRECTORIES];
} IMAGE_OPTIONAL_HEADER_64;typedef struct {
uint16_t Machine;
uint16_t NumberOfSections;
uint32_t TimeDateStamp;
uint32_t PointerToSymbolTable;
uint32_t NumberOfSymbols;
uint16_t SizeOfOptionalHeader;
uint16_t Characteristics;
} IMAGE_FILE_HEADER, IMAGE_COFF_HEADER;



dumpbin /nologo /headers c:\windows\system32\calc.exeDump of file c:\windows\system32\calc.exe
PE signature found
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
8664 machine (x64)
7 number of sections
EE8136FB time date stamp
0 file pointer to symbol table
0 number of symbols
F0 size of optional header
22 characteristics
Executable
Application can handle large (>2GB) addresses
--suprimido--#define SECTION_NAME_SIZE 8
typedef struct {
uint8_t Name[SECTION_NAME_SIZE];
uint32_t VirtualSize;
uint32_t VirtualAddress;
uint32_t SizeOfRawData;
uint32_t PointerToRawData;
uint32_t PointerToRelocations;
uint32_t PointerToLinenumbers; // descontinuado
uint16_t NumberOfRelocations;
uint16_t NumberOfLinenumbers; // descontinuado
uint32_t Characteristics;
} IMAGE_SECTION_HEADER;C:\>tasklist
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 8 K
System 4 Services 0 1,888 K
Secure System 188 Services 0 273,300 K
Registry 232 Services 0 37,224 K
smss.exe 1020 Services 0 1,632 K
csrss.exe 1292 Services 0 7,452 K
wininit.exe 1396 Services 0 9,364 K
services.exe 1472 Services 0 12,892 K
LsaIso.exe 1492 Services 0 4,676 K
lsass.exe 1500 Services 0 41,256 K
svchost.exe 1724 Services 0 44,368 K
WUDFHost.exe 1756 Services 0 8,504 K
fontdrvhost.exe 1776 Services 0 5,816 K
svchost.exe 1888 Services 0 20,828 K
svchost.exe 1956 Services 0 15,724 K
svchost.exe 1320 Services 0 6,924 K
svchost.exe 1184 Services 0 15,944 K
svchost.exe 2108 Services 0 13,308 K
svchost.exe 2116 Services 0 15,300 K
-- suprimido --dumpbin /nologo /dependents c:\windows\system32\calc.exe
Dump of file c:\windows\system32\calc.exe
File Type: EXECUTABLE IMAGE
Image has the following dependencies:
SHELL32.dll
KERNEL32.dll
msvcrt.dll
ADVAPI32.dll
api-ms-win-core-synch-l1-2-0.dll
api-ms-win-core-processthreads-l1-1-0.dll
api-ms-win-core-libraryloader-l1-2-0.dllC:\>dumpbin /exports %windir%\system32\shell32.dll | findstr /i shellab
568 1A7 002D7D90 ShellAboutA
569 1A8 002D7EC0 ShellAboutW#include <stdio.h>
int main(void) {
char s[] = "texto grande para forçar o compilador a utilizar a seção de dados";
s[0] = 'T';
puts(s);
}int main(void) {
const char s[] = "texto grande para o compilador utilizar a seção de dados";
puts(s);
}#include <stdio.h>
#include <windows.h>
int main(void) {
SYSTEM_INFO info;
GetNativeSystemInfo(&info);
printf("dwPageSize: %u\n", info.dwPageSize);
}typedef struct {
uint32_t RvaImportLookupTable; // Antigo OriginalFistThink
uint32_t TimeDateStamp;
uint32_t ForwarderChain;
uint32_t Name;
uint32_t RvaImportAddressTable; // Antigo FirstThunk (ou Thunk Table)
} IMAGE_IMPORT_DESCRIPTOR;MessageBoxWMessageBoxAUNICODEC:\>rundll32 <DLL>,<Função> <Parâmetros>#include <stdio.h>
int main(void) {
printf("Olá, mundo!\n");
}#include <Windows.h>
int main() {
MessageBox(nullptr,
L"Estou estudando a Windows API\n\nGostei disso! :)",
L"Mente Binária",
MB_OK | MB_ICONINFORMATION);
}#include <Windows.h>
int main() {
LPCWSTR titulo = L"Mente Binária";
int ret = MessageBox(nullptr,
L"Você já se registrou em https://menteb.in?",
titulo,
MB_YESNO | MB_ICONQUESTION);
if (ret == IDYES) {
MessageBox(nullptr, L"Aê! Isso é ser inteligente!", titulo, MB_OK);
} else if (ret == IDNO) {
MessageBox(nullptr, L"Tá esperando o que então? Vai lá!", titulo, MB_OK);
}
}typedef struct {
uint16_t Hint;
uint8_t Name[1];
} IMAGE_IMPORT_BY_NAME;Dump of file c:\windows\system32\calc.exe
PE signature found
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
8664 machine (x64)
7 number of sections
EE8136FB time date stamp
0 file pointer to symbol table
0 number of symbols
F0 size of optional header
22 characteristics
Executable
Application can handle large (>2GB) addresses
OPTIONAL HEADER VALUES
20B magic # (PE32+)
14.38 linker version
2000 size of code
9000 size of initialized data
0 size of uninitialized data
1740 entry point
1000 base of code
140000000 image base
1000 section alignment
1000 file alignment
-- suprimido -->>> ep = 0x1740 + 0x140000000
>>> hex(ep)
'0x140001740'



HANDLE CreateFileW(
[in] LPCWSTR lpFileName,
[in] DWORD dwDesiredAccess,
[in] DWORD dwShareMode,
[in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes,
[in] DWORD dwCreationDisposition,
[in] DWORD dwFlagsAndAttributes,
[in, optional] HANDLE hTemplateFile
);#include <windows.h>
int main(void) {
MessageBox(NULL, "Mundo", "Olá", MB_OK);
}int MessageBox(
[in, optional] HWND hWnd,
[in, optional] LPCTSTR lpText,
[in, optional] LPCTSTR lpCaption,
[in] UINT uType
);fahrenheit = 230.4
celsius = (fahrenheit - 32) * 5 / 9
print(celsius)
fahrenheit = 130.3
celsius = (fahrenheit - 32) * 5 / 9
print(celsius)
fahrenheit = 90.1
celsius = (fahrenheit - 32) * 5 / 9
print(celsius)#define HKEY_CLASSES_ROOT (( HKEY ) (ULONG_PTR)((LONG)0x80000000) )
#define HKEY_CURRENT_USER (( HKEY ) (ULONG_PTR)((LONG)0x80000001) )
#define HKEY_LOCAL_MACHINE (( HKEY ) (ULONG_PTR)((LONG)0x80000002) )
#define HKEY_USERS (( HKEY ) (ULONG_PTR)((LONG)0x80000003) )
#define HKEY_PERFORMANCE_DATA (( HKEY ) (ULONG_PTR)((LONG)0x80000004) )
#define HKEY_PERFORMANCE_TEXT (( HKEY ) (ULONG_PTR)((LONG)0x80000050) )
#define HKEY_PERFORMANCE_NLSTEXT (( HKEY ) (ULONG_PTR)((LONG)0x80000060) )
#if(WINVER >= 0x0400)
#define HKEY_CURRENT_CONFIG (( HKEY ) (ULONG_PTR)((LONG)0x80000005) )
#define HKEY_DYN_DATA (( HKEY ) (ULONG_PTR)((LONG)0x80000006) )
#define HKEY_CURRENT_USER_LOCAL_SETTINGS (( HKEY ) (ULONG_PTR)((LONG)0x80000007) )
#endifopcode operando1, operando2, operando3B8 E9 07 00 00


0− 1− 2− 3− 4− 5− 6− 7−
−0 NUL DLE SP 0 @ P ` p
−1 SOH DC1 ! 1 A Q a q
−2 STX DC2 " 2 B R b r
−3 ETX DC3 # 3 C S c s
−4 EOT DC4 $ 4 D T d t
−5 ENQ NAK % 5 E U e u
−6 ACK SYN & 6 F V f v
−7 BEL ETB ' 7 G W g w
−8 BS CAN ( 8 H X h x
−9 HT EM ) 9 I Y I y
−A LF SUB * : J Z j z
−B VT ESC + ; K [ k {
−C FF FS , < L \ l |
−D CR GS − = M ] m }
−E SO RS . > N ^ n ~
−F SI US / ? O _ o DEL#define GENERIC_READ (0x80000000L)
#define GENERIC_WRITE (0x40000000L)
#define GENERIC_EXECUTE (0x20000000L)
#define GENERIC_ALL (0x10000000L)#define FILE_SHARE_READ 0x00000001
#define FILE_SHARE_WRITE 0x00000002
#define FILE_SHARE_DELETE 0x00000004 #define CREATE_NEW 1
#define CREATE_ALWAYS 2
#define OPEN_EXISTING 3
#define OPEN_ALWAYS 4
#define TRUNCATE_EXISTING 5HANDLE hFile = CreateFile(L"log.txt",
GENERIC_WRITE,
0,
nullptr,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
nullptr);if (hFile == INVALID_HANDLE_VALUE) {
return EXIT_FAILURE;
}CloseHandle(hFile);BOOL WriteFile(
[in] HANDLE hFile,
[in] LPCVOID lpBuffer,
[in] DWORD nNumberOfBytesToWrite,
[out, optional] LPDWORD lpNumberOfBytesWritten,
[in, out, optional] LPOVERLAPPED lpOverlapped
);#include <Windows.h>
int main() {
HANDLE hFile = CreateFile(L"log.txt",
GENERIC_WRITE,
0,
nullptr,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
nullptr);
if (hFile == INVALID_HANDLE_VALUE) {
return EXIT_FAILURE; // expande para 1
}
LPCSTR texto = "Programando usando a API do Windows";
size_t tam = lstrlenA(texto);
if (WriteFile(hFile, texto, tam, nullptr, nullptr) == FALSE) {
return EXIT_FAILURE;
}
CloseHandle(hFile);
}MessageBox(NULL, "Mundo", "Olá", MB_OKCANCEL | MB_ICONEXCLAMATION);MessageBox(NULL, "Mundo", "Olá"), 0x31);110.22222222222223
54.611111111111114
32.27777777777778def fahrenheit2celsius(fahrenheit):
return (fahrenheit - 32) * 5 / 9
celsius = fahrenheit2celsius(230.4)
print(celsius)
celsius = fahrenheit2celsius(130.3)
print(celsius)
celsius = fahrenheit2celsius(90.1)
print(celsius)int soma(int x, int y) {
return x + y;
}
int main(void) {
int res = soma(3, 4);
return 0;
}<soma>:
140001010 | add ecx, edx
140001012 | mov eax, ecx
140001014 | ret
<main>:
140001020 | sub rsp, 38
140001024 | mov edx, 4
140001029 | mov ecx, 3
14000102E | call 140001010
140001033 | mov dword ptr ss:[rsp+20], eax
140001037 | xor eax, eax
140001039 | add rsp, 38
14000103D | retmov edx, 4
mov ecx, 3
call 140001010add ecx, edx
mov eax, ecx
retpush raxpush 1pop rdx; reserva 72 bytes (0x48) na pilha
sub rsp, 48
; copia o sexto argumento para a pilha
mov dword ptr ss:[rsp+28], 6
; copia o quinto argumento para a pilha
mov dword ptr ss:[rsp+20], 5
; quarto argumento em R9D
mov r9d, 4
; terceiro em R8D
mov r8d, 3
; segundo em EDX
mov edx, 2
; primeiro em ECX
mov ecx, 1
; empilha o endereço da MOV após a CALL
; e desvia o fluxo para a função soma()
call soma.140001010
; armazena o retorno numa variável local na pilha
mov dword ptr ss:[rsp+30], eax
; zera EAX, que contém o retorno da main()
xor eax,eax
; libera os bytes pré-reservados
add rsp, 48
; retorna para o sistema operacional / fim da main()
retint main(void) {
int res = soma(1, 2, 3, 4, 5, 6);
return 0;
}sub rsp, 28
xor r9d, r9d
lea r8, qword ptr ds:[140002020]
lea rdx, qword ptr ds:[140002038]
xor ecx, ecx
call qword ptr ds:[<MessageBoxW>]
xor ecx, ecx
call qword ptr ds:[<ExitProcess>]
nop
add rsp, 28
retMessageBoxW(0, 0x14002038, 0x140002020, 0); 63 32 31 16 15 8 7 0
+--------------------------------+----------------+--------+--------+
| RAX |
+--------------------------------+----------------+--------+--------+
| EAX |
+----------------+--------+--------+
| AX |
+--------+--------+
| AH | AL |
+--------+--------+mov rax, 0x1122334455667788 ; copia um número de 64-bits para RAX 63 32 31 16 15 8 7 0
+--------------------------------+----------------+--------+--------+
| RSI |
+--------------------------------+----------------+--------+--------+
| ESI |
+----------------+--------+--------+
| SI |
+--------+--------+
| SIL |
+--------+ 63 32 31 16 15 8 7 0
+--------------------------------+----------------+--------+--------+
| R8 |
+--------------------------------+----------------+--------+--------+
| R8D |
+----------------+--------+--------+
| R8W |
+--------+--------+
| R8B |
+--------+format PE64 GUI
entry start
section '.text' code readable executable
start:
mov eax, 0x20
or eax, 0x18LSTATUS RegCreateKeyW(
[in] HKEY hKey,
[in, optional] LPCWSTR lpSubKey,
[out] PHKEY phkResult
);HKEY hChave;
RegCreateKey(HKEY_CURRENT_USER, L"Software\\Mente Binária", &hChave);
RegCloseKey(hKey);LSTATUS RegSetKeyValueW(
[in] HKEY hKey,
[in, optional] LPCWSTR lpSubKey,
[in, optional] LPCWSTR lpValueName,
[in] DWORD dwType,
[in, optional] LPCVOID lpData,
[in] DWORD cbData
);#define REG_NONE ( 0ul ) // Nenhum tipo
#define REG_SZ ( 1ul ) // String UNICODE terminada em null
#define REG_EXPAND_SZ ( 2ul ) // String UNICODE terminada em null
// (com suporte à variáveis de ambiente)
#define REG_BINARY ( 3ul ) // Dados binários
#define REG_DWORD ( 4ul ) // Número de 32-bits em little endian
#define REG_DWORD_LITTLE_ENDIAN ( 4ul ) // Número de 32-bits (o mesmo que REG_DWORD)
#define REG_DWORD_BIG_ENDIAN ( 5ul ) // Número de 32-bits em big endian
#define REG_LINK ( 6ul ) // Um link (atalho) UNICODE
#define REG_MULTI_SZ ( 7ul ) // Várias strings UNICODE
#define REG_RESOURCE_LIST ( 8ul ) // Lista de recursos num mapa de recursos
#define REG_FULL_RESOURCE_DESCRIPTOR ( 9ul ) // Lista de recursos na descrição do hardware
#define REG_RESOURCE_REQUIREMENTS_LIST ( 10ul )
#define REG_QWORD ( 11ul ) // Número de 64-bits em little endian
#define REG_QWORD_LITTLE_ENDIAN ( 11ul ) // Número de 64-bits (o mesmo que REG_QWORD)#include <Windows.h>
int main() {
HKEY hChave;
RegCreateKey(HKEY_CURRENT_USER, L"Software\\Mente Binária", &hChave);
LPCWSTR website = L"https://menteb.in";
DWORD tamanho = (lstrlen(website) + 1) * sizeof(WCHAR); // +1 para incluir o terminador nulo
RegSetKeyValueW(hChave, nullptr, L"Website", REG_SZ, website, (DWORD)tamanho);
DWORD habilitado = 1;
RegSetKeyValueW(hChave, nullptr, L"Habilitado", REG_DWORD, &habilitado, sizeof(habilitado));
RegCloseKey(hChave);
return EXIT_SUCCESS;
}mov rbx, 112233445566778848 BB 88 77 66 55 44 33 22 11mov rcx, 7
add rcx, 1mov rcx, 7
inc rcxmov rax, 5
mov rbx, 2
mul rbxmov rcx, 0
xor rcx, rcxmov eax, 0xb0b0
cmp eax, 0xfe10 0: b8 01 00 00 00 mov eax,0x1
5: eb 03 jmp 0xa
7: 83 c0 04 add eax,0x4
a: 40 inc eax 0: b8 01 00 00 00 mov eax,0x1
5: 83 f8 01 cmp eax,0x1
8: 74 03 je 0xd
a: 83 c0 03 add eax,0x3
d: 40 inc eax
B8 20 00 00 00
83 C8 18MOV EAX, 20 ; Coloca o valor 0x20 no registrador EAX
OR EAX, 18 ; Faz um OR do valor em EAX com 0x18 e salva o resultado em EAXStepOver, step, sto, ou st.


xor ecx, ecx
loop:
inc ecx
cmp ecx, 0xa
jl loop 0 1 2 3 4 5 6 7 8 9 A B C D E F
0x
1x
2x ! " # $ % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ \ ] ^ _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~
8x
9x
Ax ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ SHY ® ¯
Bx ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿
Cx À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
Dx Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
Ex à á â ã ä å æ ç è é ê ë ì í î ï
Fx ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿmov ecx, 0
loop:
add ecx, 1
cmp ecx, 0x9
jle loopcmp eax, 0
je destinotest eax, eax
je destinonopxchg eax, eax$ hdump -n 32 /bin/ls
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 03 00 28 00 01 00 00 00 21 3e 00 00 34 00 00 00 |..(.....!>..4...|
$ heksa -l 32 /bin/ls
00000┊7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00┊.ELF...Ø ØØØØØØØØ
00010┊03 00 28 00 01 00 00 00 21 3e 00 00 34 00 00 00┊.Ø(Ø.ØØØ !>ØØ4ØØØ
$ hexyl -n32 /bin/ls
┌────────┬─────────────────────────┬─────────────────────────┬────────┬────────┐
│00000000│ 7f 45 4c 46 02 01 01 00 ┊ 00 00 00 00 00 00 00 00 │•ELF•••0┊00000000│
│00000010│ 02 00 3e 00 01 00 00 00 ┊ fc 4a 40 00 00 00 00 00 │•0>0•000┊×J@00000│
└────────┴─────────────────────────┴─────────────────────────┴────────┴────────┘
$ hd -n32 /bin/ls
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 03 00 28 00 01 00 00 00 21 3e 00 00 34 00 00 00 |..(.....!>..4...|
00000020
$ od -Ax -tx1 -N32 /bin/ls
0000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
0000010 03 00 28 00 01 00 00 00 21 3e 00 00 34 00 00 00
0000020
$ xxd -g1 -l32 /bin/ls
00000000: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 .ELF............
00000010: 03 00 28 00 01 00 00 00 21 3e 00 00 34 00 00 00 ..(.....!>..4...


OpenThreadTokenProcess32FirstProcess32NextShellExecuteTerminateProcessToolhelp32ReadProcessMemoryWriteProcessMemoryZwQueryInformationProcessZwSetInformationThreadBOOL IsDebuggerPresent();BOOL CheckRemoteDebuggerPresent(
[in] HANDLE hProcess,
[in, out] PBOOL pbDebuggerPresent
);int MessageBoxA(
[in, optional] HWND hWnd,
[in, optional] LPCTSTR lpText,
[in, optional] LPCTSTR lpCaption,
[in] UINT uType
);UINT GetDlgItemTextA(
[in] HWND hDlg,
[in] int nIDDlgItem,
[out] LPSTR lpString,
[in] int cchMax
);BOOL CryptEncrypt(
[in] HCRYPTKEY hKey,
[in] HCRYPTHASH hHash,
[in] BOOL Final,
[in] DWORD dwFlags,
[in, out] BYTE *pbData,
[in, out] DWORD *pdwDataLen,
[in] DWORD dwBufLen
);void GetLocalTime(
[out] LPSYSTEMTIME lpSystemTime
);DWORD GetLogicalDrives();HANDLE CreateFileA(
[in] LPCSTR lpFileName,
[in] DWORD dwDesiredAccess,
[in] DWORD dwShareMode,
[in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes,
[in] DWORD dwCreationDisposition,
[in] DWORD dwFlagsAndAttributes,
[in, optional] HANDLE hTemplateFile
);HINTERNET InternetOpenUrlA(
[in] HINTERNET hInternet,
[in] LPCSTR lpszUrl,
[in] LPCSTR lpszHeaders,
[in] DWORD dwHeadersLength,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);BOOL EnableMenuItem(
[in] HMENU hMenu,
[in] UINT uIDEnableItem,
[in] UINT uEnable
);BOOL EnableWindow(
[in] HWND hWnd,
[in] BOOL bEnable
);LPVOID VirtualAlloc(
[in, optional] LPVOID lpAddress,
[in] SIZE_T dwSize,
[in] DWORD flAllocationType,
[in] DWORD flProtect
);BOOL CreateProcessA(
[in, optional] LPCSTR lpApplicationName,
[in, out, optional] LPSTR lpCommandLine,
[in, optional] LPSECURITY_ATTRIBUTES lpProcessAttributes,
[in, optional] LPSECURITY_ATTRIBUTES lpThreadAttributes,
[in] BOOL bInheritHandles,
[in] DWORD dwCreationFlags,
[in, optional] LPVOID lpEnvironment,
[in, optional] LPCSTR lpCurrentDirectory,
[in] LPSTARTUPINFOA lpStartupInfo,
[out] LPPROCESS_INFORMATION lpProcessInformation
);LSTATUS RegSetValueA(
[in] HKEY hKey,
[in, optional] LPCSTR lpSubKey,
[in] DWORD dwType,
[in] LPCSTR lpData,
[in] DWORD cbData
);int lstrcmpA(
[in] LPCSTR lpString1,
[in] LPCSTR lpString2
);




