
22.10.2009, 18:08
|
|
Новичок
Регистрация: 14.10.2009
Сообщений: 8
С нами:
8723506
Репутация:
0
|
|
такой вопрос уважаемые:
каким образом осуществляется изменение приложения (ехе файла)?
Опишу в кратце что мне надо сделать:
сделать лоудер который бы изменял ехе файл ( а именно пакеты с которыми он будет работать, но не суть)
|
|
|

22.10.2009, 19:02
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
в подфорум Реверсинг загляни. Делается все обычно в два этапа - сначала руками с помощью ollydbg или другого отладчика получаешь нужный результат, потом кодируешь изменение нужных байт в программе своей через WriteProcessMemory или инжект длл. Ну и все.
|
|
|

22.10.2009, 19:07
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
С нами:
9087590
Репутация:
70
|
|
Подскажите что я не так делаю?
Код:
int WriteToAutoRun(char * path, char * name)
{
HKEY hKey;
long iRet;
long iRetOpen;
iRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,(LPCWSTR)"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey);
if ( iRet == 0)
{
long set = RegSetValueEx(hKey,(LPCWSTR)name,NULL,REG_SZ,(BYTE *)path ,sizeof(path)+1);
printf(" - %d",set);
}
RegCloseKey( hKey );
return 0;
}
Ошибка = 2...
|
|
|

22.10.2009, 19:14
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
error C2664: 'RegOpenKeyExA' : cannot convert parameter 2 from 'LPCWSTR' to 'LPCSTR'
как вообще удалось заставить код выполниться, если он банально не комплиируется? =)
|
|
|

22.10.2009, 20:31
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
С нами:
9087590
Репутация:
70
|
|
Сообщение от Ra$cal
error C2664: 'RegOpenKeyExA' : cannot convert parameter 2 from 'LPCWSTR' to 'LPCSTR'
как вообще удалось заставить код выполниться, если он банально не комплиируется? =)
error C2664: 'RegSetValueExW' : cannot convert parameter 2 from 'LPCSTR' to 'LPCWSTR'
=), Вот почему компилится. ВОт тогда в чем ошибка?
|
|
|

22.10.2009, 21:06
|
|
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
С нами:
10139366
Репутация:
1502
|
|
Сообщение от Ra$cal
error C2664: 'RegOpenKeyExA' : cannot convert parameter 2 from 'LPCWSTR' to 'LPCSTR'
как вообще удалось заставить код выполниться, если он банально не комплиируется? =)
WinReg.h:
Код:
#ifdef UNICODE
#define RegOpenKeyEx RegOpenKeyExW
#else
#define RegOpenKeyEx RegOpenKeyExA
#endif // !UNICODE

__________________
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
|
|
|

22.10.2009, 20:59
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
sizeof(path)+1
как минимум это не правильно. это применимо только для статических массивов.
|
|
|

22.10.2009, 21:00
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
С нами:
9087590
Репутация:
70
|
|
Сообщение от Ra$cal
sizeof(path)+1
как минимум это не правильно. это применимо только для статических массивов.
Уже понял))), спс.
ВОт рабочий вариант:
int WriteToAutoRun(char * path, char * name)
{
HKEY hKey;
long iRet;
long iRetOpen;
iRet = RegOpenKeyExA(HKEY_LOCAL_MACHINE,(LPCSTR)"SOFTWARE \\Microsoft\\Windows\\CurrentVersion\\Run\\", 0, KEY_SET_VALUE, &hKey);
printf("%d",iRet);
if ( iRet == 0)
{
long set = RegSetValueExA(hKey,(LPCSTR)name,NULL,REG_SZ,(BYTE *)path ,strlen(path)+1);
printf(" - %d",sizeof(path));
}
RegCloseKey( hKey );
return 0;
}
|
|
|

22.10.2009, 21:42
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
просто не упомянуто что студия видимо 2008, а я в 2003 работаю =)
|
|
|

23.10.2009, 10:08
|
|
Постоянный
Регистрация: 07.01.2008
Сообщений: 591
С нами:
9653789
Репутация:
549
|
|
7zip API для C++ ?
Кто подскажет ?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|