هاك الأوسمة
ملاحظة : دائما قم بنسخ الملفات الاصلية التي ستعدل عليها نسخة احتياطية حتى ان كان هناك خطأ ما يتم ارجاع الوضع كما كان . .
ملاحظة اخرى : الشرح شامل و مفصل كما ستجد في المرفقات الملفات التي عدلت ما عليك سوا استبدالها ولا يجب عليك ان تتبع الشرح كاملاً .....................
تمت تجربة الهاك على نسخة 3.0.9 و هي تعمل بشكل ممتاز و لا تنسى اخذ نسخة احتياطية او تجربتها على السيرفر الشخصي اولا ...
1- الخطوه الاولى التعديل على ثلاث ملفات:
vb/admincp/index.php
vb/admincp/user.php
vb/includes/functions_showthread.php
افتح ملف: vb/admincp/index.php
إبحث عن الكود التالي:
construct_nav_group($vbphrase['announcements']);
أضف بعده الكود التالي:
construct_nav_option("إضافة وســام","award.php?do=add","|");
construct_nav_option("تعديل وســام","award.php?do=modify");
construct_nav_group("التحكم بالأوسمة");
إنتهينا من الملف الأول
---------------------------------------------------------------
إفتح ملف: vb/admincp/user.php
إبحث عن الكود التالي:
print_input_row($vbphrase['ip_address'], 'user[ipaddress]',
$user['ipaddress']);
أضف بعده الكود التالي:
// award/medals/card hack by lesane
print_table_header("Awards");
print_yes_no_row("Enable awards for
$user[username]?","hasaward",$user[award]);
$result = mysql_query("SELECT * FROM useraward where
userid='$user[userid]'");
if ($row = mysql_fetch_array($result)) {
$toegang="yes";
} else {
$toegang="no";
}
if ($toegang=="yes") {
$result=$DB_site->query("SELECT awardsid,name,url,userid,aw FROM
useraward where userid=$user[userid]");
while($award = mysql_fetch_array($result) ) {
$lesane="yes";
$id = $award[awardsid];
if($award[aw] == "$id" and $award[userid] == "$user[userid]") {
$lala=" checked";
$up="equal";
} else {
$lala="";
$up="not_equal";
}
echo "<tr class='".fetch_row_bgclass()."'><td><input
type='checkbox' name='aw[$id]' value='yes'";
echo "$lala>$award[name]</td><td nowrap>";
echo "<input type=\"hidden\" name=\"all[$id]\"
value=\"$up\">";
echo "<img src=\"$award[url]\"> </td>";
}
echo "<input type=\"hidden\" name=\"lessie\"
value=\"$lesane\">";
} elseif ($toegang=="no") {
$noawa=$DB_site->query("SELECT awardsid,name,url,aw FROM
award");
while($useraward = mysql_fetch_array($noawa) ) {
$id = $useraward[awardsid];
$lesane="no";
echo "<tr class='".fetch_row_bgclass()."'><td><input
type='checkbox' name='uaw[$id]' value='yes'";
if ($uaw =='yes') {
echo " checked>$useraward[name]</td><td nowrap>";
$userup='equal';
} else {
echo ">$useraward[name]</td><td nowrap>";
$userup='not_equal';
}
echo "<input type=\"hidden\" name=\"uall[$id]\"
value=\"$userup\">";
echo "<img
src=\"$useraward[url]\"> </td>";
echo "<input type=\"hidden\" name=\"userhomes[$id]\"
value=\"$useraward[name]\">";
echo "<input type=\"hidden\" name=\"userurls[$id]\"
value=\"$useraward[url]\">";
}
echo "<input type=\"hidden\" name=\"lessie\"
value=\"$lesane\">";
}
// echo "</tr></td></table>";
// print_table_break();
// end award/medals/card hack by lesane
نفس الملف: vb/admincp/user.php
إبحث عن الكود التالي:
// ###################### Start do update #######################
if ($_POST['do'] == 'update')
{
globalize($_POST, array(
'password',
'user',
'membergroup',
'modifyavatar',
'birthday',
'signature',
'modifyprofilepic',
'joindate',
'lastvisit',
'lastactivity',
'lastpost',
'options',
'referrer',
'threaddisplaymode' => INT
));
إستبدله بالكود التالي:
// ###################### Start do update #######################
if ($_POST['do'] == 'update')
{
globalize($_POST, array(
'password',
'user',
'membergroup',
'modifyavatar',
'birthday',
'signature',
'modifyprofilepic',
'joindate',
'lastvisit',
'lastactivity',
'lastpost',
'options',
'referrer',
'hasaward',
'lessie',
'aw',
'all',
'uaw',
'uall',
'userhomes',
'userurls',
'threaddisplaymode' => INT
));
---------------------------------------------------
نفس الملف: vb/admincp/user.php
إبحث عن الكود التالي:
$user['options'] = convert_array_to_bits(array_merge($olduserinfo ,
$options), $_USEROPTIONS);
أسفل منه ضع الكود التالي:
// award/medals/card hack by lesane
if ($lessie=="yes") {
while (list($id,$was) = each($all))
{
$now = $aw[$id];
$was = $all[$id];
if ($now == 'yes' and $was == 'not_equal' ) {
$DB_site->query("UPDATE useraward SET aw='$id' WHERE
userid=$userid AND awardsid='$id'");
} elseif ($now !='yes' and $was=='equal' ) {
$DB_site->query("UPDATE useraward SET aw='0' WHERE userid=$userid AND
awardsid='$id'");
}
}
} elseif ($lessie=="no") {
while (list($id,$was) = each($uall))
{
$now = $uaw[$id];
$was = $uall[$id];
$uhomes = $userhomes[$id];
$uurls = htmlspecialchars( $userurls[$id] );
if( $now == 'yes' )
$aw = $id;
else
$aw = 0;
$DB_site->query("INSERT into useraward (awardsid,userid,name,url,aw)
VALUES ('$id','$userid','$uhomes','$uurls','$aw')");
}
}
$DB_site->query("UPDATE user SET award='$hasaward' WHERE userid=$userid");
// end award/medals/card hack by lesane
إنتهينا من الملف الثاني
-------------------------------------------
إفتح ملف: vb/include/function_showthread.php
إبحث عن الكود التالي:
$show['pmlink'] = iif ($post['receivepm'] AND $vboptions['enablepms'], true, false);
أسف منه ضع الكود التالي:
// awards/medals/cards hack by lesane
if ($post['award']=="1")
{
$result=$DB_site->query("SELECT * FROM useraward WHERE
userid='$post[userid]' AND awardsid=aw ");
while ($awardsp=$DB_site->fetch_array($result))
{
eval('$post[hasaward] .= "' . fetch_template('awards') . '";');
}
}
// awards/medals/cards hack by lesane
إنتهينا من الملف الثالث
=================================================
الأن نرفع الملفات حسب التوزيع التالي:
vb/admincp/index.php
vb/admincp/user.php
vb/includes/functions_showthread.php
الملفات الإضافية:
vb/admincp/award.php
vb/admincp/addawardtable.php
الأن نقوم بتنصيب الملف التالي:
http://www.alamuae.com/vb/admincp/addawardtable.ph p
بعد الإنتهاء من التنصيب نقوم بحذف الملف
الان قم بحذف هذا الملف بعد التنصيب
<img src="$awardsp[url]" alt="$awardsp[name]"><br>
ضع الكود التالي في اخر شي او اي مكان تريده
$post[hasaward]<br />
--------------------------------------------
ستجد هاك الاوسمة كالتالي
اضف وعدل كما تريد
----------------------------------------------------
ملاحظة : تم تركيب الهاك على نسخة 3.0.9 و تعمل 100%
بالتوفيق