- 1
https://pastebin.com/MarcPuJc
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
https://pastebin.com/MarcPuJc
говно для подтирания важных комментов в вк. Весь не поместился, прилегаю ссылку.
+1
private async getNewKey(): Promise<string> {
let i: number = 0;
let key: string;
while (i < 50000) {
key = this.generateKey(MIN_REFERRAL_NAME_LENGTH);
const inDatabase: number = await ReferralEntity.count({ where: { name: key }, transaction: this._transaction });
if (inDatabase === 0) {
const inProcess: boolean = newKeyInProcess.has(key);
if (!inProcess) {
newKeyInProcess.add(key);
break;
}
}
i++;
}
return key;
}
Тайпскрипт. MIN_REFERRAL_NAME_LENGTH = 3
Как считаете, когда всё приложение встанет колом?
0
protected override Detail GetDetailPage(
aggregate aggregate,
int cashbackRate,
BannerResponse bannerInfo,
List<MediaShortResponse> mediaInfo,
EntityFavourites likeCountInfo,
List<FavouriteEntity> likeInfo)
{
var announcementDetail = new Detail
(
aggregate.Details.Id,
aggregate.Details.Alias,
aggregate.Details.Title,
aggregate.Details.Description,
aggregate.Details.DescriptionShortcut,
aggregate.Details.Age,
aggregate.ExtendedDetails.DataSourceId,
aggregate.ExtendedDetails.DataSourceItemId,
cashbackRate,
null,
aggregate.ExtendedDetails.LastEventDateTime,
aggregate.ExtendedDetails.EventClosestDateTime,
aggregate.ExtendedDetails.Url,
aggregate.ExtendedDetails.Category != null
? new AnnouncementCategory(aggregate.ExtendedDetails.Category.Id,
aggregate.ExtendedDetails.Category.Title,
aggregate.ExtendedDetails.Category.Url)
: null,
aggregate.ExtendedDetails.Tags?.Select(ss =>
new Tag(ss.Title, HttpUtility.UrlPathEncode(ss.Url))
).ToList(),
aggregate.Details.Privileges?.Select(ss => new Privilege()
{
Description = ss.Description,
Id = ss.Id,
ImageUrl = ss.ImageUrl.ToString(),
Title = ss.Title
}).ToList(),
mediaInfo.Select(m => new Media
{
Type = m.Type,
Url = m.Url
}).ToList(),
aggregate.ExtendedDetails.EventMinPrice,
likeInfo.FirstOrDefault(x => x.EntityId == aggregate.Details.Id)?.IsSet ?? false,
likeCountInfo?.TotalCount,
aggregate.ExtendedDetails.Promotext,
bannerInfo != null ? new Banner { Url = bannerInfo.Url, ImageUrl = bannerInfo.ImageUrl } : null,
aggregate.Details.Venue != null
? new ShortVenue(aggregate.Details.Venue.Id,
aggregate.Details.Venue.Title,
aggregate.Details.Venue.Url.Replace(_liveBaseAddress, ""),
aggregate.Details.Venue.Address)
: null,
(AnnouncementStatus)aggregate.Details.Status,
aggregate.ExtendedDetails.PremiumRule,
aggregate.Details.HasPrivilegeEnabled,
);
return announcementDetail;
}
0
void
AuxFunc::homePath(std::string *filename)
{
char *fnm = getenv("USERPROFILE");
if(fnm)
{
*filename = std::string(getenv("USERPROFILE"));
}
else
{
fnm = getenv("HOMEDRIVE");
if(fnm)
{
*filename = std::string(getenv("HOMEDRIVE"));
}
else
{
fnm = getenv("HOMEPATH");
if(fnm)
{
*filename = std::string(getenv("HOMEPATH"));
}
else
{
fnm = getenv("HOME");
if(fnm)
{
*filename = std::string(getenv("HOME"));
}
else
{
fnm = getenv("SystemDrive");
if(fnm)
{
*filename = std::string(getenv("SystemDrive"));
}
else
{
std::cerr << "Cannot find user home folder" << std::endl;
exit(1);
}
}
}
}
}
toutf8(*filename);
}
Угадайте откуда код!
0
<script type="text/javascript">
var reformalOptions = {
project_id: 9409,
show_tab: false,
project_host: "govnokod.reformal.ru"
};
(function() {
var script = document.createElement('script');
script.type = 'text/javascript'; script.async = true;
script.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'media.reformal.ru/widgets/v3/reformal.js';
document.getElementsByTagName('head')[0].appendChild(script);
})();
</script>
--------------------------------------------------------------------------------
Request:
GET http://media.reformal.ru/widgets/v3/reformal.js
Referer: http://govnokod.ru/
--------------------------------------------------------------------------------
Response:
307 Temporary Redirect
Location: http://r.rrzb.ru/?reg=11&orig=http%3A%2F%2Fmedia.reformal.ru%2Fwidgets%2Fv3%2Freformal.js
--------------------------------------------------------------------------------
С каких-то там пор, у недобросовестных провайдеров повелось добавлять на страницу без https свои шуры-муры и рекламные финтифлюшки, но сейчас, некоторые более хитрые провайдеры, пошли ещё дальше.
Смотрят, значит, они на http страничку, или просто ловят запросы js по http, видят подключаемый javascript и вуаля - подменяют заголовок ответа на 307 Location с новым скриптом со своим содержимым.
Можете сами посмотреть, если у кого такой вот провайдер, например.
На этом сайте, по http://govnokod.ru, так и происходит.
Как с этим бороться?
Например добавлением атрибута "integrity":
<script src="http://media.reformal.ru/widgets/v3/reformal.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4 YfRvH+8abtTE1Pi6jizo"></script>
Но у этого способа, сами понимаете, существуют определённые сложности.
Второй способ - это добавить к адресу любой get параметр:
<script src="http://media.reformal.ru/widgets/v3/reformal.js?rand=random"></script>
Конечно, это вообще не спасёт от подмены через 307 Location, но провайдер по своей методике такие URL пока не трогает.
0
Просто оффтоп #27
#1: https://govnokod.ru/20162 https://govnokod.xyz/_20162
#2: https://govnokod.ru/25329 https://govnokod.xyz/_25329
#3: https://govnokod.ru/25415 https://govnokod.xyz/_25415
#4: (vanished) https://govnokod.xyz/_25472
#5: https://govnokod.ru/25693 https://govnokod.xyz/_25693
#6: (vanished) https://govnokod.xyz/_26649
#7: https://govnokod.ru/26672 https://govnokod.xyz/_26672
#8: https://govnokod.ru/26924 https://govnokod.xyz/_26924
#9: https://govnokod.ru/27072 https://govnokod.xyz/_27072
#10: https://govnokod.ru/27086 https://govnokod.xyz/_27086
#11: https://govnokod.ru/27122 https://govnokod.xyz/_27122
#12: https://govnokod.ru/27153 https://govnokod.xyz/_27153
#13: https://govnokod.ru/27159 https://govnokod.xyz/_27159
#14: https://govnokod.ru/27200 https://govnokod.xyz/_27200
#15: https://govnokod.ru/27237 https://govnokod.xyz/_27237
#16: https://govnokod.ru/27282 https://govnokod.xyz/_27282
#17: https://govnokod.ru/27319 https://govnokod.xyz/_27319
#18: https://govnokod.ru/27380 https://govnokod.xyz/_27380
#19: https://govnokod.ru/27500 https://govnokod.xyz/_27500
#20: https://govnokod.ru/27607 https://govnokod.xyz/_27607
#21: https://govnokod.ru/27951 https://govnokod.xyz/_27951
#22: https://govnokod.ru/28076 https://govnokod.xyz/_28076
#23: https://govnokod.ru/28266 https://govnokod.xyz/_28266
#24: https://govnokod.ru/28373 https://govnokod.xyz/_28373
#25: https://govnokod.ru/28474 https://govnokod.xyz/_28474
#26: https://govnokod.ru/28563 https://govnokod.xyz/_28563
+1
В одном из минувших топиков приподымали тему POP SMDб я тоже решил напейсать генератор паролей к этой игре.
https://pastebin.com/ANHTMmeM
на основе исходников roman-pro
+1
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void PasswordChecker(void);
void sub_BB4F(unsigned char* Password);//subroutine $BB4F and so on...
void sub_BB21(void);
void sub_BBE0(void);
void sub_BBEA(void);
void SEC_SBC_6502(unsigned char operand);
void ADC_6502_simplified(unsigned char operand);
unsigned char Password[8];//$0766 to $076D in RAM, when a player enters it
unsigned char Invalidity=0;//$0764 in RAM
unsigned char Level;//$$0070 in RAM
unsigned char TimeTens;//$04c5 in RAM
unsigned char TimeOnes;//$04c6 in RAM
unsigned char Byte4BF, Byte17, Byte18;
unsigned char a, x;
unsigned char c=0;//carry flag
//former char Byte76A is Password[4] now, former char Byte76C is Password[6] now
void PasswordGenerator(void);
void BuildORTable(void);
unsigned char* BuildParticularLevelsArray(unsigned char DesiredLevel);//will think of it later...
void SimplifiedLevelGenerator(unsigned char* PassToFill,unsigned char Level);//finds just one 2nd,3rd,6th,8th digit combo
int main()
{
int Choice;
printf("Enter g if you'd like to generate a new password.\nEnter a to analyze an existing password.\n");
Choice=fgetc(stdin);
flushall();
if (Choice=='a')
PasswordChecker();
if (Choice=='g')
PasswordGenerator();
if (Choice=='s')//'level function' is basic when generating a pass
BuildORTable();//so here a bit of 'hidden' investigation, which will be useful
//if I ever decide to rewrite this prog to output all passes possible, not just one
printf("Press any key to quit.\n");
getch();
return 0;
}
void PasswordChecker(void)
{
char InputString[9];//one extra byte needed due to fgets
int i;
printf("Please enter your password to test:\n");
fgets(InputString,9,stdin);
for(i=0;i<8;i++)
{
if ((InputString[i]>57)||(InputString[i]<48))
{
printf("This string contains non-digits.\n");
return;
}
else
Password[i]=InputString[i]-48;//ascii to digit
}
sub_BB4F(Password);
if (Invalidity==1)
{
printf("This password is invalid.\n");
return;
}
printf("%s%d","Level: ",Level);
printf("%s%d%d\n"," Time: ",TimeTens,TimeOnes);
if (Level==15)
printf("Level 15 doesn't exist. So-called level 15 passwords are programming mistakes and cause system hang.\n");
if (Level==16)
printf("Level 16 doesn't exist. So-called level 16 passwords are programming mistakes and lead you to a buggy screen where Prince can't move.\n");
return;
}
void sub_BB4F(unsigned char* Password)//$BB4F
{
a=0;
x=0;
while (x<8)
{
a=a+Password[x];
x++;
}
if(a==0)
{
Invalidity=1;//$BBC0
return;
}
Byte17=Password[4];//$BB63
Byte18=Password[6];
Password[4]=0;
Password[6]=0;
sub_BB21();//$BB72,calculates and writes 1st checksum to Password[4], 2nd checksum to Password[6]
if (Password[4]!=Byte17)
{
Invalidity=1;
return;
}
Генератор паролей для игры Prince Of Perisa. Пришлось немного повозиться...
if (Password[6]!=Byte18)//$BB7C
{
Invalidity=1;
return;
}
Invalidity=0;//$BB85
a=Password[7];
sub_BBEA();
a=a&3;//$BB8E
a=a*4;
Password[7]=a;
a=Password[1];
sub_BBE0();//$BB98
a=a|Password[7];
Level=a+1;//+1 is my insertion
//if (Level!=1)//I chose to omit this $BBA2-$BBA4 code b/c it's unknown what byte at $06EE means
a=Password[0];
sub_BBE0();//$BBAA
TimeTens=a;
a=Password[3];
sub_BBEA();
TimeOnes=a;
return;//$BBBF
}
void SEC_SBC_6502(unsigned char operand)
{
c=1;
if ((a-operand)>=0)
a=a-operand;
else
{
a=a-operand+256;
c=0;
};
}
void ADC_6502_simplified(unsigned char operand)
{
if ((a+operand)<256)
a=a+operand;
else a=a+operand-256;
}
void sub_BB21(void)
{
x=0;
BB23: a=Password[4];
a=a+Password[x];
if(a<10)
{
BB46: Password[4]=a;//$BB46
x++;
if (x!=8)
goto BB23;
else return;//$BB4E
}
else //$BB2E
{
Byte4BF=a;
a=Password[6];
a++;//we came here b/c c=1
if (a<10)
goto BB3D;
else
SEC_SBC_6502(10);//can we get here? I doubt...
BB3D: Password[6]=a;
a=Byte4BF;
SEC_SBC_6502(10);//$BB44, no danger of negative result
goto BB46;
}
}
0
class StargateSimulator
{
static bool shieldEnabled = false;
static void Main()
{
Console.WriteLine("Stargate Simulator");
Console.WriteLine("------------------");
// Check for zero point module
Console.Write("Zero Point Module detected. Proceed with simulation? (y/n) ");
string response = Console.ReadLine();
if (response.ToLower() != "y")
{
Console.WriteLine("Simulation cancelled.");
return;
}
// Enable shield
Console.Write("Enable gate shield? (y/n) ");
response = Console.ReadLine();
if (response.ToLower() == "y")
{
EnableShield();
}
// Enter gate address
Console.Write("Enter gate address: ");
string address = Console.ReadLine();
if (address.Length != 6 && address.Length != 8)
{
Console.WriteLine("Invalid address length.");
return;
}
// Dial gate
Dial(address);
Console.WriteLine("Simulation complete.");
}
static void Dial(string address)
{
// Check for valid address
if (address.Length != 6 && address.Length != 8)
{
Console.WriteLine("Invalid address length.");
return;
}
// Check for energy source
Console.Write("Energy source detected. Proceed with dialing? (y/n) ");
string response = Console.ReadLine();
if (response.ToLower() != "y")
{
Console.WriteLine("Dialing cancelled.");
return;
}
// Dial gate
Console.WriteLine("Dialing gate...");
if (shieldEnabled)
{
Console.WriteLine("Gate shield is active.");
}
Console.WriteLine("Chevron 1 encoded.");
Console.WriteLine("Chevron 2 encoded.");
Console.WriteLine("Chevron 3 encoded.");
Console.WriteLine("Chevron 4 encoded.");
Console.WriteLine("Chevron 5 encoded.");
Console.WriteLine("Chevron 6 encoded.");
if (address.Length == 8)
{
Console.WriteLine("Chevron 7 encoded.");
Console.WriteLine("Gate engaged.");
}
else
{
Console.WriteLine("Gate engaged.");
}
}
static void EnableShield()
{
// Check for available power
Console.Write("Power levels stable. Activate gate shield? (y/n) ");
string response = Console.ReadLine();
if (response.ToLower() != "y")
{
Console.WriteLine("Shield activation cancelled.");
return;
}
// Activate shield
Console.WriteLine("Shield activated.");
shieldEnabled = true;
}
}
Симулятор наборного устройства звездных врат.
P.S. За Канон-френдли не отвечаю, т.к. фанат серии но любитель немножко поизвращаться над ЛОРом...
0
namespace TimeMachineSimulator
{
class Program
{
static void Main()
{
Console.WriteLine("Welcome to the Time Machine Simulator!");
TimeMachine machine = new();
while (true)
{
Console.WriteLine("What would you like to do?");
Console.WriteLine("1. Travel in time");
Console.WriteLine("2. Show current time");
Console.WriteLine("3. Show travel history");
Console.WriteLine("4. Exit");
string input = Console.ReadLine();
Console.WriteLine();
switch (input)
{
case "1":
Console.Write("Enter the number of years to travel: ");
int years = int.Parse(Console.ReadLine());
try
{
machine.Travel(years);
Console.WriteLine("Travel successful.");
}
catch (TimeMachineException e)
{
Console.WriteLine(e.Message);
}
break;
case "2":
Console.WriteLine("Current time: " + machine.GetCurrentTime());
break;
case "3":
List<DateTime> history = machine.GetTravelHistory();
Console.WriteLine("Travel history:");
foreach (DateTime time in history)
{
Console.WriteLine(time);
}
Console.WriteLine();
break;
case "4":
Console.WriteLine("Thank you for using the Time Machine Simulator! Press any key to exit...");
Console.ReadKey();
return;
default:
Console.WriteLine("Invalid input. Please try again.");
break;
}
}
}
}
public class TimeMachineException : Exception { public TimeMachineException(string message) : base(message){}}
public class TimeMachine
{
private DateTime currentTime;
private readonly List<DateTime> travelHistory;
public TimeMachine()
{
this.currentTime = DateTime.Now;
this.travelHistory = new List<DateTime>();
}
public void Travel(int years)
{
DateTime futureTime = this.currentTime.AddYears(years);
if (futureTime > DateTime.Now)
{
throw new TimeMachineException("Cannot travel to the future!");
}
this.currentTime = futureTime;
this.travelHistory.Add(futureTime);
}
public DateTime GetCurrentTime()
{
return this.currentTime;
}
public List<DateTime> GetTravelHistory()
{
return this.travelHistory;
}
}
}
Пространственно-временной квантовый реинтегратор. Правда в будущее не умеет отправлять, но используя свойства реверсивной энтропии может отправить куда угодно только в прошлое!