int __cdecl main() 
{ 
  write(1, "Reversing.Kr Easy ELF\n\n", 23u); 
  sub_8048434(); 
  if ( sub_8048451() == 1 ) 
    sub_80484F7(); 
  else 
    write(1, "Wrong\n", 6u); 
  return 0; 
}
int sub_8048434()
{
  return __isoc99_scanf((const char *)&unk_8048650, &byte_804A020);
}
_BOOL4 sub_8048451()
{
  if ( byte_804A021 != 0x31 )
    return 0;
  byte_804A020 ^= 0x34u;
  byte_804A022 ^= 0x32u;
  byte_804A023 ^= 0x88u;
  if ( byte_804A024 != 0x58 )
    return 0;
  if ( byte_804A025 )
    return 0;
  if ( byte_804A022 != 0x7C )
    return 0;
  if ( byte_804A020 == 0x78 )
    return byte_804A023 == 0xDDu;
  return 0;
}​

scanf로 문자열 입력받고나서 xor과 if문을 통해 값을 검사하고 해당 검사 모두 패스하면 끝.

살짝 고민했던건 byte_804A020~byte_804A025까지 있는데 일단 if문 특성상 0이 아니면 모두 True처리해서 아무거나 입력하면 되는건가 했으나 플래그를 구하고나니 그건 아닌듯 싶었다가 생각해보니 \n이 있었다는게 생각났다 ㅋㅋ

저것때문에 3분정도 고민..ㅡㅠ

'Reversing > Reversing.kr' 카테고리의 다른 글

[Reversing.kr] Easy Keygen  (0) 2019.08.13

+ Recent posts