- 1
Давайте дёграть сисколлы из нулевоГо кольца.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−3
Давайте дёграть сисколлы из нулевоГо кольца.
Властелин скольких колец - ты?
−1
d = new Date();
ds = d.getHours() + ":" + (d.getMinutes() / 100).toFixed(2).split(".")[1] + ":" + (d.getSeconds() / 100).toFixed(2).split(".")[1];
// а как бы вы сделали это красивее, в одну строчку (или две) и без сторонних библиотек?
Вывод времени с нулями в минутах и секундах (если они меньше 10): 5:05:00, 11:01:01, 23:03:03
Чтобы в логах (при чтении с моноширинным шрифтом) время имело одинаковую ширину.
// P.S.: к сожалению в JS нет стандартной функции format для даты.
−1
я скачал пхп написал на нём 50 програм хотя только сегодня подключил модуль
это нормально что я сейсас делаю всё что можно делать на пхп за 1 день?
я посмотрел на код разработчиков кода пхп и увидел что там очень много кода а я тоже самое сделал в 1 строчку за 1 день
−1
начало программы
if (php $$ php_govno)
{
$php_govno and 2 + 2 = 4;
}
else if (php_govno $$ a + b = 4)
{
kill_system(abc);
$d = 43;
}
конец программы
пхп говно
−3
Как дела в 2019 году?
Экшскрипт сгнил.
−103
Остались ли среди созидателей Ынтерпрайзного гуано не познавшие вкус хуйца своего шефа?
Cолгите ещё один раз. Обманите себя, сказав что Ваш рот девственен.
0
https://habr.com/post/431534/
Проблемные личности среди разработчиков
+1
// HooksList.h
#define PPCAT_NX(A, B) A ## B
#define PPCAT(A, B) PPCAT_NX(A, B)
#ifdef HOOKS_DEFS
using namespace NtStructs;
#define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
typedef return_type(WINAPI *PPCAT(hook_name, _ptr))(__VA_ARGS__); \
return_type WINAPI PPCAT(hook_name, _hook)(__VA_ARGS__); \
extern PPCAT(hook_name, _ptr) PPCAT(hook_name, _orig);
#elif defined(HOOKS_LIST)
#define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
{module_name, #hook_name, (LPVOID)PPCAT(hook_name, _hook), (LPVOID*)&PPCAT(hook_name, _orig), enabled},
#elif defined(HOOKS_TYPES_DEF)
using namespace NtStructs;
#define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
typedef return_type(WINAPI *PPCAT(hook_name, _ptr))(__VA_ARGS__); \
return_type WINAPI PPCAT(hook_name, _hook)(__VA_ARGS__);
#elif defined(ORIGINAL_FUNCTIONS_TABLE_DEF)
#define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
PPCAT(hook_name, _ptr) hook_name;
#elif defined(ORIGINAL_FUNCTIONS_TABLE_FILL)
#define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
(ORIGINAL_FUNCTIONS_TABLE_NAME).hook_name = PPCAT(hook_name, _orig);
#else
#define API_HOOK_DEF(...)
#endif
// NtCreateFile
API_HOOK_DEF(L"ntdll", NtCreateFile, NTSTATUS, true,
PHANDLE FileHandle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes,
PIO_STATUS_BLOCK IoStatusBlock,
PLARGE_INTEGER AllocationSize,
ULONG FileAttributes,
ULONG ShareAccess,
ULONG CreateDisposition,
ULONG CreateOptions,
PVOID EaBuffer,
ULONG EaLength)
// NtDeleteFile
API_HOOK_DEF(L"ntdll", NtDeleteFile, NTSTATUS, true,
POBJECT_ATTRIBUTES ObjectAttributes)
// И так далее
// В .cpp:
static HookEntry hookEntries[] = {
#define HOOKS_LIST
#include "HooksList.h"
#undef HOOKS_LIST
};
// ...
static OriginalFunctions originalFuncsTable;
#define ORIGINAL_FUNCTIONS_TABLE_FILL 1
#define ORIGINAL_FUNCTIONS_TABLE_NAME originalFuncsTable
#include "HooksList.h"
#undef ORIGINAL_FUNCTIONS_TABLE_NAME
#undef ORIGINAL_FUNCTIONS_TABLE_FILL
Мокросы!..
+3
: ENUM> ( -- ) ;
: <ENUM ( xt n -- )
BEGIN
BEGIN
>IN @ BL WORD DUP C@ 0=
WHILE
2DROP REFILL 0= IF EXIT THEN
REPEAT
FIND SWAP ['] ENUM> = AND IF DROP 2DROP EXIT THEN
>IN !
2DUP SWAP EXECUTE
1+
AGAIN
;
WORDLIST CONSTANT ASSEMBLER
GET-ORDER ASSEMBLER SWAP 1+ SET-ORDER DEFINITIONS
HEX
VARIABLE 'BYTES
: B, ( c -- ) C, 1 'BYTES @ +! ;
: W, ( u -- ) DUP B, 8 RSHIFT B, ;
: DB" ( "ccc<quote>" -- c-addr u )
[CHAR] " PARSE SWAP OVER HERE >R HERE SWAP DUP ALLOT CMOVE
R> SWAP DUP 'BYTES @ +!
;
: W! ( u addr -- ) 2DUP C! SWAP 8 RSHIFT SWAP 1+ C! ;
' CONSTANT 0 <ENUM AX CX DX BX SP BP SI DI ENUM>
' CONSTANT 0 <ENUM AL CL DL BL AH CH DH BH ENUM>
: MEM ( u "<spaces>name" -- ) DUP 18 AND 3 RSHIFT >R 7 AND R> 2CONSTANT ;
' MEM 0 <ENUM
[BX+SI] [BX+DI] [BP+SI] [BP+DI] [SI] [DI] [W] [BX]
[BX+SI]+B [BX+DI]+B [BP+SI]+B [BP+DI]+B [SI]+B [DI]+B [BP]+B [BX]+B
[BX+SI]+W [BX+DI]+W [BP+SI]+W [BP+DI]+W [SI]+W [DI]+W [BP]+W [BX]+W
ENUM>
:NONAME ( reg1 reg2 -- ) 3 LSHIFT OR B, ;
:NONAME ( reg off u -- ) ROT 3 LSHIFT OR B, W, ;
:NONAME ( reg off u -- ) ROT 3 LSHIFT OR B, B, ;
:NONAME ( reg off 6 | reg u -- )
DUP 6 = IF
ROT 3 LSHIFT OR B, W,
ELSE
SWAP 3 LSHIFT OR B,
THEN
;
CREATE MOD , , , ,
3 CONSTANT REG
: -- ( opcode "<spaces>name" -- ) CREATE C, DOES> C@ B, CELLS MOD + @ EXECUTE ;
' -- 0 <ENUM ADD<B ADD<W ADD>B ADD>W ENUM>
' -- 8 <ENUM OR<B OR<W OR>B OR>W ENUM>
' -- 10 <ENUM ADC<B ADC<W ADC>B ADC>W ENUM>
' -- 18 <ENUM SBB<B SBB<W SBB>B SBB>W ENUM>
' -- 20 <ENUM AND<B AND<W AND>B AND>W ENUM>
' -- 28 <ENUM SUB<B SUB<W SUB>B SUB>W ENUM>
' -- 30 <ENUM XOR<B XOR<W XOR>B XOR>W ENUM>
' -- 38 <ENUM CMP<B CMP<W CMP>B CMP>W ENUM>
' -- 85 <ENUM TESTB TESTW XCHGB XCHGW
MOV<B MOV<W MOV>B MOV>W ENUM>
8D -- LEA 0C4 -- LES 0C5 -- LDS
: -- ( opcode "<spaces>name" -- ) CREATE C, DOES> C@ B, B, ;
4 -- AL-ADD 0C -- AL-OR 14 -- AL-ADC 1C -- AL-SBB
24 -- AL-AND 2C -- AL-SUB 34 -- AL-XOR 3C -- AL-CMP
6B -- PUSHB 0A8 -- AL-TEST 0CD -- INT 0EB -- JMP-SHORT
' -- 70 <ENUM JO JNO JB JAE JZ JNZ JBE JA JS JNS JP JNP ENUM>
' -- 0B0 <ENUM AL-MOV CL-MOV DL-MOV BL-MOV
AH-MOV CH-MOV DH-MOV BH-MOV ENUM>
' -- 0E0 <ENUM LOOPNZ LOOPZ LOOP JCXZ
INB INW OUTB OUTW ENUM>
: -- ( opcode "<spaces>name" -- ) CREATE C, DOES> C@ B, W, ;
5 -- AX-ADD 0D -- AX-OR 15 -- AX-ADC 1D -- AX-SBB
25 -- AX-AND 2D -- AX-SUB 35 -- AX-XOR 3D -- AX-CMP
68 -- PUSHW 0A0 -- MEM>AL 0A1 -- MEM>AX 0A2 -- AL>MEM
0A3 -- AX>MEM 0A9 -- AX-TEST 0C2 -- RETW 0CA -- RETW-FAR
0E8 -- CALL 0E9 -- JMP
' -- 0B8 <ENUM AX-MOV CX-MOV DX-MOV BX-MOV
SP-MOV BP-MOV SI-MOV DI-MOV ENUM>
: -- ( opcode "<spaces>name" -- ) CREATE C, DOES> C@ B, ;
6 -- ES-PUSH 7 -- ES-POP 0E -- CS-PUSH 16 -- SS-PUSH
17 -- SS-POP 1E -- DS-PUSH 1F -- DS-POP 26 -- ES:
26 -- DAA 2E -- CS: 2F -- DAS 36 -- SS:
37 -- AAA 3E -- DS: 3F -- AAS 60 -- PUSHA
61 -- POPA 64 -- FS: 65 -- GS: 66 -- CHANGE-OP-SIZE
67 -- CHANGE-ADDR-SIZE 0C3 -- RET 0C9 -- LEAVE 0CB -- RET-FAR
0CC -- INT3 0CE -- INTO 0CF -- IRET 0F0 -- LOCK
' -- 40 <ENUM AX-INC CX-INC DX-INC BX-INC SP-INC BP-INC SI-INC DI-INC
AX-DEC CX-DEC DX-DEC BX-DEC SP-DEC BP-DEC SI-DEC DI-DEC
AX-PUSH CX-PUSH DX-PUSH BX-PUSH SP-PUSH BP-PUSH SI-PUSH DI-PUSH
AX-POP CX-POP DX-POP BX-POP SP-POP BP-POP SI-POP DI-POP
ENUM>
' -- 6C <ENUM INSB INSW OUTSB OUTSW ENUM>
' -- 80 <ENUM NOP CX-AX-XCHG DX-AX-XCHG BX-AX-XCHG
SP-AX-XCHG BP-AX-XCHG SI-AX-XCHG DI-AX-XCHG
CBW CWD ENUM>
' -- 9B <ENUM WAIT PUSHF POPF SAHF LAHF ENUM>
' -- 0A4 <ENUM MOVSB MOVSW CMPSB CMPSW ENUM>
' -- 0AA <ENUM STOSB STOSW LODSB LODSW SCASB SCASW ENUM>
' -- 0D4 <ENUM AAM AAD SALC XLAT ENUM>
' -- 0EC <ENUM DX-AL-IN DX-AX-IN AL-DX-OUT AX-DX-OUT ENUM>
' -- 0F2 <ENUM REPNZ REPZ HLT CMC ENUM>
' -- 0F8 <ENUM CLC STC CLI STI CLD STD ENUM>
Я вчера упоролся подумал, хуля я как лох пешу форт на асме, ТруЪ фротеры пишут форт на ыорте. И начал я с этого —– я представляю вам единственный и неповторимый говно-фрот-асамблец за авторством моего меня.
Примерим:
VARIABLE BYTES
BYTES 'BYTES !
CREATE PROG
9 AH-MOV
0 DX-MOV HERE 2 -
21 INT
4C00 AX-MOV
21 INT
DB" Hello, Forth-ASSembler!$" DROP PROG - 100 + SWAP W!
PROG BYTES @ DUMP
0
// https://dev.to/saigowthamr/how-to-reverse-a-string-in-javascript-3i9c
// In this tutorial, we are going to learn three different ways to reverse a string
// in JavaScript by using the reverse method, reduce method.
// First way
const str = "hello"
str.split('').reverse().join('')
//"olleh"
// We used split method to split the string into an array of individual strings then chain it to reverse method.
// Second way
const str = "hello"
[...str].reduce((prev,next)=>next+prev)
//"olleh"
// First, we spread the string using spread operator and reverse the string using the reduce method
// Third way
function reverseString(str){
const arr = [...str]
let reverse= "";
while(arr.length){
reverse = reverse + arr.pop()
}
return reverse
}
// I mostly like the Second way to reverse a string using reduce method.
// Happy coding...
Это видимо такой вид соревнований, типа как вкрутить лампочку в патрон наиболее упоротым и неочевидным способом. Нахрена это нужно обычному программисту? Может это такой способ ручной обфускации? Тогда понятно