- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
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;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−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;
}
Запостил как-то на вики как более короткая реализация с++, более понятная и главное - рабочая. Не признали. Сам смотрю - не понимаю че там написано )))
+50
<?php
$confs = array();
$q = new WP_Query(array('post_type' => 'conference',
'posts_per_page' => -1,
'meta_key' => 'cd-conference-date-start',
'orderby' => 'meta_value_num',
'order' => 'DESC'
));
while($q->have_posts()): $q->the_post();
$confs[date("Y", get_post_meta($post->ID, 'cd-conference-date-start', true))][] = array('conf_title' => get_the_title(),
'conf_date_start' => get_post_meta($post->ID, 'cd-conference-date-start', true),
'conf_date_end' => get_post_meta($post->ID, 'cd-conference-date-end', true),
'conf_link' => get_permalink(),
'conf_city' => '', /* Город */
'conf_icon' => '' /* Иконка */
);
endwhile;
wp_reset_postdata();
foreach($confs as $key => $value)
{
?>
<h1 class="year"><?=$key;?></h1>
<?php
//print_r($value);
?>
<div class="conferences">
<?php foreach($value as $val)
{
//print_r($val);
?>
<div class="conf">
<div class="leftcol">
<a href="<?=$val["conf_link"];?>"><img src="<?=$val["conf_icon"];?>"></a>
</div>
<div class="rightcol">
<a href="<?=$val["conf_link"];?>"><h2><?=$val["conf_title"];?></h2></a>
<span class="date-place">
<?php
//setlocale(LC_TIME, "ru_RU");
if(date("m", $val["conf_date_start"]) == date("m", $val["conf_date_end"])) $confdays = date("j", $val["conf_date_start"])."-".date("j", $val["conf_date_end"])." ".mb_strtolower(strftime("%B", $val["conf_date_start"]));
else
{
$confdays = date("j", $val["conf_date_start"])." ".mb_strtolower(strftime("%B", $val["conf_date_start"]))." - ".date("j", $val["conf_date_end"])." ".mb_strtolower(strftime("%B", $val["conf_date_end"]));
}
?>
<?=$confdays;?>, <?=$val["conf_city"];?>
</span>
</div>
</div>
<?php
}
?>
</div>
<?php } ?>
+130
int print_entry(const char* name, const char* dir,const struct stat* st)
{
if(!S_ISDIR(st->st_mode)){
if(S_ISREG(st->st_mode)){
printf("<file type=\"regular file\" owner=\"%d\" group=\"%d\">%s/%s</file>\n",st->st_uid,st->st_gid,dir,name);
};
if(S_ISCHR(st->st_mode)){
printf("<file type=\"charcter device\" owner=\"%d\" group=\"%d\">%s/%s</file>\n",st->st_uid,st->st_gid,dir,name);
}
if(S_ISBLK(st->st_mode)){
printf("<file type=\"block device\" owner=\"%d\" group=\"%d\">%s/%s</file>\n",st->st_uid,st->st_gid,dir,name);
}
if(S_ISFIFO(st->st_mode)){
printf("<file type=\"FIFO(named pipe)\" owner=\"%d\" group=\"%d\">%s/%s</file>\n",st->st_uid,st->st_gid,dir,name);
}
if(S_ISLNK(st->st_mode)){
char *linkname;
ssize_t r;
char *lname=strcat(dir,"");
linkname = new char[st->st_size + 1];
if (linkname == NULL) {
fprintf(stderr, "insufficient memory\n");
exit(EXIT_FAILURE);
}
r=readlink(lname, linkname, st->st_size + 1);
if (r < 0) {
return 0;
}
if (r > st->st_size) {
fprintf(stderr, "symlink increased in size "
"between lstat() and readlink()\n");
exit(EXIT_FAILURE);
}
linkname[st->st_size] = '\0';
printf("<file type=\"symbolic link\" owner=\"%d\" group=\"%d\" linkname=\"%s\">%s/%s</file>\n",st->st_uid,st->st_gid,linkname,dir,name);
}
if(S_ISSOCK(st->st_mode)){
printf("<file type=\"socket\" owner=\"%d\" group=\"%d\">%s/%s</file>\n",st->st_uid,st->st_gid,dir,name);
}
}
return 0;
}
int main(int argc, char* argv[])
{
if(argc != 2)
{
fprintf(stderr, "Usage: %s DIR\n", argv[0]);
exit(1);
}
printf("<dir name=\"%s\">\n",argv[1]);
walk(argv[1], print_entry, 1,0);
printf("</dir>",argv[1]);
}
Создание xml файла всех директорий, поддиректорий и их файлов