 |
Цитата: |
 |
|
|
|
|
|
Идея есть.
Пока сырая, но совместно можно что-то придумать.
В Charles подменить параметры в Request.
Вот так выглядит строка во время обслуживания клиента.
auth=23acb9f6ca2b824b21432b1a46f0aa1f&user%5Fid=72 37791&visitor%5Fid=1&action=accept&viewer%5Fid=723 7791&seed=1277766406954&slots=2%2C9&method=set%5Fv isitor&pf%5Fsig=84179e1c3d4902d72cc3c3cb80b68f70&u id=2495115
Конкретно речь идёт о подмене параметра "pf_sig".
Он формируется на основе MD5 из определённой комбинации, в состав которой входят параметры игры на данный момент, плюс секретный ключ, плюс ещё кое-что.
Из исходников игры выцепил информацию, содержащуюся в ActionScript.
==================================
Секретные ключи:
SAPI_secret:"de26642ef62064f13b4d1c2f3aedd009"
this._sapi = {url:"http://bar.playflock.com/game.php", try_url:"http://try-bar.playflock.com/game.php", secret:"de26642ef62064f13b4d1c2f3aedd009", policy:"http://bar.playflock.com/crossdomain.xml"};
PAPI_secret:"9KO7bgsZyz"
this._papi = {secret:"9KO7bgsZyz", settings:vk_allow_settings.NOTIFICATIONS | vk_allow_settings.FRIENDS | vk_allow_settings.PHOTOS};
==================================
Присвоение переменных:
this.test_mode = param1;
this.test_data = param2;
this.game_name = param4;
SAPI_URL = param5;
SAPI_TRY_URL = param6;
SAPI_SECRET = param7;
this.policy_file = param8;
this.api_id = param9;
this.user_id = param10;
this.viewer_id = param11;
this.is_app_user = param12;
this.auth_key = param13;
this.secret_key = param14;
this.need = param3;
this.game_currency_titles = param15;
this.real_currency_titles = param16;
this.game_currency_values = param17;
this.real_currency_values = param18;
==================================
Образование подписи:
protected function _get_signature()
{
var _loc_2:String = null;
var _loc_3:String = null;
var _loc_1:* = new Array();
for (_loc_2 in this._params)
{
_loc_1.push(_loc_2 + "=" + this._params[_loc_2]);
}
_loc_1.sort();
_loc_3 = this._settings.viewer_id;
for (_loc_2 in _loc_1)
{
_loc_3 = _loc_3 + _loc_1[_loc_2];
}
_loc_3 = _loc_3 + this._settings.secret_key;
_loc_3 = md5.encrypt(_loc_3);
return _loc_3;
}// end function
==================================
Формирование MD5:
public function setup(param1:Boolean, param2:Object, param3:Object, param4:Object, param5:Object, param6:Object, param7:base_user_info)
{
var _loc_8:* = new vk_game_settings(param1, param2, param5.settings, param3.name, param4.url, param4.try_url, param4.secret, param4.policy, this._get_param("api_id"), this._get_param("user_id"), this._get_param("viewer_id"), stage_params["is_app_user"] == 1, this._get_param("auth_key", true), param5.secret, this._get_param("group_id"), this._get_param("viewer_type"), this._get_param("referrer", true), this._get_param("post_id", true), this._get_param("poster_id", true), this._get_param("scale"), this._get_param("api_url", true), this._get_param("api_settings"), param6.game_titles, param6.real_titles, param6.game_values, param6.real_values);
super.init(_loc_8, param7);
this._photo_uploader = new vk_photo_uploader(this._on_photo_upload_confirm, this._on_photo_upload_complete, param3.album_title, param3.album_description);
return;
}// end function
==================================
Могу приложить исходные ActionScripts для тех, кто понимает!
Вот такая идея.
Если кто разбирается, то давайте обсудим совместные действия.
Добавлено через 23 минуты
Возможно в чём-то ошибаюсь и что-то пропустил.
Пока делал только поверхностные исследования.
В сети вообще нет никакой информации по этой игре.
Давайте думать!
Добавлено через 10 часов 49 минут
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Только визуально получилось
|
|
 |
|
 |
|
Визуально деньги меняются, только если "замораживать" адрес.
Иначе бесполезно.
В игре идёт сверка данных с сервером каждые 30 секунд.
Но речь не идёт о "визуально".
Это несложно, да и смысла нет.