- 1
yes | rm -r /
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−132
yes | rm -r /
Так красивее :)
+113
private static void assertNoReflection()
{
foreach (StackFrame stackFrame in new StackTrace().GetFrames())
{
if (stackFrame.GetMethod().DeclaringType.Namespace == "System.Reflection")
{
throw new MethodAccessException();
}
}
}
internal static string GetKey()
{
assertNoReflection();
// ...
}
Вот так вот приходится говнить, потому что в дотнете рефлексией можно спокойно вызывать internal- и private- методы.
assertNoReflection(); проверяет, что вверх по стеку вызовов никто не балуется рефлексией.
После assertNoReflection(); из нативной длл получаем обфусцированную (вручную, лол) строку, которая далее с помощью запутанных алгоритмов (некоторые параметры для "расшифровки" опять берутся из нативной длл) приводит её в вид пароля (для доступа к запароленному архиву).
Софт не прямо уж суперсекретный, просто нужно скрыть ресурсы хотя бы для приличия. Пароль через подключение к серверу не катит.
Ко всему этому оно собрано в одно exe моновским mkbundle'ом (рефлектор не может открыть!) и поверх upx'ом. В общем, большое количество кулхацкеров отсекается (должны знать ассемблер и MSIL).
Чувствую, что говнорешение, но не могу придумать что-то более умное. Обфускаторы тоже не очень катят, ибо плохо дружат с моно.
+135
/* TODO: make this into something smarter than a linked list */
typedef struct bunchOfInstances_t {
ncInstance * instance;
int count; /* only valid on first node */
struct bunchOfInstances_t * next;
} bunchOfInstances;
ncInstance * get_instance (bunchOfInstances **headp)
{
static bunchOfInstances * current = NULL;
/* advance static variable, wrapping to head if at the end */
if ( current == NULL ) current = * headp;
else current = current->next;
/* return the new value, if any */
if ( current == NULL ) return NULL;
else return current->instance;
}
+164
o.style.cursor="wait";
document.body.style.cursor="wait";
switch(iCellSelected)
{
case 2:
//задержка .1с
AnyPage("1_2");
break;
case 4:
//задержка .1с
AnyPage("1_3");
break;
case 6:
//задержка .1с
AnyPage("1_4");
break;
case 8:
//задержка .1с
AnyPage("1_5");
break;
case 10:
//задержка .1с
AnyPage("1_6");
break;
case 12:
//задержка .1с
AnyPage("1_7");
break;
} //end switch(iCellSelected)
Это сайт максима прохорова. Посмотревших ждёт батхэт.
http://ee324704-1.hosting.parking.ru/
+105
int ccInstance_to_ncInstance(ccInstance *dst, ncInstance *src);
+114
#define boool long bool
+163
$metka=0;
$reason = $form->getValue("reason");
if ($activedate < $datenow)
{
$metka++;
}
if (trim($reason) == "")
{
$metka++;
}
if ($conflict>0)
{
$metka++;
}
if ($metka == 0)
{
for ($i=0;$i<count($srid);$i++)
{
$this->changeRates($srid[$i],$rate[$i],$datenow,$activedate,$reason);
}
pageAlert::nextPageAlert("Ставки по тарифам успешно сохранены!", PAGE_ALERT_SUCCESS);
}
Вот как кодят программисты, не слышавшие про исключения и return false при ошибках
+165
for($i=0; $i < $fldCount; $i++) {
if($fldType[$i]==8) {
eval("\$f_".$fld[$i]."_year = substr(\$f_".$fld[$i].", 0, 4);");
eval("\$f_".$fld[$i]."_month = substr(\$f_".$fld[$i].", 5, 2);");
eval("\$f_".$fld[$i]."_day = substr(\$f_".$fld[$i].", 8, 2);");
eval("\$f_".$fld[$i]."_hours = substr(\$f_".$fld[$i].", 11, 2);");
eval("\$f_".$fld[$i]."_minutes = substr(\$f_".$fld[$i].", 14, 2);");
eval("\$f_".$fld[$i]."_seconds = substr(\$f_".$fld[$i].", 17, 2);");
}
else if ($fldType[$i]==6 && $fldValue[$i]) {
${"f_".$fld[$i]."_old"} = $fldValue[$i];
$fileinfo = $db->get_row("SELECT * FROM `Filetable`
WHERE `Field_ID` = ".$fldID[$i]." AND `Message_ID` = ".$message, ARRAY_A);
if ($fileinfo) {
${"f_".$fld[$i]} = $SUB_FOLDER . rtrim($HTTP_FILES_PATH, "/") . $fileinfo["File_Path"] . "h_" . $fileinfo["Virt_Name"];
${"f_".$fld[$i]."_url"} = $SUB_FOLDER . rtrim($HTTP_FILES_PATH, "/") . $fileinfo["File_Path"] . $fileinfo["Virt_Name"];
${"f_".$fld[$i]."_name"} = $fileinfo["Real_Name"];
${"f_".$fld[$i]."_size"} = $fileinfo["File_Size"];
${"f_".$fld[$i]."_type"} = $fileinfo["File_Type"];
}
else {
preg_match("/^(.+?(\.[^.]+)?):(.+):(.+)$/", $fldValue[$i], $regs);
${"f_".$fld[$i]} = $SUB_FOLDER.$HTTP_FILES_PATH.$fldID[$i]."_".$message.$regs[2];
${"f_".$fld[$i]."_url"} = $SUB_FOLDER.$HTTP_FILES_PATH.$fldID[$i]."_".$message.$regs[2];
${"f_".$fld[$i]."_name"} = $regs[1];
${"f_".$fld[$i]."_size"} = $regs[4];
${"f_".$fld[$i]."_type"} = $regs[3];
}
}
}
И ещё один кусочек из того же файла (/netcat/message.php).
+166
if($posting == 0) {
if(!isset($posting) && count($fld)) {
Всё та же NetCat 3.6.
+166
MyClass * obj = (MyClass*)true;
while (obj)
{
obj = GetObj();
// ...
}