Помогите пожалуйста понять, что написанно в открытой мной DLL. Не большой кусок кода - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе
15.10.2013, 18:49
#1
Разведчик
Регистрация: 07.04.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Помогите пожалуйста понять, что написанно в открытой мной DLL. Не большой кусок кода
Здравствуйте. Сразу скажу, что имею понятие, что такое Assembler и как оно работает. Тут вопрос как рас таки в отсутствии опыта хакерства и работы с С#.
Сканил Dll прогой PEID. Открывал декомпилятором IDA.
Файлик приложу обязательно.
Вопрос ниже.
Меня интересует вот эти куски кода: (Все три куска делают одну и туже операцию просто по разному. Первый кусок кода заставляет вращаться деталь в игре в положительную сторону, после нажатия соответствующей кнопки на экране. Второй кусок кода вращает детальку в обратную сторону, по нажатию кнопки на экране. Ну и третий кусок кода возвращает детальку в исходное положение, так же по нажатию кнопки на экране.
Код:
.method public hidebysig instance void MovePlusAction(class [Assembly-CSharp]KSPActionParam param)
{
.maxstack 3
.locals init (valuetype [Assembly-CSharp]KSPActionType V0)
nop
ldarg.1
callvirt instance valuetype [Assembly-CSharp]KSPActionType [Assembly-CSharp]KSPActionParam::get_type()
stloc.0
ldloc.0
switch loc_32B8, loc_32CC
br.s loc_32F8
loc_32B8: // CODE XREF: MovePlusAction+9j
ldarg.0
dup
ldfld int32 MuMechToggle::moveFlags
ldc.i4 0x100
or
stfld int32 MuMechToggle::moveFlags
br.s loc_32F8
loc_32CC: // CODE XREF: MovePlusAction+9j
ldarg.0
dup
ldfld int32 MuMechToggle::moveFlags
ldc.i4 0xFFFFFEFF
and
stfld int32 MuMechToggle::moveFlags
ldarg.0
ldfld class [Assembly-CSharp]FXGroup MuMechToggle::fxSndMotor
ldfld class [UnityEngine]UnityEngine.AudioSource [Assembly-CSharp]FXGroup::audio
callvirt instance void [UnityEngine]UnityEngine.AudioSource::Stop()
nop
ldarg.0
ldc.i4.0
stfld bool MuMechToggle::isPlaying
br.s loc_32F8
loc_32F8: // CODE XREF: MovePlusAction+16j
// MovePlusAction+2Aj
ret
}
Код:
.method public hidebysig instance void MoveMinusAction(class [Assembly-CSharp]KSPActionParam param)
{
.maxstack 3
.locals init (valuetype [Assembly-CSharp]KSPActionType V0)
nop
ldarg.1
callvirt instance valuetype [Assembly-CSharp]KSPActionType [Assembly-CSharp]KSPActionParam::get_type()
stloc.0
ldloc.0
switch loc_3318, loc_332C
br.s loc_3358
loc_3318: // CODE XREF: MoveMinusAction+9j
ldarg.0
dup
ldfld int32 MuMechToggle::moveFlags
ldc.i4 0x200
or
stfld int32 MuMechToggle::moveFlags
br.s loc_3358
loc_332C: // CODE XREF: MoveMinusAction+9j
ldarg.0
dup
ldfld int32 MuMechToggle::moveFlags
ldc.i4 0xFFFFFDFF
and
stfld int32 MuMechToggle::moveFlags
ldarg.0
ldfld class [Assembly-CSharp]FXGroup MuMechToggle::fxSndMotor
ldfld class [UnityEngine]UnityEngine.AudioSource [Assembly-CSharp]FXGroup::audio
callvirt instance void [UnityEngine]UnityEngine.AudioSource::Stop()
nop
ldarg.0
ldc.i4.0
stfld bool MuMechToggle::isPlaying
br.s loc_3358
loc_3358: // CODE XREF: MoveMinusAction+16j
// MoveMinusAction+2Aj
ret
}
Код:
.method public hidebysig instance void MoveCenterAction(class [Assembly-CSharp]KSPActionParam param)
{
.maxstack 3
.locals init (valuetype [Assembly-CSharp]KSPActionType V0)
nop
ldarg.1
callvirt instance valuetype [Assembly-CSharp]KSPActionType [Assembly-CSharp]KSPActionParam::get_type()
stloc.0
ldloc.0
switch loc_3378, loc_338C
br.s loc_33B8
loc_3378: // CODE XREF: MoveCenterAction+9j
ldarg.0
dup
ldfld int32 MuMechToggle::moveFlags
ldc.i4 0x400
or
stfld int32 MuMechToggle::moveFlags
br.s loc_33B8
loc_338C: // CODE XREF: MoveCenterAction+9j
ldarg.0
dup
ldfld int32 MuMechToggle::moveFlags
ldc.i4 0xFFFFFBFF
and
stfld int32 MuMechToggle::moveFlags
ldarg.0
ldfld class [Assembly-CSharp]FXGroup MuMechToggle::fxSndMotor
ldfld class [UnityEngine]UnityEngine.AudioSource [Assembly-CSharp]FXGroup::audio
callvirt instance void [UnityEngine]UnityEngine.AudioSource::Stop()
nop
ldarg.0
ldc.i4.0
stfld bool MuMechToggle::isPlaying
br.s loc_33B8
loc_33B8: // CODE XREF: MoveCenterAction+16j
// MoveCenterAction+2Aj
ret
}
У меня стоит задача вытащить адреса этих деталей (т.е. как и куда он ним обращается), а затем сделать тоже самое самому только вращение будет происходить в автоматическом режиме и на необходимый мне угол - как бы запрограммировать детальку изначально))))
15.10.2013, 21:35
#2
Старший сержант
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Re: Помогите пожалуйста понять, что написанно в открытой мной DLL. Не большой кусок к
Что то мне подсказывает что это будет не просто... в особенности потому, что выходной машинный код этого файла, по идее, будет меняться в зависимости от разрядности, конфигурации машины, версии фреймворка...
16.10.2013, 15:10
#3
Рыцарь-капитан
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
Re: Помогите пожалуйста понять, что написанно в открытой мной DLL. Не большой кусок к
проще поменять оппкоты
ps [Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось warl0ck; 16.10.2013 в 15:22 .
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 15:00 .