Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 25.07.2020
Сообщений: 150

Проблемы с регистрами

31.07.2021, 23:21. Показов 2862. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, вызываю функцию в чужом процессе(пока что через dll)
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
#include <Windows.h>
 
typedef int(*func)(char* i, int j);
 
func funcAddr;
 
void Start()
{
    char str[256];
    strcpy(str, "D:\\Games\\GTA SAMP\\cleo\\HeadshotAimbot.cs");
    HANDLE cleoAddr = GetModuleHandleA("cleo.asi");
    DWORD cleoAddrLoadTwoParam = 1;
    DWORD cleoAddrLoad = (DWORD)cleoAddr + 0xFC10;
    funcAddr = (func)cleoAddrLoad;
 
    funcAddr(str, cleoAddrLoadTwoParam);
 
    return;
}
 
BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        Start();
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
Короче функция принимает 2 параметра, строку и число.
Вот нашел вызов это фанки в иде
Assembler
1
2
3
4
lea     eax, [ebp+FindFileData.cFileName]
mov     ecx, edi
push    eax
call    sub_1000FC10
Короче в откладчике ставлю брекпоинт на эту функцию и при инжекте длл в процесс, регистры располагаются наоборот. В регистре eax, получается число, а в регистре ecx, строка. А как мы смотрим в асм должно быть все наоборот. Никак не пойму что за ерунда. Буду благодарен в помощи
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.07.2021, 23:21
Ответы с готовыми решениями:

Работа с регистрами
Как записать в регистр AL содержимое переменной (к примеру, min), заданной как слово? (dw)

Работа с регистрами
Даны три переменные A B и C (int) (int) (long int) Переставить байты в переменных по следующей схеме Начальная нумерация байт A = 11...

Работа с регистрами
Добрый всем вечер. Опять я до вас... Только я начал понимать спинным мозгом как эта шьука работает (микроконтроллер) - и все опять на...

2
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
01.08.2021, 00:06
Цитата Сообщение от Dhdbdb Посмотреть сообщение
В регистре eax, получается число, а в регистре ecx, строка. А как мы смотрим в асм должно быть все наоборот.
что толку смотреть на статику иды.
дизассемблируются байты, а не их порядок относительно va.

разверните функцию sub_1000FC10 и посмотрите что есть первый аргумент, а что второй.
1
841 / 347 / 68
Регистрация: 20.11.2012
Сообщений: 815
01.08.2021, 09:46
Цитата Сообщение от Dhdbdb Посмотреть сообщение
lea eax, [ebp+FindFileData.cFileName]
mov ecx, edi
push eax
call sub_1000FC10
Похоже на вызов thiscall-функции.

Цитата Сообщение от Dhdbdb Посмотреть сообщение
typedef int(*func)(char* i, int j);
В прототипе не указан calling convention. По умолчанию - cdecl, если явно не задается при компиляции.
Из какого регистра на стек будет помещен указатель - на усмотрение компилятора в целом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.08.2021, 09:46
Помогаю со студенческими работами здесь

работа с регистрами ST
Как переложить содержимое st(0) в st(1) и обратно?

Помогите с регистрами.
8.1. БП. Нужно создать отчет, выводящий количество материалов, ушедших на изготовление конкретной продукции, с указанием сумм поступления и...

Задача с регистрами
Разбирающиеся люди, помогите сделать задание по программированию. Времени разбираться самому нет, поэтому обращаюсь за помощью, заранее...

Работа с регистрами
Есть самописная конфа. Не моя. Разбираюсь что да как. Есть код (корректирующая обработка), который выбирает из конкретного регистра...

Работа с регистрами
Пишу курсовую, выбрал очень неудачную тему Агентства недвижимости. (с точки зрения конкретных требований, что именно должно быть в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru