rizinorg / book Goto Github PK
View Code? Open in Web Editor NEWAn official book about Rizin
Home Page: https://book.rizin.re
License: Creative Commons Attribution 4.0 International
An official book about Rizin
Home Page: https://book.rizin.re
License: Creative Commons Attribution 4.0 International
The Expressions section seems to show invalid syntax. The command identifier for expressions is '%', not '?' as shown in the documentation.
Document how to use rz-gg
tool or g
commands in rizin
shell.
Basics on how to use it, simple and C syntax, couple examples
Quarto - An open-source scientific and technical publishing system similar to Bookdown
runnning pdflatex - 1
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
updating tlmgr
updating existing packages
compilation failed- error
Package inputenc Error: Unicode character โ (U+250C)
(inputenc) not set up for use with LaTeX.
See the inputenc package documentation for explanation.
Type H <return> for immediate help.
...
l.1722 \end{verbatim}
If we use XeTeX or LuaLaTeX engines, we get another error:
runnning lualatex - 1
This is LuaHBTeX, Version 1.13.0 (TeX Live 2021)
restricted system commands enabled.
updating tlmgr
updating existing packages
compilation failed- error
Undefined control sequence.
l.5068 string by prepending them with ``\x
'':
This is caused by LaTeX-like sequences like \x
:
$ rg -t md "\\\x"
src/search_bytes/basic_searches.md
44:It is possible to specify hexadecimal escape sequences in the search string by prepending them with "\x":
46: [0x00000000]> / \x7FELF
src/plugins/dev-bin.md
53: return (!memcmp (buf, "\x4E\x45\x53\x1A", 4));
src/search_bytes/intro.md
10:| / foo\x00 search for string 'foo\0'
11:| /j foo\x00 search for string 'foo\0' (json output)
src/tools/rz-ax/intro.md
63: -N binary number ; rz-ax -N 0x1234 # \x34\x12\x00\x00
src/basic_commands/print_modes.md
269:"\x48\x89\xe7\xe8\x68\x39\x00\x00\x49\x89\xc4\x8b\x05\xef\x16\x22\x00\x5a\x48\x8d\x24\xc4\x29\xc2\x52\x48\x89\xd6\x49\x89\xe5\x48\x83\xe4\xf0\x48\x8b\x3d\x06\x1a
src/basic_commands/write.md
40:| ww foobar write wide string 'f\x00o\x00o\x00b\x00a\x00r\x00'
43:| wz string write zero terminated string (like w + \x00)
src/first_steps/expressions.md
23:string "\xfa\xff\xff\xff\xff\xff\xff\xff"
54:string "\x03"
src/first_steps/commandline_flags.md
14: -0 print \x00 after init and every command
src/crackmes/avatao/01-reverse4/first_steps.md
47:[0x00 avatao]$ "\x01\x00\x00\x00" | ./reverse4
src/crackmes/avatao/01-reverse4/bytecode.md
39:\x90\x00PSAMuAP\x01AMcAP\x01AMhAP\x01AM AP\x01AMVAP\x01AMMAP\x01AM!AP\x01AM AP\x01AMMAP\x01AMuAP\x01AMCAP\x01AMHAP\x01AM AP\x01AMrAP\x01AMeAP\x01AMVAP\x01AM3AP\x01AMrAP\x01AMsAP\x01AMeIPAM!X\x00CAJ\xc1SC\x00DCR*
src/crackmes/ioli/ioli_0x01.md
100:string "\x9a\x14"
Hi,
Is there any information in wiki or documentation that shows migrate history old radare2 names and new rizin. Everyone is used to old r2 names, for example, go to the wiki page https://book.rizin.re/tools/rz-diff/intro.html but it is not indicated anywhere that old name this tool is "radiff2", it is so inconvenient when there are few tutorials on rizin, but I want to perform the same action using the radare2 tutorial.
As result, beginners use r2, or need to come up with alias for package names.
also, if we can convert these to use ghidra rather than jsdec.
jsdec gives wrong disassembly. passing same argument to both the parameters.
I wanted to do a math operation when reversing a program, and when I took a look at the book, I saw it used the ?vi
instruction:
book/src/first_steps/expressions.md
Lines 9 to 17 in efa4911
But inside rizin (rizin 0.6.1 @ linux-x86-64, rizinorg/rizin@d9af48b):
[0x0000115d]> ?vi
ERROR: Command '?vi' does not exist.
I searched in the help (?
) and I saw the math commands are now under %
:
[0x0000115d]> %vi 0x8048000
134512640
[0x0000115d]> %vi 0x8048000+34
134512674
[0x0000115d]> %vi 0x8048000+0x34
134512692
[0x0000115d]> %vi 2**10
1024
[0x0000115d]> % 1+2+3-4*3
int64 -6
uint64 18446744073709551610
hex 0xfffffffffffffffa
octal 01777777777777777777772
unit 16E
segment fffff000:0ffa
string "\xfa\xff\xff\xff\xff\xff\xff\xff"
fvalue -6.0
float -6.000000f
double -6.000000
binary 0b1111111111111111111111111111111111111111111111111111111111111010
trits 0t11112220022122120101211020120210210211201
[0x0000115d]> "% 1 | 2" # No output :(
[0x0000115d]> % 1 | 2 # Pipe to "2", of course fails
exec: No such file or directory
I can make a PR and update it if you want, but I am still not sure how to do biwise or's work with this new command.
The current book https://book.rizin.re/plugins/dev-asm.html speaks of a Makefile. There is no Makefile anymore in rizin. Only meson.
I suggest to update the documentation.
Do not use db 0x00000
but db @ 0x000000
, etc. Check other commands too
rz-diff tool has been updated in the dev branch of rizin. therefore the dev branch of the book should be updated.
I hoped there will be more activity in mdBook, but it still seems immature:
We should consider to ditch it in favor of Bookdown which has been used for making professionally-looking books for quite a while. This switch will allow us to have both online and PDF/ePub versions out of the box.
We need a chapter on what Table API is, how to use it, some examples.
see librz/util/table.c
for the implementation.
When bin.libs
it will load all the libraries from the same folder where the selected bin is located and map them at 0x60000000000 for 64 bit archs, and at 0x60000000 for 32 bit archs.
this feature is described in librz/core/cfile.c
also talking about dir.libs=/path/to/my/folder
is also a good idea
The number of users was growing fast, and the author-and main developer-had to switch roles from coder to manager in order to integrate the work of the different developers that were joining the project. Since then project has changed it's name to Rizin and reworked development and governance methodology.
It isnt true, radare2 was forked, not renamed.
The example of loading types from string at Loading Types seems to have wrong quotation marks.
[0x000051c0]> "td struct foo {char* a; int b;}"
does nothing for me (using rizin 0.5.0 @ windows-x86-64).
[0x000051c0]> td "struct foo {char* a; int b;}"
works (note the quotation mark being moved after td command).
tell in the book we have to install the c++ package
and to do:
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
Codespell is a tool for fix spelling mistakes in the source code. This can be added in the CI
to check for spelling mistakes in the pull requests.
Please note that you might need to ignore some legitimate words while running it. A rough
sketch of the command would look something like this:
$ codespell --skip *.png --ignore-words-list Gameboy,GameBoy,te,fo,ND,ptd
Link: https://github.com/codespell-project/codespell/
Another place on the web where Codespell is used in the CI: https://github.com/yuxans/haproxy-2.2/blob/5f3eb59aff48fb559f68cbedade1204f9c0a82ed/.github/workflows/codespell.yml
Currently, we have only one channel - master
, which is deployed to https://book.rizin.re. I suggest:
stable
and dev
stable
on https://book.rizin.re/dev
on https://book-dev.rizin.re/ or a similar domain.github/workflow/mdbook.yml
for branch settings (also update the base)book
too (optional?)By following Crackme IOLI_0x01, i got the error message after input pdf@main
on my MacBookPro.
The version of Rizin is rizin 0.6.3 @ darwin-arm-64, package: 0.6.3 (Homebrew)
.
I would like create a PR to fix it if this is a typo or outdated.
There is this weird comment at the beginning of this section:
9c2bad8#diff-a6a5c4891f18c495766929e9e415d78005d1e8e683439f36ce5c016f602034bbR5
Why that is there?
Removed from the page: e45d34c
### To enable virtual addressing
In `info` add `et->has_va = 1;` and `ptr->srwx` with the `RZ_BIN_SCN_MAP;` attribute
Breaking changes:
ar* => arf, ar- => arf-, ar. => ar*
ar, => art, ar? => arq
ar0 => ara0, arb => arab, ars => araS
arC => arpC
arn => arR
art => arT
arf => arF
Removed: drm, aer
See rizinorg/rizin@3c2e4bf
cc @thestr4ng3r
Document all the pc
commands changes on 0.4.0
Usage: pc[?] # Print bytes as code byte arrays.
| pc # Generate a C/C++ byte array.
| pch # Generate a C/C++ 16 bits array.
| pcw # Generate a C/C++ 32 bits array.
| pcd # Generate a C/C++ 64 bits array.
| pca # Generate a byte array in GAS assembly.
| pcb # Generate a bash script with the byte array.
| pcg # Generate a Golang byte array.
| pcJ # Generate a Java byte array.
| pcj # Generate a JSON byte array.
| pck # Generate a Kotlin byte array.
| pcn # Generate a NodeJS buffer.
| pco # Generate a Objective-C/C++ byte array.
| pcp # Generate a Python byte array.
| pcr # Generate a Rust byte array.
| pcs # Generate a Swift byte array.
| pcy # Generate a Yara match pattern.
| pc* # Generate a rizin commands for writing the byte array.
Useful modifiers:
| pch @e:cfg.bigendian=<true|false> # Change endianness for pch, pcw and pcd commands
| pc @! <n> # Change the N of bytes (i.e. block size).
Example of usages:
| pch @! 64 @e:cfg.bigendian=true # Generate a C 32 bits array in big endian format, using 64 bytes
| pcp @! 1024 # Generate a Python byte array of size 1024
| pcj @! 10 # Generate a JSON bytes array of size 10
See rizinorg/rizin@9586737 and rizinorg/rizin@8810586
join
commandhead
commandless
and directly list ls
commandT
commands and log related functionsu
commands and Q
alias:
commands'
command (alias for =!
)\
(alias for =!
) commandm
commandszip://
apk://
ihex://
srec://
cc @wargio
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.