Форум программистов, компьютерный форум CyberForum.ru

Вставка кода в exe-ый файл - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 11:47     Вставка кода в exe-ый файл #1
люди напишите кто нибудь свой скайп,кто в с++ достаточно шарит , нужно код вставить в exe-ный файл....а иначе мысль такая,ексешный файл он от игры нужно переписать голосование что бы зайдя на сервер(в сети) голосование проводилось не простой командой /callvote map mp_backlot (голос на карту)а так что бы можно было после точки с запятой ";" вставить произвольную команду...из этой игры
должно выглядить так /callvote map "mp_backlot; rcon_password ***; say" (так оно в конечном итоге выглядит) прошу помоч со вставкой кода....ссылка на exeник [ссылка удалена]

ВОТ КОД КОТОРЫЙ НУЖНО ВСТАВИТЬ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
Cmd_CallVote_f
==================
*/
void Cmd_CallVote_f( gentity_t *ent ) {
    int     i;
    char    arg1[MAX_STRING_TOKENS];
    char    arg2[MAX_STRING_TOKENS];
 
    if ( !g_allowVote.integer ) {
        trap_SendServerCommand( ent-g_entities, "print \"Voting not allowed here.\n\"" );
        return;
    }
 
    if ( level.voteTime ) {
        trap_SendServerCommand( ent-g_entities, "print \"A vote is already in progress.\n\"" );
        return;
    }
    if ( ent->client->pers.voteCount >= MAX_VOTE_COUNT ) {
        trap_SendServerCommand( ent-g_entities, "print \"You have called the maximum number of votes.\n\"" );
        return;
    }
    if ( ent->client->sess.sessionTeam == TEAM_SPECTATOR ) {
        trap_SendServerCommand( ent-g_entities, "print \"Not allowed to call a vote as spectator.\n\"" );
        return;
    }
 
    // make sure it is a valid command to vote on
    trap_Argv( 1, arg1, sizeof( arg1 ) );
    trap_Argv( 2, arg2, sizeof( arg2 ) );
 
    if( strchr( arg1, ';' ) || strchr( arg2, ';' ) ) {
        trap_SendServerCommand( ent-g_entities, "print \"Invalid vote string.\n\"" );
        return;
    }
 
    if ( !Q_stricmp( arg1, "map_restart" ) ) {
    } else if ( !Q_stricmp( arg1, "nextmap" ) ) {
    } else if ( !Q_stricmp( arg1, "map" ) ) {
    } else if ( !Q_stricmp( arg1, "g_gametype" ) ) {
    } else if ( !Q_stricmp( arg1, "kick" ) ) {
    } else if ( !Q_stricmp( arg1, "clientkick" ) ) {
    } else if ( !Q_stricmp( arg1, "g_doWarmup" ) ) {
    } else if ( !Q_stricmp( arg1, "timelimit" ) ) {
    } else if ( !Q_stricmp( arg1, "fraglimit" ) ) {
    } else {
        trap_SendServerCommand( ent-g_entities, "print \"Invalid vote string.\n\"" );
        trap_SendServerCommand( ent-g_entities, "print \"Vote commands are: map_restart, nextmap, map <mapname>, g_gametype <n>, kick <player>, clientkick <clientnum>, g_doWarmup, timelimit <time>, fraglimit <frags>.\n\"" );
        return;
    }
 
    // if there is still a vote to be executed
    if ( level.voteExecuteTime ) {
        level.voteExecuteTime = 0;
        trap_SendConsoleCommand( EXEC_APPEND, va("%s\n", level.voteString ) );
    }
 
    // special case for g_gametype, check for bad values
    if ( !Q_stricmp( arg1, "g_gametype" ) ) {
        i = atoi( arg2 );
        if( i == GT_SINGLE_PLAYER || i < GT_FFA || i >= GT_MAX_GAME_TYPE) {
            trap_SendServerCommand( ent-g_entities, "print \"Invalid gametype.\n\"" );
            return;
        }
 
        Com_sprintf( level.voteString, sizeof( level.voteString ), "%s %d", arg1, i );
        Com_sprintf( level.voteDisplayString, sizeof( level.voteDisplayString ), "%s %s", arg1, gameNames[i] );
    } else if ( !Q_stricmp( arg1, "map" ) ) {
        // special case for map changes, we want to reset the nextmap setting
        // this allows a player to change maps, but not upset the map rotation
        char    s[MAX_STRING_CHARS];
 
        trap_Cvar_VariableStringBuffer( "nextmap", s, sizeof(s) );
        if (*s) {
            Com_sprintf( level.voteString, sizeof( level.voteString ), "%s %s; set nextmap \"%s\"", arg1, arg2, s );
        } else {
            Com_sprintf( level.voteString, sizeof( level.voteString ), "%s %s", arg1, arg2 );
        }
        Com_sprintf( level.voteDisplayString, sizeof( level.voteDisplayString ), "%s", level.voteString );
    } else if ( !Q_stricmp( arg1, "nextmap" ) ) {
        char    s[MAX_STRING_CHARS];
 
        trap_Cvar_VariableStringBuffer( "nextmap", s, sizeof(s) );
        if (!*s) {
            trap_SendServerCommand( ent-g_entities, "print \"nextmap not set.\n\"" );
            return;
        }
        Com_sprintf( level.voteString, sizeof( level.voteString ), "vstr nextmap");
        Com_sprintf( level.voteDisplayString, sizeof( level.voteDisplayString ), "%s", level.voteString );
    } else {
        Com_sprintf( level.voteString, sizeof( level.voteString ), "%s \"%s\"", arg1, arg2 );
        Com_sprintf( level.voteDisplayString, sizeof( level.voteDisplayString ), "%s", level.voteString );
    }
 
    trap_SendServerCommand( -1, va("print \"%s called a vote.\n\"", ent->client->pers.netname ) );
 
    // start the voting, the caller autoamtically votes yes
    level.voteTime = level.time;
    level.voteYes = 1;
    level.voteNo = 0;
 
    for ( i = 0 ; i < level.maxclients ; i++ ) {
        level.clients[i].ps.eFlags &= ~EF_VOTED;
    }
    ent->client->ps.eFlags |= EF_VOTED;
 
    trap_SetConfigstring( CS_VOTE_TIME, va("%i", level.voteTime ) );
    trap_SetConfigstring( CS_VOTE_STRING, level.voteDisplayString );    
    trap_SetConfigstring( CS_VOTE_YES, va("%i", level.voteYes ) );
    trap_SetConfigstring( CS_VOTE_NO, va("%i", level.voteNo ) );
 Комментарий модератора 
Прикрепляйте картинки, архивы и прочее к сообщениям.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
16.08.2010, 11:51
  #2

Не по теме:

А исходников скайпа у Вас нету, уважаемый?
А может мы вообще винду свою напишем, с блэкджеком и прочим?

fasked
16.08.2010, 11:58
  #3

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
А исходников скайпа у Вас нету, уважаемый?
А может мы вообще винду свою напишем, с блэкджеком и прочим?
я думаю ТС имел в виду под "написать скайп" - ник в скайпе, чтобы связаться
хотя первая мысль тоже была такая.

twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 12:01  [ТС]     Вставка кода в exe-ый файл #4
ник в скайпе,вы же поняли меня...
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
16.08.2010, 12:04     Вставка кода в exe-ый файл #5
Цитата Сообщение от twista Посмотреть сообщение
нужно код вставить в exe-ный файл
ну а в чем проблема-то?
дизассемблировать .exe, потом из ассемблера восстановить до Си++, а дальше уж копипаст
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.08.2010, 12:06     Вставка кода в exe-ый файл #6
Цитата Сообщение от fasked Посмотреть сообщение
потом из ассемблера восстановить до Си++
Вот с этого момента подробнее, если можно...
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 12:08  [ТС]     Вставка кода в exe-ый файл #7
проблема в том что я учу delphi а с++ я плохо знаю,просмотрел код ексешника там про голосования оч много строк..то есть сам никак не сделаю,прошу помощь чью либо

Добавлено через 2 минуты
вот файл
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
16.08.2010, 12:08     Вставка кода в exe-ый файл #8
Цитата Сообщение от easybudda Посмотреть сообщение
Вот с этого момента подробнее, если можно...
да это я фантазирую
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 12:10  [ТС]     Вставка кода в exe-ый файл #9
помочь то мне поможет кто нибудь?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
17.08.2010, 08:55     Вставка кода в exe-ый файл #10
twista, любое вмешательство в программный продукт является нарушением авторских прав и лицензионного соглашения
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2010, 09:34     Вставка кода в exe-ый файл
Еще ссылки по теме:

C++ Чтение машинного кода exe файла
Загрузка исходного кода и компиляция *.exe C++
C++ Создание .exe файла из hex кода

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
17.08.2010, 09:34     Вставка кода в exe-ый файл #11
Раз пошла такая пьянка, режь последний огурец.

Ну, во-первых, не всякое вмешательства в какой-бы то ни было экзешник есть нарушение чего-то там. Некоторые экзешники распространяются под лицензией GPL GNU короче генеральная публичная лицензия. Чё хотим с экзешником то и делаем.

А на некотрые экзешники- бывает же такое- и лицензии никакой нет...

Теперь, автор, ты хоть представляешь, что такое вставить свой код в чужой экзешник? Тебе на форум по низкоуровневоему программированию, советую васм. Там с чувством, с толком, с расстановкой... А то если узнают, что ты с нашего форума, позора не оберёмся.
Yandex
Объявления
17.08.2010, 09:34     Вставка кода в exe-ый файл
Ответ Создать тему
Опции темы

Текущее время: 05:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru