GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Conversation

Notices

  1. Embed this notice
    ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 17:33:21 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧

    finally solved a crackme that was rated "medium" by, i think, its author, by extracting a cryptographic algorithm from an embedded virtual machine i had to reverse-engineer the ISA spec for, reimplementing it in Amaranth and then feeding it into yosys-smtbmc to invert the fairly complex scrambling function with XOR diffusion, various permutations, etc

    im terrified to consider what would be rated "hard"

    In conversation about 3 months ago from mastodon.social permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 17:36:06 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      i spent two out of three days chasing down a single bit (i thought the comparison operation has "equal", "not equal", and "less than" flags, but it has "equal", "not equal and not less than", and "less than" flags). since the input to the scrambling function is 128-bit, every time i would feed the execution trace into the SMT solver it would attempt to enumerate every 128-bit integer to prove me wrong, which doesn't work

      In conversation about 3 months ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 17:37:36 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      i was emotionally obliterated when i thought that i'm insufficiently good at cryptanalyzing this scrambling function (with my approach being an SMT solver but it never terminating), i looked up how they broke MD4, and it was "hook it up to an SMT solver"

      well, it turns out that works if you implement the ISA right

      In conversation about 3 months ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 17:39:41 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      reverse-engineering a VM implementation embedded in a Linux binary with anti-debug measures to extract its ISA spec: easy

      correctly reading this code fragment on first, second, third, or fourth try: mission fucking impossible

      i filed https://github.com/Vector35/binaryninja-api/issues/6674

      In conversation about 3 months ago permalink

      Attachments


      1. https://files.mastodon.social/media_attachments/files/114/358/063/734/251/311/original/e6758c1ba5c5860b.png
      2. Domain not in remote thumbnail source whitelist: opengraph.githubassets.com
        Do something about repetitive names? · Issue #6674 · Vector35/binaryninja-api
        What is the feature you'd like to have? Consider this function: It implements a compare operation for a VM in https://crackmes.one/crackme/67f9bdc38f555589f3530a85. In reality, vm_flags is one-hot:...
      Haelwenn /элвэн/ :triskell: likes this.
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 17:41:28 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      im also pleased to report that lifting the VM code to Amaranth and using SMTBMC went better than using angr or KLEE. i'm inexperienced with the latter two but someone else also tried it and didn't get far

      yay for hardware tools?

      In conversation about 3 months ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 17:52:00 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      probably the single most "i am about to give up" moment was me concluding that i need to do a first preimage attack on a cryptographic function with nontrivial diffusion properties (flipping one bit anywhere changes basically the entire 16 byte output), i went to study and found out that basically no serious hash function has ever had a practical first preimage attack executed on it

      In conversation about 3 months ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 17:53:49 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      after that i considered brute-forcing it using a Kintex UltraScale FPGA that i had around (and i calculated that with the alphabet limited to 0-9 i could do it) but stopped because it felt unlikely that the intended solution to a "medium" crackme with "Level 1" in the title would involve $6000 worth of specialized hardware

      this wouldn't have worked anyway because the function implements a bijection, and also because i misunderstood what the alphabet is and it wasn't 0-9

      In conversation about 3 months ago permalink
    • Embed this notice
      dram🎀 (dramforever@mastodon.social)'s status on Friday, 18-Apr-2025 17:54:01 JST dram🎀 dram🎀
      in reply to

      @whitequark i can't even read this right knowing the answer that's amazingly confusing

      In conversation about 3 months ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 17:55:39 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to
      • dram🎀

      @dramforever i had to write this gdb script (x: pc flag reg mem) and then make my emulator emit the same format of hexdump and diff it to figure out where the fuck it went wrong

      In conversation about 3 months ago permalink

      Attachments


      1. https://files.mastodon.social/media_attachments/files/114/358/124/900/468/321/original/43fe65ec6175f496.png
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 17:56:17 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to
      • dram🎀

      @dramforever and yes, you can make gdb execute a continue command when it hits a watchpoint

      In conversation about 3 months ago permalink
    • Embed this notice
      dram🎀 (dramforever@mastodon.social)'s status on Friday, 18-Apr-2025 18:02:17 JST dram🎀 dram🎀
      in reply to

      @whitequark cosim testing ❤

      In conversation about 3 months ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 18:16:43 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to
      • SDRHoernchen

      @SDRHoernchen like what?

      In conversation about 3 months ago permalink
    • Embed this notice
      SDRHoernchen (sdrhoernchen@chaos.social)'s status on Friday, 18-Apr-2025 18:16:45 JST SDRHoernchen SDRHoernchen
      in reply to

      @whitequark now do fpga stuff with klee/angr.

      In conversation about 3 months ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Friday, 18-Apr-2025 20:27:49 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      i implemented a custom concolic execution engine[1] for this crackme, but it didn't work out: at the beginning of it, there is code that checks for an alphabet, smth like:

      if x == '(': break
      if x in 'a'..'z': break
      goto fail

      i split the solver state on each branch, which doesn't work out well for me: it means i will do a graph search of like 6**32 branches, which will take very long

      state merging is hard

      [1]: https://gist.github.com/whitequark/e8c7ffab0208d1b033aae715488881d6

      In conversation about 3 months ago permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: github.githubassets.com
        concolic execution engine written for https://crackmes.one/crackme/67f9bdc38f555589f3530a85
        from whitequark
        concolic execution engine written for https://crackmes.one/crackme/67f9bdc38f555589f3530a85

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.