Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

This exercise tauri app template.

source

tauri::plugin::Builder<R,C>::new _ZN5tauri6plugin20Builder$LT$R$C$C$GT$3new

140096e10 e8 5b 4d 4f 00 CALL std::hash::random::impl$0::new::KEYS::constant
140096e15 49 89 c6        MOV R14,RAX
140096e18 80 78 10 01     CMP byte ptr [RAX+0x10],0x1
  • Part of HashMap/FxHasher initialization.
  • Returns a pointer (RAX → R14) to the random seed/keys used internally by the plugin builder.
140096e22 49 8b 06        MOV RAX,qword ptr [R14]
140096e25 49 8b 56 08     MOV RDX,qword ptr [R14+0x8]
140096e29 48 8d 48 01     LEA RCX,[RAX+1]
140096e2d 49 89 0e        MOV qword ptr [R14],RCX
  • Increments an internal counter stored in the random::KEYS structure.
  • Likely used to ensure unique identifiers for each plugin instance.

_ZN83_$LT$tauri_runtime_wry..Wry$LT$T$GT$$u20$_<>::run

1400fc4a0 MOV RSI, qword ptr [RCX + 0x50]
1400fc4a4 INC.LOCK qword ptr [RSI]
1400fc4a8 JLE LAB_1400fc4c8
  • Loads a pointer from the object (RCX points to self).
  • Atomically increments the value pointed to by that pointer.
  • Jumps if less than or equal to zero (JLE) to LAB_1400fc4c8.
1400fc4aa MOV RDI, qword ptr [RCX + 0x18]
1400fc4ae INC.LOCK qword ptr [RDI]
1400fc4b2 JLE LAB_1400fc4c8

1400fc4b4 MOV RBX, qword ptr [RCX + 0x48]
1400fc4b8 INC.LOCK qword ptr [RBX]
1400fc4bc JLE LAB_1400fc4c8

1400fc4be MOV RAX, qword ptr [RCX + 0x58]
1400fc4c2 INC.LOCK qword ptr [RAX]
1400fc4c6 JG LAB_1400fc4ca
  • Each load gets a pointer from the struct and performs an atomic increment.
  • If any of these increments result in <= 0, the code jumps to a UD2 instruction (illegal instruction) at LAB_1400fc4c8.
  • The last increment uses JG (jump if greater) to continue normal execution.