AssemblyLearner icon indicating copy to clipboard operation
AssemblyLearner copied to clipboard

Issues remaining for 1.0

Open Jinmo opened this issue 7 years ago • 1 comments

  • [x] 회원 정보 수정 만들기
  • [x] snippet을 문제 화면에 넣을 것인지 결정
  • [x] 정답표시를 타임아웃 걸린 밑의 한줄짜리 글로 표현하기. 지금 보니까 조금 불편함..
  • [ ] 답 검사를 파이썬 파일로 하기 (interactive judge)
  • [ ] 문제 제작 시 이미지 업로드 지원하기
  • [ ] Dockerfile 및 설치 스크립트 만들기

Jinmo avatar Dec 21 '17 16:12 Jinmo

snippet을 include의 autocomplete로 넣자 Answer checker의 경우 지금 개인적으로 짜고있는 쉘코딩에서는 strace 기반으로 하고있는데, 이걸 이제 함수 단위로 만들어서 사용해도 되겠다.

validator에서 코드의 사이즈를 체크해도 될 것 같다. 이러면 validator, answer checker, suffix, hint, input, example을 입력해야하는데, 아무래도 입력해야되는게 엄청 많아지니까 화면이 점점 길어지는군.

answer checker concept:

# syscalls = [yields Syscall]
# program.<attr> = caller for a program.
# * NOTE: can segfault?
# * let's use ctypes-like caller and angr-like memory/register setter with appcalls concept

from random import getrandbits

for i in range(100):
    input = getrandbits(16)
    assert program.code(eax=input) * 2 + 1 == input * 2 + 1

# If not assertions and progrma returns normally, then great!
# another example:

found = False

for syscall in syscalls:
    if syscall.no == 11 and memory.readstr(syscall.args[0]) == '/bin/sh' and valid_argv(syscall.args[1]) and valid_envp(syscall.args[2]):
        found = True
        break

assert found == True

Jinmo avatar Jun 25 '18 20:06 Jinmo