BinaryByter
never heard of multi character constants
Mihail
because they're not portable and you probably shouldn't use them
BinaryByter
in bit manip stuff they might come in handy
olli
rvalue = right value = asignee lvalue = left value = assigned to
std::move(std::string{}) = "hello"; ?
BinaryByter
?
olli
an rvalue can be on the left side as well
BinaryByter
yes
BinaryByter
But i wanted to give a bigger picture for beginners
olli
But that's wrong
BinaryByter
¯\_(ツ)_/¯
BinaryByter
its better than no explanation
BinaryByter
also, its useless nomenclature
olli
no, I'd rather have none than a wrong one
olli
false positives are worst
BinaryByter
OKay, then explain
olli
An rvalue is either an xvalue or an prvalue
BinaryByter
what are those?
olli
A prvalue is an expression whose evaluation initializes an object or a bit-field, or computes the value of an operand of an operator, as specified by the context in which it appears, or an expression that has type cv void. An xvalue is a glvalue that denotes an object or bit-field whose resources can be reused (usually because it is near the end of its lifetime).
olli
http://eel.is/c++draft/basic.lval
BinaryByter
THe thing is that quoting the standard is the best way to confuse beginners
olli
Does ollis explanation of an rvalue help you?
Imo "rvalue" doesn't help him at well.
olli
The worst thing for beginners is teaching them wrong things
olli
but that's #ot anyway
BinaryByter
BinaryByter
Anyway, even if I got this fully wrong, this is just stupid nomenclature that won't help anybody
BinaryByter
well except if you write a compiler and need to read the standard
BinaryByter
good luck to those poor suckers
Afees
Given that it was a kernel that does nothing, its also kinda useless
Kernel programming is in c right which is procedure oriented
BinaryByter
Kernel programming is in c right which is procedure oriented
You can do kernel programming in any language
BinaryByter
the one I used was C++
BinaryByter
However, i'd definitely advise against using C++ for kernels
BinaryByter
My bad😊👍
Dont worry 😉
Francisco
Anyway, even if I got this fully wrong, this is just stupid nomenclature that won't help anybody
In the end, you just use rvalue and lvalue. The other ones are quite confusing
BinaryByter
Dont even use them
BinaryByter
Just say "a character constant"
BinaryByter
the terms rvalue and lvalue dont mean a lot
professor
some people told me about degug mode instead of release
Francisco
The whole thing is to know what "move semantics" is all about
Mihail
some people told me about degug mode instead of release
that would probably decrease security instead of increasing it to ease debugging
professor
that would probably decrease security instead of increasing it to ease debugging
I know it , but I am creating exploitsme , but I need a way to fix in release mode
olli
good luck to those poor suckers
If you want a rule of thumb I'd rather go with: "It if has a name, it's an lvalue" That's even easier and more correct
BinaryByter
I can agree with that =D
professor
that would probably decrease security instead of increasing it to ease debugging
how can I move the binary ? no debug symbols and keepig __security_init_check as before
Francisco
If you want a rule of thumb I'd rather go with: "It if has a name, it's an lvalue" That's even easier and more correct
In fact, that's a pretty resonable explanation. I saw an example where the name just changed the whole context
Mihail
how can I move the binary ? no debug symbols and keepig __security_init_check as before
well just move it? that won't change anything with the binary itself
Mihail
not sure i understand you exactly
professor
Example i have a binary compiled with /GS , and of course we should have __security_init_cookie at the top right?
Mihail
it should unless one of your other options disables it
Mihail
not sure about what /DYNAMICBASE:NO /NXCOMPAT:NO do
Mihail
have you tried to see if they're the cause for __security_init_cookie not being present?
professor
professor
00401573 > $ E8 A3020000 CALL stack_co.__security_init_cookie 00401578 .^E9 74FEFFFF JMP stack_co.__scrt_common_main_seh 0040157D >/$ 55 PUSH EBP 0040157E |. 8BEC MOV EBP,ESP 00401580 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] 00401583 |. 56 PUSH ESI 00401584 |. 8B48 3C MOV ECX,DWORD PTR DS:[EAX+3C] 00401587 |. 03C8 ADD ECX,EAX 00401589 |. 0FB741 14 MOVZX EAX,WORD PTR DS:[ECX+14] 0040158D |. 8D51 18 LEA EDX,DWORD PTR DS:[ECX+18] 00401590 |. 03D0 ADD EDX,EAX 00401592 |. 0FB741 06 MOVZX EAX,WORD PTR DS:[ECX+6] 00401596 |. 6BF0 28 IMUL ESI,EAX,28 00401599 |. 03F2 ADD ESI,EDX 0040159B |. 3BD6 CMP EDX,ESI 0040159D |. 74 19 JE SHORT stack_co.004015B8
BinaryByter
LOL im litterally the only one who contributes anything useful
BinaryByter
unless you count all those "google it yourself" messages useful
BinaryByter
Mhh okay,
BinaryByter
I didnt see it though
BinaryByter
so I cant tell
BinaryByter
lol
Anonymous
Hello mates, I'm just enter to this channel, hope everyone is freaking well. Kind Regards.
BinaryByter
Oy!
BinaryByter
I'm doing well
BinaryByter
what about you?
Anonymous
I'm having a blast, I am a Computer Scientist in this awesome Digital Era.
BinaryByter
Nice
professor
I dont know why , but I just fix it delete folder then compile again and it works
professor
is it possible remove or customize bad chars?
Ибраги́м
https://www.youtube.com/watch?v=78Y_LRZPVRg
Anonymous
K
Luca
hi, I’ve a question: with only a “break” can I close two (or more) “while”? I hope you’ve understood
professor
yeah as loong as your dont get infinite
Luca
how?
professor
while(_TRUE_) thing... while(__True__) thing break
Luca
but if I do this, only the second while get closed