Git Product home page Git Product logo

book's People

Contributors

anio avatar astuder avatar austinhartzheim avatar crowell avatar cyanpencil avatar deepakchethan avatar gustavolcr avatar h4x5p4c3 avatar hamzach18 avatar hdznrrd avatar heersin avatar itayc0hen avatar maijin avatar maskray avatar mrmacete avatar officialcjunior avatar peterclemenko avatar radare avatar ralexe avatar ret2libc avatar rot127 avatar schumblubblub avatar sivaramaaa avatar tdkps avatar th4nat0s avatar tickelton avatar vane11ope avatar wargio avatar xarkes avatar xvilka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

book's Issues

PDF render with Quarto - unsupported Unicode character

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"

Old names tools on Wiki pages

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.

  • Example wiki page:

image

Outdated math commands in section 2.3. Expressions

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:

[0xb7f9d810]> ?vi 0x8048000
134512640
[0xv7f9d810]> ?vi 0x8048000+34
134512674
[0xb7f9d810]> ?vi 0x8048000+0x34
134512692
[0x00000000]> ?vi 2**10
1024
[0xb7f9d810]> ? 1+2+3-4*3

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.

Add new rz-diff into the book

rz-diff tool has been updated in the dev branch of rizin. therefore the dev branch of the book should be updated.

[master] describe usage of bin.libs

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

Edit history.md

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.

correct td command quotation mark position

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).

Add a job for Codespell in the CI to check spelling

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

`stable` and `dev` channels

Currently, we have only one channel - master, which is deployed to https://book.rizin.re. I suggest:

  • Use the same branching scheme as other Rizin projects - stable and dev
  • Deploy stable on https://book.rizin.re/
  • Deploy dev on https://book-dev.rizin.re/ or a similar domain
  • See .github/workflow/mdbook.yml for branch settings (also update the base)
  • Update Rizin release checklist issue template to include the step of tagging the book too (optional?)
  • Point Rizin site to two version of the books - stable and dev

Error while parsing command: `pdf@main`

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.

Document byte array code generators

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.