Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "Add Base64 VBMI lookup table detection" #924

Closed
wants to merge 1 commit into from

Conversation

mr-tz
Copy link
Collaborator

@mr-tz mr-tz commented Aug 14, 2024

Reverts #918

per the linter:

 decode data using Base64 via VBMI lookup table                                                                                                                                                                                                                                                                                                    
  FAIL: doesn't match on referenced example: Fix the rule logic or provide a different example   

@Still34 could you take another look at this?

@Still34
Copy link
Contributor

Still34 commented Aug 14, 2024

Huh, it matches for me though - or do both conditions I wrote have to be met? If so, I tried uploading the other sample but it kept failing CI checks.
image

@Still34
Copy link
Contributor

Still34 commented Aug 14, 2024

Well that's strange, it's matching in the IDA plugin but not the capa standalone?
image

@mr-tz
Copy link
Collaborator Author

mr-tz commented Aug 14, 2024

Let me check what features vivisect extracts.

@mr-tz
Copy link
Collaborator Author

mr-tz commented Aug 14, 2024

Vivisect seems to have issues handling the v*/movdq* instructions, so we cannot use this rule as is unfortunately...

image

 bb: 0x1400085D0: basic block
  insn: 0x1400085D0: mnemonic(lea)
  insn: 0x1400085D0: offset(-0x284)
  insn: 0x1400085D0: operand[1].offset(-0x284)
  insn: 0x1400085D0: number(-0x284)
  insn: 0x1400085D0: operand[1].number(-0x284)
  insn: 0x1400085D7: mnemonic(bound)
  insn: 0x1400085D9: mnemonic(dec)
  insn: 0x1400085D9: offset(0x6F)
  insn: 0x1400085D9: operand[0].offset(0x6F)
  insn: 0x1400085DC: characteristic(nzxor)
  insn: 0x1400085DC: mnemonic(xor)
  insn: 0x1400085DC: offset(-0xF)
  insn: 0x1400085DC: operand[0].offset(-0xF)
  insn: 0x1400085DF: mnemonic(dec)
  insn: 0x1400085DF: offset(0x6F)
  insn: 0x1400085DF: operand[0].offset(0x6F)
  insn: 0x1400085E2: mnemonic(add)
  insn: 0x1400085E2: offset(-0x27)
  insn: 0x1400085E2: operand[0].offset(-0x27)
  insn: 0x1400085E7: mnemonic(jnc)
 bb: 0x1400085ED: basic block
  insn: 0x1400085ED: mnemonic(bound)
  insn: 0x1400085EF: mnemonic(jg)
 bb: 0x1400085F1: basic block
  insn: 0x1400085F1: mnemonic(outsd)
  insn: 0x1400085F1: offset(0x0)
  insn: 0x1400085F1: operand[1].offset(0x0)
  insn: 0x1400085F2: mnemonic(sub)
  insn: 0x1400085F2: number(0x14049)
  insn: 0x1400085F2: operand[1].number(0x14049)
  insn: 0x1400085F7: mnemonic(bound)
  insn: 0x1400085F9: mnemonic(jg)
 bb: 0x1400085FB: basic block
  insn: 0x1400085FB: mnemonic(outsd)
  insn: 0x1400085FB: offset(0x0)
  insn: 0x1400085FB: operand[1].offset(0x0)
  insn: 0x1400085FC: mnemonic(and)
  insn: 0x1400085FC: number(0x1407F)
  insn: 0x1400085FC: operand[1].number(0x1407F)
  insn: 0x140008601: mnemonic(mov)
  insn: 0x140008604: mnemonic(mov)
  insn: 0x140008607: mnemonic(bound)
  insn: 0x140008609: mnemonic(jg)

@mr-tz
Copy link
Collaborator Author

mr-tz commented Aug 14, 2024

TODO: open an issue with vivisect to inquire on this.

@mr-tz
Copy link
Collaborator Author

mr-tz commented Aug 16, 2024

solved via #925

@mr-tz mr-tz closed this Aug 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants