Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Болталка (https://forum.antichat.xyz/forumdisplay.php?f=46)
-   -   Ваши примеры СИ (https://forum.antichat.xyz/showthread.php?t=104922)

clin 06.02.2009 10:17

Ваши примеры СИ
 
сабж..выкладывайте..хочется глянуть, подучиться)

wizzer 06.02.2009 10:21

Привет.как дела? Дай пароль от аськи, мне позвонить надо

Troop 06.02.2009 10:26

Цитата:

Сообщение от wizzer
Привет.как дела? Дай пароль от аськи, мне позвонить надо

:D :D :D :D :D :D :D :D :D :D :D :D :D

iSee 06.02.2009 10:29

смотри что у меня шоха, чо думаешь я буду мелочится и кидать тебя на двести баксов :(

m0le[x] 06.02.2009 10:29

Слышь братан есть мобила с камерой шоле... позванить надо йопт!

Chaak 06.02.2009 10:30

Цитата:

http://www.everfall.com/paste/id.php?wucqs2cq73to
не моё

iSee 06.02.2009 10:33

PHP код:

   1.
      
//
   
2.
      
// syscall c-style generator
   
3.
      
//
   
4.
       
   5.
      
#include <windows.h>
   
6.
      
#include <stdio.h>
   
7.
       
   8.
      enum GENERATION_TYPE 
G_DEFINESG_NAME_ARRAYG_BOTH };
   
9.
       
  10.
      
#define DEFINE_PREFIX   "Sdt_"
  
11.
      
#define ORDINAL_TYPE    "0x%03x"
  
12.
      
#define GENERATE_NT     1
  
13.
      
#define GENERATE_ZW     1
  
14.
       
  15.
      
#define ARRAY_NAME  "SdtFunctions"
  
16.
       
  17.
      
//GENERATION_TYPE GenType = G_NAME_ARRAY;
  
18.
      GENERATION_TYPE GenType 
G_BOTH;
  
19.
       
  20.
      char 
*GetWinNameByVer (ULONG MajorULONG Minor)
  
21.
      
{
  
22.
          
switch (Major)
  
23.
          
{
  
24.
          
case 4:
  
25.
       
  26.
              
return "NT 4";
  
27.
       
  28.
          
case 5:
  
29.
       
  30.
              
switch (Minor)
  
31.
              
{
  
32.
              
case 0: return "2000";
  
33.
              
case 1: return "XP";
  
34.
              
case 2: return "2003 Server";
  
35.
              
}
  
36.
       
  37.
          
case 6:
  
38.
       
  39.
              
switch (Minor)
  
40.
              
{
  
41.
              
case 0: return "Vista";
  
42.
              
}
  
43.
       
  44.
          
}
  
45.
       
  46.
          
return "(unk)";
  
47.
      
}
  
48.
       
  49.
      int _main
();
  
50.
       
  51.
      int main
()
  
52.
      
{
  
53.
          OSVERSIONINFOEX ver 
= {sizeof(ver)};
  
54.
       
  55.
          
if (!GetVersionEx ( (OSVERSIONINFO*)&ver ))
  
56.
              
return printf("Cannot ger version\n");
  
57.
       
  58.
          printf
("//\n// syscall info\n// generated for Windows %s (NT %d.%d) Build %d %s\n//\n\n",
  
59.
              GetWinNameByVer 
(ver.dwMajorVersionver.dwMinorVersion),
  
60.
              ver
.dwMajorVersionver.dwMinorVersionver.dwBuildNumberver.szCSDVersion);
  
61.
       
  62.
       
  63.
          
switch (GenType)
  
64.
          
{
  
65.
          
case G_DEFINES:
  
66.
          
case G_NAME_ARRAY:
  
67.
              
return _main();
  
68.
       
  69.
          
case G_BOTH:
  
70.
              GenType 
G_NAME_ARRAY;
  
71.
              _main
();
  
72.
       
  73.
              GenType 
G_DEFINES;
  
74.
              _main
();
  
75.
          
}
  
76.
       
  77.
          
return 0;
  
78.
      
}
  
79.
       
  80.
      int _main
()
  
81.
      
{
  
82.
          HMODULE Base 
GetModuleHandle ("ntdll.dll");
  
83.
          
if (!Base)
  
84.
              
return printf("Cannot get handle of ntdll\n");
  
85.
       
  86.
          PIMAGE_DOS_HEADER mz
;
  
87.
          PIMAGE_FILE_HEADER pfh
;
  
88.
          PIMAGE_OPTIONAL_HEADER poh
;
  
89.
          PIMAGE_EXPORT_DIRECTORY pexd
;
  
90.
          PDWORD AddressOfFunctions
;
  
91.
          PDWORD AddressOfNames
;
  
92.
          PWORD AddressOfNameOrdinals
;
  
93.
          int i
;
  
94.
         
  95.
          
// Get headers
  
96.
          
*(PBYTE*)&mz = (PBYTE)Base;
  
97.
          
*(PBYTE*)&pfh = (PBYTE)Base mz->e_lfanew sizeof(IMAGE_NT_SIGNATURE);
  
98.
          
*(PIMAGE_FILE_HEADER*)&poh pfh 1;
  
99.
       
 100.
          
// Get export
 
101.
          
*(PBYTE*)&pexd = (PBYTE)Base poh->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress;
 
102.
       
 103.
          
*(PBYTE*)&AddressOfFunctions = (PBYTE)Base pexd->AddressOfFunctions;
 
104.
          
*(PBYTE*)&AddressOfNames = (PBYTE)Base pexd->AddressOfNames;
 
105.
          
*(PBYTE*)&AddressOfNameOrdinals = (PBYTE)Base pexd->AddressOfNameOrdinals;
 
106.
       
 107.
          PCHAR SdtFunctions 
[0x400] = {0};
 
108.
          ULONG Number 
0;
 
109.
       
 110.
          
for( i=0i<pexd->NumberOfNamesi++ )
 
111.
          
{
 
112.
              PCHAR Name 
= ((char*)Base AddressOfNames[i]);
 
113.
              PVOID Addr 
= (PVOID*)((DWORD)Base AddressOfFunctions[AddressOfNameOrdinals[i]]);
 
114.
       
 115.
              
if ( *(USHORT*)Name == 'tN' // Nt**
 
116.
              
{
 
117.
                  
if ( *(UCHAR*)Addr == 0xB8 // MOV EAX, XXXXXXXX
 
118.
                  
{
 
119.
                      Number 
= *(ULONG*)( (UCHAR*)Addr );
 
120.
       
 121.
                      
switch (GenType)
 
122.
                      
{
 
123.
                      
case G_DEFINES:
 
124.
                         
 125.
      
#if GENERATE_NT
 
126.
                          printf 
("#define  " DEFINE_PREFIX "%-52s" ORDINAL_TYPE "\n"NameNumber);
 
127.
      
#endif
 
128.
       
 129.
      
#if GENERATE_ZW
 
130.
                          printf 
("#define  " DEFINE_PREFIX "Zw%-50s" ORDINAL_TYPE "\n"Name+2Number);
 
131.
      
#endif
 
132.
       
 133.
                          
break;
 
134.
       
 135.
                      
case G_NAME_ARRAY:
 
136.
       
 137.
                          SdtFunctions 
[Number] = Name;
 
138.
                          
break;
 
139.
                      
}
 
140.
                  
}
 
141.
              
}
 
142.
          
}
 
143.
       
 144.
          
if (GenType == G_DEFINES)
 
145.
              
return printf("\n");
 
146.
       
 147.
          printf
("char* " ARRAY_NAME " [%d] = {\n"Number);
 
148.
       
 149.
          
// Name array
 
150.
          
for (i=0i<=Numberi++)
 
151.
          
{
 
152.
              char end_char 
=  (== Number ' ' ',');
 
153.
       
 154.
              
if (SdtFunctions[i] == NULL)
 
155.
                  printf 
(" NULL%c\n"end_char);
 
156.
              
else
 
157.
                  printf
(" \"%s\"%c\n"SdtFunctions[i], end_char);
 
158.
          
}
 
159.
       
 160.
          printf
("};\n\n");
 
161.
       
 162.
          
return 0;
 
163.
      


не моё

iSee 06.02.2009 10:35

ты чо не видишь чо у миня шистизнак?7

clin 06.02.2009 10:37

вы чо внатурэ чоткие?
я риальна прошу


Время: 12:56