ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #261  
Старый 19.04.2008, 19:28
Аватар для taha
taha
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
Провел на форуме:
2472378

Репутация: 1077
По умолчанию

kir@pro, новичку врядли удасться бороться с компилятром Делфи или C++!! Можно оптимизировать процентов на 10 максимум... На самом деле оптимизировать лучше алгоритм...
Цитата:
но я считаю что каждому из нас обязательно надо, хотябы чуть чуть (основу), знать ассэмблер!!! с ним жизнь станет намного легче
конечно, когда ты знаешь во что преобразуется If или While легче на душе)))
 
Ответить с цитированием

  #262  
Старый 20.04.2008, 01:17
Аватар для Jes
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

Репутация: 1462
По умолчанию

перевел пример из сишного в фасм
Код:
call dword [GetCurrentProcessId]

push eax
push TRUE
push PROCESS_OPERATION_AND_WRITE  ; 0x0028
call dword [OpenProcess]


mov [pHandle],eax


push 0
push size      ;1
push ChangeFor  ;  0x74
push WriteHere
push pHandle
call dword [WriteProcessMemory]
 add esp,8


WriteHere:  JMP short WriteHere     
...
0x74 = JZ , размеры совпадают , jz и выполнение продолжается , на Си работает , а тут зацикливается
Где я накосячил?
 
Ответить с цитированием

  #263  
Старый 20.04.2008, 10:23
Аватар для taha
taha
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
Провел на форуме:
2472378

Репутация: 1077
По умолчанию

Код:
include 'include\win32ax.inc'
.code
 Buffer db 0x74

start:
  stdcall [GetCurrentProcessId]

  stdcall [OpenProcess],0x0028,TRUE,eax

  push NULL                ; pBytesWritten = NULL
  push 1                   ; BytesToWrite  = 1
  push Buffer              ; [Buffer]      = 0x74
  push WriteHere           ; Address of WriteHere
  push eax                 ; hProcess
  call [WriteProcessMemory]

WriteHere:  JMP WriteHere

.end start
push Buffer ; [Buffer] = 0x74
push eax ; hProcess


Работало, пока не завопил нод и не удалил файл =\\ епанутый какой то =\\
 
Ответить с цитированием

  #264  
Старый 30.04.2008, 22:05
Аватар для Jes
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

Репутация: 1462
По умолчанию

как такая 'конструкция' в фасме выглядит?
Код:
code1 label byte
	db 68h 
	Hooker1 dd 0
	db 0c3h
 
Ответить с цитированием

  #265  
Старый 30.04.2008, 22:16
Аватар для GlOFF
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

Цитата:
68 00 00 00 00 = push 0
С3 = ret
Если я правильно понел вопрос
 
Ответить с цитированием

  #266  
Старый 30.04.2008, 22:24
Аватар для Jes
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

Репутация: 1462
По умолчанию

в Hooker1 запишется адрес обработчика ,
чтобы затем WriteProcessMemory,-1,[EntryAdress], code1 (без offset прим фасм) ,code1_size,0
а фасм такую директиву (code1 label byte) не принимает :/

Последний раз редактировалось Jes; 30.04.2008 в 22:28..
 
Ответить с цитированием

  #267  
Старый 30.04.2008, 22:28
Аватар для desTiny
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Цитата:
Сообщение от Jes  
как такая 'конструкция' в фасме выглядит?
Код:
code1 label byte
	db 68h 
	Hooker1 dd 0
	db 0c3h
а зачем тебе тут label?
code1:
db 68h
Hooker1:
dd 0
db 0C3h


а дальше культурно как-нибудь так:
mov byte [code1], 0c3h
jmp code1
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #268  
Старый 30.04.2008, 22:33
Аватар для GlOFF
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

Тем более аверов и файеров привлекать вызовом WriteProcessMemory.
Лишние подозрения
 
Ответить с цитированием

  #269  
Старый 30.04.2008, 22:44
Аватар для desTiny
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Да, кстати, на всякий случай: вот так делать вроде бы нельзя (раньше нелбзя было точно, сейчас, скорее всего, тоже - давненько я таким не занимался ):

Код:
push code2
mov byte[code1], 0C3h
code1:
  push 0
  ret
code2:
  ...
будет ошибка.

Надо так:
Код:
push code2
mov byte[code1], 0C3h
jmp code1
code1:
  push 0
  ret
code2:
  ...
Ибо у прцессора есть очередь команд, которая сбрасывается только при некоторых командах, например jmp.
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #270  
Старый 30.04.2008, 22:48
Аватар для GlOFF
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

desTiny Да от препроцесора зависит. на masm думаю и первый вариант будет норм...

Последний раз редактировалось GlOFF; 30.04.2008 в 23:14..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы для новичков! (faq) PEPSICOLA С/С++, C#, Delphi, .NET, Asm 92 14.05.2010 17:59
Обзор программ для очистки жёсткого диска v1ru$ Soft - Windows 21 17.01.2010 21:07
ОС с нуля z01b С/С++, C#, Delphi, .NET, Asm 36 03.07.2008 15:30
Лучший софт для Linux _-Ramos-_ Soft - *nix 11 15.01.2008 12:08
Взлом Unix а silveran *nix 4 21.12.2005 22:46



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ