티스토리 뷰


JavaCrackMe.jar


i = 0

j = 0

n = 2**64

cur_n = 2

cur_d = 1

while True:

if ((i + j) * 26729) % cur_n == 0xeaaeb43e477b8487 % cur_n:

cur_n *= 2

cur_d *= 2

if cur_n == 2 ** 64:

print i

print i - 2 ** 64

exit()

i += cur_d

저작자 표시
신고
댓글
  • 프로필사진 123 2014.07.27 10:05 신고
  • 프로필사진 BlogIcon 진모씨 올ㅋ 2014.07.27 11:57 신고
  • 프로필사진 BlogIcon Serena159 rtrt함다 2014.07.27 10:53 신고
  • 프로필사진 BlogIcon 진모씨 2014.07.27 11:57 신고
  • 프로필사진 비밀댓글입니다 2014.07.27 11:39
  • 프로필사진 BlogIcon 진모씨 위의 123님이랑 같은분이신진 모르겠는데 http://fb.com/jinyonghwi 친추 주세요 ^^ 2014.07.27 11:57 신고
  • 프로필사진 태양 죄송하지만 어떤 개념과 원리를 이용해서 이런 식이 나왔는지 알 수 있을까요..?ㅠ
    뭔가 수학적으로 접근해야 할 거 같은데 도통 모르겠네요..
    오버플로우를 이용해야 하는것까지는 알겠는데 어떤 방식으로 접근을 해야 할 지 모르겠습니다..
    그리고 리버싱을 공부하는 것에 대해 조그마한 조언 하나 부탁드려도 될까요..?
    2015.03.07 20:05 신고
  • 프로필사진 BlogIcon 진모씨 네, 수학적으로 접근하는거 맞습니당!
    가령..
    a = b * c
    x mod b = 7
    이라고 했을 때,
    (x + b) mod b = 7
    (x + b * 2) mod b = 7
    이렇게 되죠?
    여기서 구해야 될 부분은 a = 2 ^ 64구요.

    그러니 b의 값을 2, 4, 8, 16, 32, 이런식으로 늘려가면서..
    (x * 26729) mod 2의 값을 목표값(0xeaaeb43e477b8487 mod 2)이랑 매치해서 2진수에서 첫번째 자리를 알아내구요,
    (x * 26729) mod 4의 값을 2진수의 두 번째 자리만 바꿔가면서 목표값(0xeaaeb43e477b8487 mod 4)이랑 매치해서 두 번째 자리를 알아내구요,
    그런식으로 하는거에요.

    는..

    그냥 modular inverse 쓰면 바로 되는걸, 그냥 이 때는 아무것도 몰라서 무작정 했었네요.
    2015.03.07 22:54 신고
  • 프로필사진 BlogIcon 진모씨 리버싱은.. 어셈블리어를 보자마자 이게 어떤 루틴이구나 하는 것을 알아낼 수 있으면 어떤 플랫폼을 리버싱하던지 도움이 될거에요. 여러 플랫폼의 어셈블리어를 많이 보시고, 실행 파일들의 구조들에 대해 간략하게 공부해두면 좋아요. 그리고 안티 디버깅 기법의 동작하는 원리를 알아두시면 디버거의 원리까지 접근할 수 있는 통로가 되기도 해요! 2015.03.07 22:56 신고
  • 프로필사진 행인 디컴파일 해놓고 무슨 어셈타령 2017.01.28 22:14 신고
  • 프로필사진 BlogIcon 진모씨 아직은 MIPS 디컴파일러가 안나왔으니까요 ㅋㅋ.. 2017.02.02 12:34 신고
  • 프로필사진 초보 안녕하세요 이제막 프로그래밍 배우는 초짜입니다. 오버플로의 개념은 알지만 어째서 (l*26729) mod 2^64=0xeaaeb43e477b8487 유도되는지 궁금합니다. 2017.01.25 13:25 신고
  • 프로필사진 BlogIcon 진모씨 정수론을 배웠더니 '법'이라는 단원에 나오더라구요. 2017.02.02 12:35 신고
댓글쓰기 폼
Statistics Graph
공지사항
Total
58,028
Today
20
Yesterday
33
링크
«   2017/09   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함