- 1
board.moveBuffer[index++].moveInt = move.moveInt;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−46
board.moveBuffer[index++].moveInt = move.moveInt;
Вырвал из контекста.
board и move - глобальные переменные.
index - единственный параметр в монолитной функции длиной в 500 строк (я не преувеличиваю).
+61
if (is_page('orders_item')) {
die ("<meta http-equiv='refresh' content='0; url=".$base_url."/orders_item.php?pid=".$_GET['pid']."'>");
} elseif (is_page('orders_garant')) {
die ("<meta http-equiv='refresh' content='0; url=".$base_url."/orders_garant.php?pid=".$_GET['pid']."'>");
} else {
die ("<meta http-equiv='refresh' content='0; url=".$base_url."/orders_item.php?pid=".$_GET['pid']."'>");
}
exit();
Хоть опросник пиши:
- чем первый die() отличается от последнего?
- почему их 3?
- кто будет экранировать $_GET?
- зачем в конце exit() подпирает die()?
−42
int main(int argc, char *argv[])
{
int i = 0;
char stuffing[36];
for (i = 0; i <= 32; i += 4)
*(long *) &stuffing = 0x8048374 ;
puts(stuffing);
return 0;
}
Имея какую-либо прогу с принтфами и сканфами. имея уязвимости этих функций, мы с помощью программы, скомпилированной с этим кодом, произведем атаку на адрес 0x8048374. по этому адресу в программе - оппоненте находится точка входа в функцию, где происходит ввод строки(scanf'ом). введя строку, программа-атакер не даст выйти из функции и снова ударит по адресу входа и так далее....зацикливание.
Это лаба по анализу уязвимостей по. вот не пойму только - 8 раз пройдет цикл, и по идее должен завершиться код, но помню когда делал лабу - сканф вызывался бесконечно при атаке. еще ужасная 7я строка создает жуткое впечатление ничегонепонимания )
−47
void init_by_array64(unsigned long long init_key[],
unsigned long long key_length)
{
unsigned long long i, j, k;
init_genrand64(19650218ULL);
i=1; j=0;
k = (NN>key_length ? NN : key_length);
for (; k; k--) {
mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 62)) * 3935559000370003845ULL))
+ init_key[j] + j; /* non linear */
i++; j++;
if (i>=NN) { mt[0] = mt[NN-1]; i=1; }
if (j>=key_length) j=0;
}
for (k=NN-1; k; k--) {
mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 62)) * 2862933555777941757ULL))
- i; /* non linear */
i++;
if (i>=NN) { mt[0] = mt[NN-1]; i=1; }
}
mt[0] = 1ULL << 63; /* MSB is 1; assuring non-zero initial array */
}
"Чистый и ясный код" (с)
+137
public class Problem33 {
public static void main(String arg[]){
long l1 = Calendar.getInstance().getTimeInMillis();
int amount = 0;
for(int a=1; a<=9; a++){
for(int b=1; b<=9; b++){
for(int c=1; c<=9; c++){
for(int d=1; d<=9; d++){
int numerator = a*10+b;
int denominator = c*10+d;
double fraction = 1.0*numerator/denominator;
if(numerator < denominator){
if(
(a==c && (1.0*b/d == fraction)) ||
(a==d && (1.0*b/c == fraction)) ||
(b==c && (1.0*a/d == fraction)) ||
(b==d && (1.0*a/c == fraction))
){
amount++;
System.out.println(a + "" + b + "/" + c + "" + d);
}
}
}
}
}
}
System.out.println(amount);
long l2 = Calendar.getInstance().getTimeInMillis();
System.out.println("Time: " + (l2-l1) + "ms");
}
}
http://projecteuler.net/problem=33
http://projecteuler.net/thread=33
+57
class GetParameter
{
var $dbhost = '';
var $dbname = '';
var $dblogin = '';
var $dbpassword = '';
var $deepmenu1itemstable = '`deepmenu1items`';
var $deepmenu2itemstable = '`deepmenu2items`';
var $topmenu2itemstable = '`topmenu2items`';
var $topmenu3itemstable = '`topmenu3items`';
var $topmenu4itemstable = '`topmenu4items`';
var $news1table = '`news1`';
var $news2table = '`news2`';
var $news3table = '`news3`';
var $news4table = '`news4`';
var $sites2table = '`sites2`';
var $chattable = '`chat`';
var $votestable = '`votes`';
var $varstable = '`vars`';
var $sitestable = '`sites`';
var $orderstable = '`orders`';
var $fotoreporttable = '`fotoreport`';
var $fotortable = '`fotor`';
var $articlestable = '`articles`';
var $menuitemstable = '`menuitems`';
var $topmenuitemstable = '`topmenuitems`';
var $streetstable = '`streets`';
var $regionstable = '`regions`';
var $zastrojstable = '`zastrojs`';
var $naznachofisstable = '`naznachofiss`';
var $managerstable = '`managers`';
var $opensellstable = '`opensells`';
var $objectstable = '`objects`';
var $kodstable = '`kods`';
var $namestable = '`names`';
var $adminstable = '`admins`';
var $peoplestable = '`peoples`';
var $userstable = '`users`';
}
Сайт написан за 1500$
молчу про остальные классы и функции.
+47
return PartnersProjectDaily::getInstance()->getSummary(
array('date' => Utils::dateFormat($_POST['date']),
'options' =>new StatSearchOptions($_POST['options']),
'group' => $_POST['group']));
Инкапсулировать параметризация полностью, руки не дошли?
−93
# -*- coding: utf-8 -*-
from django.db import models
# Create your models here.
class SheduleItem(models.Model):
WIKDI = (
('monday', 'Понедельник'),
('tuesday', 'Вторник'),
('wednesday', 'Среда'),
('thursday', 'Четверг'),
('friday', 'Пятница'),
('saturday', 'Суббота'),
('sunday', 'Воскресенье'),
)
TAIM = (
('08:00', '08:00'),
('09:00', '09:00'),
('10:00', '10:00'),
('11:00', '11:00'),
('12:00', '12:00'),
('13:00', '13:00'),
('14:00', '14:00'),
('15:00', '15:00'),
('16:00', '16:00'),
('17:00', '17:00'),
('18:00', '18:00'),
('19:00', '19:00'),
('20:00', '20:00'),
('21:00', '21:00'),
)
weekday = models.CharField(max_length=20, choices=WIKDI)
time = models.CharField(max_length=6, choices=TAIM)
action = models.CharField(max_length=30)
trainer = models.ForeignKey('trainers.StrongTrainer')
def __unicode__(self):
return self.action
Django-модель для таблицы расписания занятий. Выдавлено в 2 часа ночи под Сержа Танкяна.
+159
function group_sorting_ABC(array, mode)
{
var arr = [],
resArray = [],
add;
for (var i = 0; i < array.length; i++)
{
var key;
if (array[i].index && mode == 'index')
{
switch (array[i].index.toString().length)
{
case 1:
add = '00';
break;
case 2:
add = '0';
break;
case 3:
add = '';
break;
}
key = add + array[i].index;
}
else
{
key = array[i].name;
}
arr.push(key + '@' + i);
}
arr = arr.sort();
for (var i = 0; i < arr.length; i++)
{
var a = arr[i].split('@');
var item = array[a[1]];
resArray.push(item);
}
return resArray;
}
Наковырял в middleware set top box-а MAG-250.
−45
#include <iostream>
#include <conio.h>
using namespace std;
void iswap(int &n1, int &n2)
{
int temp = n1;
n1 = n2;
n2 = temp;
}
int main()
{
int const n = 100;
int a[n];
for ( int i = 0; i < n; ++i ) { a[i] = n - i; cout << a[i] << " "; }
//заполняем массив для наглядности.
//-----------сортировка------------//
//сортирует по-возрастанию. чтобы настроить по-убыванию,
//поменяйте знаки сравнения в строчках, помеченных /*(знак)*/
int sh = 0; //смещение
bool b = false;
for(;;)
{
b = false;
for ( int i = 0; i < n; i++ )
{
if( i * 2 + 2 + sh < n )
{
if( ( a[i + sh] > /*<*/ a[i * 2 + 1 + sh] ) || ( a[i + sh] > /*<*/ a[i * 2 + 2 + sh] ) )
{
if ( a[i * 2 + 1 + sh] < /*>*/ a[i * 2 + 2 + sh] )
{
iswap( a[i + sh], a[i * 2 + 1 + sh] );
b = true;
}
else if ( a[i * 2 + 2 + sh] < /*>*/ a[ i * 2 + 1 + sh])
{
iswap( a[ i + sh], a[i * 2 + 2 + sh]);
b = true;
}
}
}
else if( i * 2 + 1 + sh < n )
{
if( a[i + sh] > /*<*/ a[ i * 2 + 1 + sh] )
{
iswap( a[i + sh], a[i * 2 + 1 + sh] );
b = true;
}
}
}
if (!b) sh++; //смещение увеличивается, когда на текущем этапе
//сортировать больше нечего
if ( sh + 2 == n ) break;
} //конец сортировки
cout << endl << endl;
for ( int i = 0; i < n; ++i ) cout << a[i] << " ";
_getch();
return 0;
}
Запостил как-то на вики как более короткая реализация с++, более понятная и главное - рабочая. Не признали. Сам смотрю - не понимаю че там написано )))