2018.11.23. 19:11 Eszembe jutott két további lehetőség:
1. git-ből kiszedni a forrást (git clone https://git.code.sf.net/p/tvision/code tvision-code)
2. megnézni, hogy régebbi '-std' -vel működik-e
- NevemTeve blogja
- A hozzászóláshoz be kell jelentkezni
- 893 megtekintés
Hozzászólások
Egy picit zavarba jöttem...
2 - 3 = ?
(Vagy mindjárt rám olvassátok, hogy nem tudom, mi az unsigned. Maradtam volna a pákánál.)
- A hozzászóláshoz be kell jelentkezni
Hát, attól tartok (gdb-ben próbáltam), (unsigned)2-(unsigned)3==MAXVAL_UNSIGNED pl 65535 (ha 16-bites).
- A hozzászóláshoz be kell jelentkezni
Tegnap este elsőre én is elcsodálkoztam, aztán elővettem előbb a cint -et, aztán a cling-et, és mind a két interpreter azt állította, hogy unsigned int-ek esetén bizony szép nagy, (túlcsordult) ámde unsigned az eredmény. Persze signed-dé castolva a kifejezést, már jó lett :-) De hát ilyen ez. Logikus :-)
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
Nekem a TVision simán fordult, itt egy részlet:
build() {
cd $pkgname
export CXXFLAGS+=' -std=gnu++98'
PERL_USE_UNSAFE_INC=1 ./configure --prefix=/usr --include=/usr/include
make
}
Viszont az RHIDE fordítása nem ment, az RHIDE és a SETEDIT összehangolását nem tudtam megoldani. :(
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Ez lenne ugyebár a lényeg: https://aur.archlinux.org/cgit/aur.git/tree/tvision-gcc7.patch?h=tvision
- A hozzászóláshoz be kell jelentkezni
No, másnak is feltűnt:
https://sourceforge.net/p/tvision/bugs/17/
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Akkor elég valószínű, hogy abandonálták...
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
"Ezen a ponton az 'abs' felesleges, hiszen két 'unsigned' különbsége is 'unsigned'."
Ez nem így van. Az abs meghívása átkonvertálja az 'unsigned int'-et 'int'-re, és szépen visszajön az előjel, mintha 'int' értékekkel dolgozott volna a kód (igaz, a unsigned->signed konverzió implementation-defined, de kb. minden impl. azt csinálja, amit "kell").
Itt a kód azért nem fordul le, mert a GCC 6 óta az stdlib-ben nem csak 'abs(int)' van, hanem overloadolva van, és emiatt a compiler nem tudja eldönteni, melyiket használja.
Szóval a programozó kolléga nem bukott azért meg, bár ez a kód amúgy tényleg eléggé ronda, soha nem írnék le ilyet.
- A hozzászóláshoz be kell jelentkezni
Jól hangzik, bár attól tartok, így is megsemmisítünk egy bitet; 8-bites számok esetén 192 és 7 abszolút különbsége esetleg 71 lesz 185 helyett.
gdb:
print (unsigned char)(192-7)
$14 = 185
print (unsigned char)(7-192) # itt a gond
$13 = 71
print (unsigned char)7 >= (unsigned char)192 ? (unsigned char)7 - (unsigned char)192 : (unsigned char)192 - (unsigned char)7
$12 = 185
- A hozzászóláshoz be kell jelentkezni
Igen, nyilván ha olyan számokon végzed el a kivonást, ahol az eredmény nem fér bele az előjeles tartományba, akkor ott gond van.
De a rutinban ilyen eset nem fordulhat elő. A legrosszabb esetben, ha i=0xffffffff, az abs-nál ennek kevesebb, mint a fele megy be, szóval jól működik minden.
- A hozzászóláshoz be kell jelentkezni
Végül sikerült lefordítani?
Nekem nem ment a fordítás, de szereztem egy statikusan linkelt binárist, ami működik.
- A hozzászóláshoz be kell jelentkezni
Naszóval tvision-ból fordul a git-es változat:
git clone https://git.code.sf.net/p/tvision/code tvision-code
rhide-nak pedig most a "SET-editor" hiányzik. Gondolom, ez lesz az:
git clone https://git.code.sf.net/p/setedit/code setedit-code
Lesz egy ilyen benne:
sed -i.bak '1i#include <alloca.h>' extra/stackdbg.c
Sőt: visszacsavarunk a tvisionhoz, és ott is:
sed -i.bak '1i#include <alloca.h>' compat/fileattrs.c
Még ezt kellene kivizsgálni:
* The 'makeinfo' tool is an unsupported version (broken?).
Do you want to help solving it? contact me.
Derék program szerint 5.0 és afölött minden broken. Bár a comment már precízebb: inkompatibilis. És tényleg:
./sdh.exe -ot -c -n Index cindex.idx cindex.tdx -n "Index of key commands" kindex.idx kindex.tdx -I . -I . -N -i editor
./set.txi:97: warning: redefining Texinfo language command: @exclamdown
./set.txi:100: warning: redefining Texinfo language command: @questiondown
./set.txi:154: warning: redefining Texinfo language command: @comma
editor.nut:127: unknown command `ii' (possibly involving @HeaderPage1)
editor.nut:127: misplaced { (possibly involving @HeaderPage1)
editor.nut:127: misplaced } (possibly involving @HeaderPage1)
Hát, végül elindult a setedit, de meglátszik rajta a kor... Először az tűnik fel, hogy a grafikus karakterek nemigen grafikusak
- A hozzászóláshoz be kell jelentkezni