UNIVERSIDAD NACIONAL EXPERIMENTAL
"SIMÓN RODRÍGUEZ"
NÚCLEO PALO VERDE

CONTENIDO PROGRAMÁTICO

TEMA 1: GENERALIDADES.

1. DEFINICIÓN DE FINANZAS.
2. CONCEPTO DE FINANZAS INTERNACIONALES.
3. IMPORTANCIA DE LAS FINANZAS INTERNACIONALES.
4. NOMENCLATURA USADAS EN LAS FINANZAS INTERNACIONALES.
5. VALOR DE CAMBIO CON RESPECTO AL DÓLAR Y AL EURO.
6. TIPOS DE OPERACIONES INTERNACIONALES.
7. VENTAJAS Y DESVENTAJAS.

TEMA 2: BALANZA DE PAGOS.

1. CONCEPTO, CARACTERÍSTICAS, TIPOS DE CUENTAS.
2. REGISTRO DE LAS OPERACIONES CONTABLES.
3. PROBLEMAS EN EL REGISTRO DE LAS OPERACIONES EN LA BALANZA DE PAGOS.
4. ANÁLISIS DE LOS EFECTOS DE LA BALANZA DE PAGOS.
5. DESCRIPCIÓN DE LA BALANZA DE PAGOS EN VENEZUELA DESDE EL AÑO 2005 HASTA EL PRESENTE.

TEMA 3: SISTEMA MONETARIO INTERNACIONAL.

1. CONCEPTO DEL SISTEMA MONETARIO INTERNACIONAL.
2. SISTEMA PATRÓN ORO: DEFINICIÓN Y FUNCIONAMIENTO.
3. SISTEMA BRETÓN WOODS: CONCEPTO Y CARACTERÍSTICAS, COMPORTAMIENTO DESDE 1944 HASTA EL PRESENTE.
4. INSTITUCIONES FINANCIERAS INTERNACIONALES: FONDO MONETARIO INTERNACIONAL: SU CREACIÓN, FUNCIONES, TIPOS DE SERVICIO QUE PRESTA, ROL DE ESTOS ORGANISMOS A NIVEL GLOBAL EN LOS ÚLTIMOS AÑOS.
5. BANCO MUNDIAL: CREACIÓN, FUNCIONES, TIPOS DE SERVICIO QUE PRESTA Y ROL DE ESTE ORGANISMO MUNDIAL EN LOS ÚLTIMOS TIEMPOS HASTA EL PRESENTE.
6. BANCO INTERNACIONAL DE PAGO (COMPENSACIÓN): ACUERDO DE BASILEA: SU CREACIÓN, FUNCIONES Y TIPOS DE SERVICIO QUE PRESTA.
7. SISTEMA MONETARIO EUROPEO: CREACIÓN, ESTRUCTURA, FUNCIONES Y TIPOS DE SERVICIO QUE PRESTA.
8. LA MONEDA EURO: COTIZACIÓN, ESTRUCTURA (CANASTA DE VARIAS MONEDAS).
9. DERECHO ESPECIAL DE GIRO: CONCEPTO, FUNCIONES Y ESTRUCTURA.

TEMA 4: MERCADO CAMBIARIO.

1. CONCEPTO DE DIVISA.
2. MERCADO DE DIVISAS.
3. OPERACIONES DE CAMBIO EN EL MERCADO INTERNACIONAL.
4. TIPOS DE COTIZACIONES DE CAMBIO.
5. CONTRATOS A FUTURO (FORWARD): CONCEPTO, FUNCIONES Y TIPOS DE CONTRATOS.
6. SISTEMA CAMBIARIO DE BANDAS: DEFINICIÓN Y FUNCIONAMIENTO.
7. RIESGO CAMBIARIO: CONCEPTO, ELEMENTOS FUNDAMENTALES DEL RIESGO CAMBIARIO: POSICIÓN CORTA Y POSICIÓN LARGA, TIPOS DE RIESGOS DE CAMBIO: TRANSACCIÓN DE BALANCE Y ECONÓMICO, ENDEUDAMIENTO EMPRESARIAL EN MONEDA EXTRANJERA.
8. COMPORTAMIENTO DEL MERCADO CAMBIARIO EN VENEZUELA DESDE 2005 HASTA EL PRESENTE.

TEMA 5: MERCADO FINANCIERO INTERNACIONAL.

1. CONCEPTO Y FINALIDAD.
2. ESTRUCTURA DEL MERCADO FINANCIERO INTERNACIONAL.
3. TIPOS Y FUNCIONAMIENTO DE LOS CRÉDITOS INTERNACIONALES. (TRAER MODELO).
4. MERCADO DE EURODÓLARES: TIPOS Y FUNCIONAMIENTO (TRAER MODELO).
5. MERCADO INTERNACIONAL DE BONOS: CLASIFICACIÓN DEL MERCADO DE BONOS, ESTRUCTURA Y FUNCIONAMIENTO.
6. MERCADO DE EUROCRÉDITOS: ESTRUCTURA Y FUNCIONAMIENTO.

TEMA 6: FINANCIAMIENTO DEL COMERCIO INTERNACIONAL.

1. CONCEPTO Y FINALIDAD.
2. CARTA DE CRÉDITO: DEFINICIÓN, TIPOS, MODALIDADES, VENTAJAS Y DESVENTAJAS (TRAER MODELO).
3. COBRO DOCUMENTARIO: CONCEPTO Y TIPOS (TRAER MODELO).
4. ACEPTACIÓN BANCARIA: CONCEPTO Y TIPOS. (TRAER MODELO).
5. FACTORIZACIÓN: DEFINICIÓN Y TIPOS (TRAER MODELO).
6. FORFETIZACIÓN: CONCEPTO Y TIPOS (TRAER MODELO).
7. ARRENDAMIENTO INTERNACIONAL: CONCEPTO Y TIPOS (TRAER MODELO).
8. PERMUTA INTERNACIONAL: CONCEPTO Y TIPOS (TRAER MODELO).

TEMA 7: MERCADO BURSÁTIL INTERNACIONAL.

1. MERCADO WALL STREET (NEW YORK): FUNCIONAMIENTO Y TIPOS DE OPERACIONES.
2. MERCADO DEL ORO: FUNCIONAMIENTO Y TIPOS DE OPERACIONES.
3. DEUDA EXTERNA MUNDIAL: MERCADO DE LA DEUDA EXTERNA LATINOAMERICANA, TIPOS DE TÍTULOS QUE SE COTIZAN Y OPERACIONES; PLAN BRADY: CONCEPTO, VENTAJA Y DESVENTAJAS.
4. DEUDA EXTERNA VENEZOLANA: COMPORTAMIENTO DESDE 1983 HASTA NUESTROS DÍAS.
5. CLUB DE PARÍS: FUNCIONAMIENTO, VENTAJAS Y DESVENTAJAS.
6. MERCADO DE TÍTULOS ADR Y GDR: CONCEPTO Y FUNCIONAMIENTO DE ESTOS TÍTULOS.

TEMA 8: INVERSIÓN EXTERNA DIRECTA.

1. CONCEPTO.
2. EFECTOS DE LA INVERSIÓN EXTERNA DIRECTA EN LA BALANZA DE PAGOS EN EL PAÍS RECEPTOR Y DEL PAÍS INVERSOR.
3. LA EMPRESA MULTINACIONAL: DEFINICIÓN, CARACTERÍSTICAS, VENTAJA Y DESVENTAJAS DE SU INSTALACIÓN EN EL PAÍS.
4. FINANCIAMIENTO DE CASA MATRIZ A FILIAL Y VICEVERSA.
5. ASOCIACIONES ESTRATÉGICAS: CONCEPTO Y FUNCIONAMIENTO EN VENEZUELA (TRAER 02 MODELOS DE CASOS EN NUESTRO PAÍS).
6. COMPORTAMIENTO DE LA INVERSIÓN EXTRANJERA DIRECTA EN VENEZUELA DESDE 2005 HASTA NUESTROS DÍAS.

viernes, 19 de enero de 2024

Bypass Hardware Firewalls

This is just a collection of links about my DEF CON 22 presentation, and the two tools I released:

Slides:
http://www.slideshare.net/bz98/defcon-22-bypass-firewalls-application-white-lists-secure-remote-desktops-in-20-seconds

Tools:
https://github.com/MRGEffitas/Write-into-screen
https://github.com/MRGEffitas/hwfwbypass

Presentation video from Hacktivity:
https://www.youtube.com/watch?v=KPJBckmhtZ8

Technical blog post:
https://blog.mrg-effitas.com/bypass-hardware-firewalls-def-con-22/

Have fun!




More info


Reversing C++ String And QString

After the rust string overview of its internal substructures, let's see if c++ QString storage is more light, but first we'r going to take a look to the c++ standard string object:



At first sight we can see the allocation and deallocation created by the clang++ compiler, and the DAT_00400d34 is the string.

If we use same algorithm than the rust code but in c++:



We have a different decompilation layout. Note that the Ghidra scans very fast the c++ binaries, and with rust binaries gets crazy for a while.
Locating main is also very simple in a c++ compiled binary, indeed is more  low-level than rust.


The byte array is initialized with a simply move instruction:
        00400c4b 48 b8 68        MOV        RAX,0x6f77206f6c6c6568

And basic_string generates the string, in the case of rust this was carazy endless set of calls, detected by ghidra as a runtime, but nevertheless the basic_string is an external imported function not included on the binary.

(gdb) x/x 0x7fffffffe1d0
0x7fffffffe1d0: 0xffffe1e0            low str ptr
0x7fffffffe1d4: 0x00007fff           hight str ptr
0x7fffffffe1d8: 0x0000000b        sz
0x7fffffffe1dc: 0x00000000
0x7fffffffe1e0: 0x6c6c6568         "hello world"
0x7fffffffe1e4: 0x6f77206f
0x7fffffffe1e8: 0x00646c72
0x7fffffffe1ec: 0x00000000        null terminated
(gdb) x/s 0x7fffffffe1e0
0x7fffffffe1e0: "hello world"

The string is on the stack, and it's very curious to see what happens if there are two followed strings like these:

  auto s = string(cstr);
  string s2 = "test";

Clang puts toguether both stack strings:
[ptr1][sz1][string1][null][string2][null][ptr2][sz2]

C++ QString datatype

Let's see the great and featured QString object defined on qstring.cpp and qstring.h

Some QString methods use the QCharRef class whose definition is below:

class Q_EXPORT QCharRef {     friend class QString;     QString& s;     uint p;
 
 Searching for the properties on the QString class I've realized that one improvement that  rust and golang does is the separation from properties and methods, so in the large QString class the methods are  hidden among the hundreds of methods, but basically the storage is a QStringData *;

After removing the methods of QStringData class definition we have this:

struct Q_EXPORT QStringData : public QShared {
    QChar *unicode;
    char *ascii;
#ifdef Q_OS_MAC9
    uint len;
#else
    uint len : 30;

jueves, 18 de enero de 2024

Practical Bleichenbacher Attacks On IPsec IKE

We found out that reusing a key pair across different versions and modes of IPsec IKE can lead to cross-protocol authentication bypasses, enabling the impersonation of a victim host or network by attackers. These vulnerabilities existed in implementations by Cisco, Huawei, and others.

This week at the USENIX Security conference, I will present our research paper on IPsec attacks: The Dangers of Key Reuse: Practical Attacks on IPsec IKE written by Martin Grothe, Jörg Schwenk, and me from Ruhr University Bochum as well as Adam Czubak and Marcin Szymanek from the University of Opole [alternative link to the paper]. This blog post is intended for people who like to get a comprehensive summary of our findings rather than to read a long research paper.

IPsec and Internet Key Exchange (IKE)

IPsec enables cryptographic protection of IP packets. It is commonly used to build VPNs (Virtual Private Networks). For key establishment, the IKE protocol is used. IKE exists in two versions, each with different modes, different phases, several authentication methods, and configuration options. Therefore, IKE is one of the most complex cryptographic protocols in use.

In version 1 of IKE (IKEv1), four authentication methods are available for Phase 1, in which initial authenticated keying material is established: Two public key encryption based methods, one signature based method, and a PSK (Pre-Shared Key) based method.

Attacks on IKE implementations

With our attacks we can impersonate an IKE device: If the attack is successful, we share a set of (falsely) authenticated symmetric keys with the victim device, and can successfully complete the handshake – this holds for both IKEv1 and IKEv2. The attacks are based on Bleichenbacher oracles in the IKEv1 implementations of four large network equipment manufacturers: Cisco, Huawei, Clavister, and ZyXEL. These Bleichenbacher oracles can also be used to forge digital signatures, which breaks the signature based IKEv1 and IKEv2 variants. Those who are unfamiliar with Bleichenbacher attacks may read this post by our colleague Juraj Somorovsky for an explanation.

The affected hardware test devices by Huawei, Cisco, and ZyXEL in our network lab.

We show that the strength of these oracles is sufficient to break all handshake variants in IKEv1 and IKEv2 (except those based on PSKs) when given access to powerful network equipment. We furthermore demonstrate that key reuse across protocols as implemented in certain network equipment carries high security risks.

We additionally show that both PSK based modes can be broken with an offline dictionary attack if the PSK has low entropy. Such an attack was previously only documented for one of those modes (edit: see this comment). We thus show attacks against all authentication modes in both IKEv1 and IKEv2 under reasonable assumptions.

The relationship between IKEv1 Phase 1, Phase 2, and IPsec ESP. Multiple simultaneous Phase 2 connections can be established from a single Phase 1 connection. Grey parts are encrypted, either with IKE derived keys (light grey) or with IPsec keys (dark grey). The numbers at the curly brackets denote the number of messages to be exchanged in the protocol.

Where's the bug?

The public key encryption (PKE) based authentication mode of IKE requires that both parties exchanged their public keys securely beforehand (e. g. with certificates during an earlier handshake with signature based authentication). RFC 2409 advertises this mode of authentication with a plausibly deniable exchange to raise the privacy level. In this mode, messages three and four of the handshake exchange encrypted nonces and identities. They are encrypted using the public key of the respective other party. The encoding format for the ciphertexts is PKCS #1 v1.5.

Bleichenbacher attacks are adaptive chosen ciphertext attacks against RSA-PKCS #1 v1.5. Though the attack has been known for two decades, it is a common pitfall for developers. The mandatory use of PKCS #1 v1.5 in the PKE authentication methods raised suspicion of whether implementations resist Bleichenbacher attacks.

PKE authentication is available and fully functional in Cisco's IOS operating system. In Clavister's cOS and ZyXEL's ZyWALL USG devices, PKE is not officially available. There is no documentation and no configuration option for it and it is therefore not fully functional. Nevertheless, these implementations processed messages using PKE authentication in our tests.

Huawei implements a revised mode of the PKE mode mentioned in the RFC that saves one private key operation per peer (we call it RPKE mode). It is available in certain Huawei devices including the Secospace USG2000 series.

We were able to confirm the existence of Bleichenbacher oracles in all these implementations. Here are the CVE entries and security advisories by the vendors (I will add links once they are available):
On an abstract level, these oracles work as follows: If we replace the ciphertext of the nonce in the third handshake message with a modified RSA ciphertext, the responder will either indicate an error (Cisco, Clavister, and ZyXEL) or silently abort (Huawei) if the ciphertext is not PKCS #1 v1.5 compliant. Otherwise, the responder continues with the fourth message (Cisco and Huawei) or return an error notification with a different message (Clavister and ZyXEL) if the ciphertext is in fact PKCS #1 v1.5 compliant. Each time we learn that the ciphertext was valid, we can advance the Bleichenbacher attack one more step.

A Bleichenbacher Attack Against PKE

If a Bleichenbacher oracle is discovered in a TLS implementation, then TLS-RSA is broken since one can compute the Premaster Secret and the TLS session keys without any time limit on the usage of the oracle. For IKEv1, the situation is more difficult: Even if there is a strong Bleichenbacher oracle in PKE and RPKE mode, our attack must succeed within the lifetime of the IKEv1 Phase 1 session, since a Diffie-Hellman key exchange during the handshake provides an additional layer of security that is not present in TLS-RSA. For example, for Cisco this time limit is currently fixed to 60 seconds for IKEv1 and 240 seconds for IKEv2.

To phrase it differently: In TLS-RSA, a Bleichenbacher oracle allows to perform an ex post attack to break the confidentiality of the TLS session later on, whereas in IKEv1 a Bleichenbacher oracle only can be used to perform an online attack to impersonate one of the two parties in real time.

Bleichenbacher attack against IKEv1 PKE based authentication.

The figure above depicts a direct attack on IKEv1 PKE:
  1. The attackers initiate an IKEv1 PKE based key exchange with Responder A and adhere to the protocol until receiving the fourth message. They extract the encrypted nonce from this message, and record the other public values of the handshake.
  2. The attackers keep the IKE handshake with Responder A alive as long as the responder allows. For Cisco and ZyXEL we know that handshakes are cancelled after 60 seconds, Clavister and Huawei do so after 30 seconds.
  3. The attackers initiate several parallel PKE based key exchanges to Responder B.
    • In each of these exchanges, they send and receive the first two messages according to the protocol specifications.
    • In the third message, they include a modified version of the encrypted nonce according to the the Bleichenbacher attack methodology.
    • They wait until they receive an answer or they can reliably determine that this message will not be sent (timeout or reception of a repeated second handshake message).
  4. After receiving enough answers from Responder B, the attackers can compute the plaintext of the nonce.
  5. The attackers now have all the information to complete the key derivation and the handshake. They thus can impersonate Responder B to Responder A.

Key Reuse

Maintaining individual keys and key pairs for each protocol version, mode, and authentication method of IKE is difficult to achieve in practice. It is oftentimes simply not supported by implementations. This is the case with the implementations by Clavister and ZyXEL, for example. Thus, it is common practice to have only one RSA key pair for the whole IKE protocol family. The actual security of the protocol family in this case crucially depends on its cross-ciphersuite and cross-version security. In fact, our Huawei test device reuses its RSA key pair even for SSH host identification, which further exposes this key pair.

A Cross-Protocol Version Attack with Digital Signature Based Authentication

Signature Forgery Using Bleichenbacher's Attack

It is well known that in the case of RSA, performing a decryption and creating a signature is mathematically the same operation. Bleichenbacher's original paper already mentioned that the attack could also be used to forge signatures over attacker-chosen data. In two papers that my colleagues at our chair have published, this has been exploited for attacks on XML-based Web Services, TLS 1.3, and Google's QUIC protocol. The ROBOT paper used this attack to forge a signature from Facebook's web servers as proof of exploitability.

IKEv2 With Digital Signatures

Digital signature based authentication is supported by both IKEv1 and IKEv2. We focus here on IKEv2 because on Cisco routers, an IKEv2 handshake may take up to four minutes. This more relaxed timer compared to IKEv1 makes it an interesting attack target.

I promised that this blogpost will only give a comprehensive summary, therefore I am skipping all the details about IKEv2 here. It is enough to know that the structure of IKEv2 is fundamentally different from IKEv1.

If you're familiar with IT-security, then you will believe me that if digital signatures are used for authentication, it is not particularly good if an attacker can get a signature over attacker chosen data. We managed to develop an attack that exploits an IKEv1 Bleichenbacher oracle at some peer A to get a signature that can be used to break the IKEv2 authentication at another peer B. This requires that peer A reuses its key pair for IKEv2 also for IKEv1. For the details, please read our paper [alternative link to the paper].

Evaluation and Results

For testing the attack, we used a Cisco ASR 1001-X router running IOS XE in version 03.16.02.S with IOS version 15.5(3)S2. Unfortunately, Cisco's implementation is not optimized for throughput. From our observations we assume that all cryptographic calculations for IKE are done by the device's CPU despite it having a hardware accelerator for cryptography. One can easily overload the device's CPU for several seconds with a standard PC bursting handshake messages, even with the default limit for concurrent handshakes. And even if the CPU load is kept below 100 %, we nevertheless observed packet loss.

For the decryption attack on Cisco's IKEv1 responder, we need to finish the Bleichenbacher attack in 60 seconds. If the public key of our ASR 1001-X router is 1024 bits long, we measured an average of 850 responses to Bleichenbacher requests per second. Therefore, an attack must succeed with at most 51,000 Bleichenbacher requests.

But another limit is the management of Security Associations (SAs). There is a global limit of 900 Phase 1 SAs under negotiation per Cisco device in the default configuration. If this number is exceeded, one is blocked. Thus, one cannot start individual handshakes for each Bleichenbacher request to issue. Instead, SAs have to be reused as long as their error counter allows. Furthermore, establishing SAs with Cisco IOS is really slow. During the attack, the negotiations in the first two messages of IKEv1 require more time than the actual Bleichenbacher attack.

We managed to perform a successful decryption attack against our ASR 1001-X router with approximately 19,000 Bleichenbacher requests. However, due to the necessary SA negotiations, the attack took 13 minutes.

For the statistics and for the attack evaluation of digital signature forgery, we used a simulator with an oracle that behaves exactly as the ones by Cisco, Clavister, and ZyXEL. We found that about 26% of attacks against IKEv1 could be successful based on the cryptographic performance of our Cisco device. For digital signature forgery, about 22% of attacks could be successful under the same assumptions.

Note that (without a patched IOS), only non-cryptographic performance issues prevented a succesful attack on our Cisco device. There might be faster devices that do not suffer from this. Also note that a too slow Bleichenbacher attack does not permanently lock out attackers. If a timeout occurs, they can just start over with a new attack using fresh values hoping to require fewer requests. If the victim has deployed multiple responders sharing one key pair (e. g. for load balancing), this could also be leveraged to speed up an attack.

Responsible Disclosure

We reported our findings to Cisco, Huawei, Clavister, and ZyXEL. Cisco published fixes with IOS XE versions 16.3.6, 16.6.3, and 16.7.1. They further informed us that the PKE mode will be removed with the next major release.

Huawei published firmware version V300R001C10SPH702 for the Secospace USG2000 series that removes the Bleichenbacher oracle and the crash bugs we identified. Customers who use other affected Huawei devices will be contacted directly by their support team as part of a need-to-know strategy.

Clavister removed the vulnerable authentication method with cOS version 12.00.09. ZyXEL responded that our ZyWALL USG 100 test device is from a legacy model series that is end-of-support. Therefore, these devices will not receive a fix. For the successor models, the patched firmware version ZLD 4.32 (Release Notes) is available.

FAQs

  • Why don't you have a cool name for this attack?
    The attack itself already has a name, it's Bleichenbacher's attack. We just show how Bleichenbacher attacks can be applied to IKE and how they can break the protocol's security. So, if you like, call it IPsec-Bleichenbacher or IKE-Bleichenbacher.
  • Do you have a logo for the attack?
    No.
  • My machine was running a vulnerable firmware. Have I been attacked?
    We have no indication that the attack was ever used in the wild. However, if you are still concerned, check your logs. The attack is not silent. If your machine was used for a Bleichenbacher attack, there should be many log entries about decryption errors. If your machine was the one that got tricked (Responder A in our figures), then you could probably find log entries about unfinished handshake attempts.
  • Where can I learn more?
    First of all, you can read the paper [alternative link to the paper]. Second, you can watch the presentation, either live at the conference or later on this page.
  • What else does the paper contain?
    The paper contains a lot more details than this blogpost. It explains all authentication methods including IKEv2 and it gives message flow diagrams of the protocols. There, we describe a variant of the attack that uses the Bleichenbacher oracles to forge signatures to target IKEv2. Furthermore, we describe the quirks of Huawei's implementation including crash bugs that could allow for Denial-of-Service attacks. Last but not least, it describes a dictionary attack against the PSK mode of authentication that is covered in a separate blogpost.

Media Coverage, Blogs, and more

English

German

More info

Aircrack-ng: The Next Generation Of Aircrack


"Aircrack-ng is an 802.11 WEP and WPA-PSK keys cracking program that can recover keys once enough data packets have been captured. It implements the standard FMS attack along with some optimizations like KoreK attacks, as well as the all-new PTW attack, thus making the attack much faster compared to other WEP cracking tools. In fact, Aircrack-ng is a set of tools for auditing wireless networks." read more...

Website: http://www.aircrack-ng.org

Related word
  1. Hacker Tool Kit
  2. Pentest Recon Tools
  3. Hacker Tools List
  4. Hack Tools For Windows
  5. Hacker Tools For Windows
  6. Pentest Tools
  7. Pentest Tools Alternative
  8. Tools Used For Hacking
  9. Hacker Tool Kit
  10. Pentest Tools Online
  11. Growth Hacker Tools
  12. Hacking Tools Windows 10
  13. Hacker Tools Software
  14. Hack Tools Online
  15. Physical Pentest Tools
  16. Hack Tools Pc
  17. How To Make Hacking Tools
  18. Hack And Tools
  19. Wifi Hacker Tools For Windows
  20. Pentest Tools Linux
  21. Hack Tools Pc
  22. Hacker Tools Free Download
  23. Hacking Tools Windows
  24. Hacking Tools Pc
  25. Android Hack Tools Github
  26. Pentest Tools For Mac
  27. Hacker Techniques Tools And Incident Handling
  28. What Are Hacking Tools
  29. Hacking Tools For Beginners
  30. Pentest Tools Android
  31. Hacker Tools For Windows
  32. Hacking Tools Pc
  33. Hacking Tools For Windows 7
  34. Hacking Tools
  35. Hacking Tools For Windows
  36. Hacker Tools For Pc
  37. Hacker
  38. Hack Apps
  39. Hacker Tools Apk Download
  40. Hack Tools Mac
  41. Hacking Tools For Windows
  42. How To Install Pentest Tools In Ubuntu
  43. Beginner Hacker Tools
  44. Computer Hacker
  45. Hackrf Tools
  46. Pentest Tools Github
  47. Physical Pentest Tools
  48. Hacker Tools Apk Download
  49. Hack Tools Pc
  50. Hack And Tools
  51. Hack Tools For Mac
  52. Pentest Tools
  53. Hacker Tools
  54. Hacker Tools 2020
  55. Hacking Tools Online
  56. Hacking Tools Kit
  57. Hacking Tools Kit
  58. Hacking Tools For Pc
  59. Hack Tool Apk No Root
  60. Hacker Tools
  61. Underground Hacker Sites
  62. Hacking Tools Windows
  63. Pentest Tools Nmap
  64. Hacking Apps
  65. Pentest Tools Download
  66. Pentest Tools Windows
  67. How To Make Hacking Tools
  68. How To Install Pentest Tools In Ubuntu
  69. Pentest Tools For Ubuntu
  70. Hacker Hardware Tools
  71. Hacker Security Tools
  72. Hack Tools Download
  73. Hacking Tools 2020
  74. Pentest Tools Alternative
  75. Hacking Tools Github
  76. Growth Hacker Tools
  77. Hack Tools 2019
  78. Hacker Hardware Tools
  79. Easy Hack Tools
  80. Tools Used For Hacking
  81. Easy Hack Tools
  82. Hacker
  83. Pentest Tools For Ubuntu
  84. Hacker Tools Github
  85. Hacking Tools For Windows
  86. Pentest Tools For Android
  87. Pentest Tools Url Fuzzer
  88. Hacking Tools Github
  89. Hack Tools 2019
  90. Hacking Tools And Software
  91. Easy Hack Tools
  92. Hack Rom Tools
  93. Physical Pentest Tools
  94. Pentest Box Tools Download
  95. Hacking Tools Pc
  96. Physical Pentest Tools
  97. New Hacker Tools
  98. Hack And Tools
  99. Pentest Tools
  100. Pentest Tools For Ubuntu
  101. Pentest Tools Website Vulnerability
  102. Pentest Tools Github
  103. Hack Tools
  104. Physical Pentest Tools
  105. Hack And Tools
  106. Hacker
  107. Hack Tools Download
  108. Hack Tools
  109. Hak5 Tools
  110. New Hacker Tools
  111. How To Hack
  112. Hacking Tools For Windows Free Download
  113. How To Hack
  114. Hacking App
  115. Pentest Box Tools Download
  116. Hacking Tools 2020
  117. What Is Hacking Tools
  118. Hacker Tools Apk
  119. Hacking Tools For Pc
  120. Hack Tools For Windows
  121. Bluetooth Hacking Tools Kali
  122. Pentest Automation Tools
  123. Pentest Tools Open Source
  124. Hack And Tools
  125. Pentest Tools Url Fuzzer
  126. World No 1 Hacker Software
  127. Hack Apps
  128. Hack Tools
  129. Pentest Tools Online
  130. Pentest Tools Review
  131. Pentest Tools Review
  132. Hacking Tools For Windows

Reversing Some C++ Io Operations

In general decompilers are not friendly with c++ let's analyse a simple program to get familiar with it.
Let's implement a simple code that loads a file into a vector and then save the vector with following functions:

  • err
  • load
  • save
  • main


Lets identify the typical way in C++ to print to stdout with the operator "<<"


The basic_ostream is initialized writing the word "error" to the cout, and then the operator<< again to add the endl.




The Main function simply calls  "vec = load(filename)"  but the compiler modified it and passed the vector pointer as a parámeter. Then it bulds and prints "loaded  " << size << " users".
And finally saves the vector to /tmp/pwd and print "saved".
Most of the mess is basically the operator "<<" to concat and print values.
Also note that the vectors and strings are automatically deallocated when exit the function.


And here is the code:


Let's take a look to the load function, which iterates the ifs.getline() and push to the vector.
First of all there is a mess on the function definition, __return_storage_ptr is the vector.
the ifstream object ifs is initialized as a basic_ifstream and then operator! checks if it wasn't possible to open the file and in that case calls err()
We see the memset and a loop, getline read a cstr like line from the file, and then is converted to a string before pushing it to the vector. lVar1 is the stack canary value.

In this situations dont obfuscate with the vector pointer vec initialization at the begining, in this case the logic is quite clear.



The function save is a bit more tricky, but it's no more than a vector iteration and ofs writing.
Looping a simple "for (auto s : *vec)" in the decompiler is quite dense, but we can see clearly two write, the second write DAT_0010400b is a "\n"



As we see, save implememtation is quite straightforward.




Related word