개요 항상, 무언가에 막힌다면 새로운 아이디어를 통해 헤쳐나가는 것이 중요하다 생각이 들곤 한다. 특히, 동의대학교의 정보 보안 도구는 비싼것을 쓰는 것인지, 보안 규칙이 하드하게 잡혀있는진 잘 모르겠지만, 외부에서 내부간 통신을 할 때 대부분 교내 방화벽에 의해 막혀있다. (e.g. UDP 통신, Well-Knwon 포트, 1만번 이상의 포트) 그...
The Indirect Convolution 논문 리뷰
개요 [논문 원본] 추신. 누구나 읽고 이해하기 편하게 하기 위해 작성한 내용입니다. 논문의 내용의 핵심을 전달하고자 일부 내용이 누락 생략을 할 수 있습니다. ARM 회사에서 만든 딥러닝 추론 프레임워크인 ACL(Arm Compute Library)에서 코드 분석하던 중, GEMM Direct, GEMM General, Winograd Conv...
안드로이드에서 메모리 동적 할당을 이용하면 커널 패닉이 발생하는 이유
개요 우선, 해당 글의 경우 이슈의 발달 원인인 [[관련 주소]]에서 한번 확인해 주시길 바랍니다. 먼저, 이슈의 발달된 내용은 메모리를 무한정 할당할 경우, System UI가 갑작스럽게 사망하게 되면서 시스템이 정지한 듯한 모습을 보여주는것이 문제의 발달 계기 입니다. 해당 문제를 재현하고 시현하기 위해서, 단순하게 자바 어플리케이션을 활용하여...
MSSQL-Dev를 설치 후, 외부 도구 활용
개요 외부 업체에서 제공하는 데이터가 확장자명이 MDF, LDF 파일이였다. 해당 파일은, Microsoft의 SQL인 MSSQL에서 사용되는 확장자이다. 그래서, 해당 파일을 열기 위해 MSSQL을 설치하고 이를 외부(Python 또는 HeidiSQL)에서 접근 하는 방법을 정리하였다. 해당 과정에서, 발로란트라는 게임을 하기 위해서 가상화 기...
메모리 동적 할당을 이용한 안드로이드 커널 패닉 유도
개요 안드로이드 운영체제에서 네이티브로 동작하는 프로그램을 개발해야한 상황이였다. 이때, 네이티브하게 동작한다는 것은 어플리케이션을 실행하는 것이 아닌, 실행 바이너리를 ADB 로 실행하는 것을 의미한다. 여기서 이게 가능한가..? 라는 의문이 든다면 리눅스의 구조와 커널 구조에 대해서 이해가 더 필요하다. 간단하게 깨달음을 준다면 우분투에서 프로...
자동 근태 확인을 위한 자동화 시스템 구축
개요 교수님의 회사에서 인턴을 수행하면서, 첫 번째의 업무가 연구과제에 참여중인 학생을 인솔하여 프로젝트를 완수하는 것이였다. 업무 중에서 온라인 오픈 마켓을 구현하기 위해, 그리고 빠른 개발을 하기 위해서 새로이 개발하는 것이 아닌, 이미 어느정도 완료가 된 솔루션을 구매하여 추가적인 기능을 만드는것으로 진행하였다. 처음에는 연구생이 직접 쇼핑몰...
정교한 충돌 검사를 위한 Unreal Engine 엔진 커스텀
개요 개발 환경에 앞서, 환경은 4.27.2 에서 진행하였고, 운영체제는 Windows 10이며, IDE는 Visual Studio 2022, SDK는 Windows 10 SDK(버전 10.0.18362.0) 로 진행하였다. 언리얼 엔진과 유니티 엔진은 주로 사용되는 게임 엔진 중 하나이다. 그 중, 유니티 엔진은 내부 소스코드가 공개가 되어 있지...
안드로이드와 라즈베리파이에서 텐서플로우 연산 과정
개요 흥미를 끌기 위해 안드로이드와 라즈베리파이란 단어를 사용하게 되었다. 우선적으로 모든 하드웨어에 대응하고 구현하는 것은 매우 어렵다. 그렇기에 확장 가능하고 유연한 라이브러리로 구성되어 있다. 따라서 Tensorflow는 기본적으로 X86 CPU나 CUDA와 같은 중요하고 기본적인 기능만 구현한 뒤, 나머지 기능은 모두 써드파티 라이브러리에게...
Exten Server, C# 클라우드를 서버처럼 이용하기
주의! 레거시 해당 글은 이전에 작성한 블로그 내용을 마이그레이션한 내용 입니다. 작성된 날짜: 2018년 7월 18일 https://blog.naver.com/aoikazto/221321797235 내용 제가 진행하던 클라우드 통합 프로그램 이름 Exten Drive를 개발 하던 도중에 새로운 목적으로 클라우드를 서버처럼 이용을 하면 어떻...
안드로이드/JVM의 중간 언어(Byte Code)로 인한 취약점을 이용한 공격
개요 JAVA는 C/C++ 계열의 컴파일 언어와 다르게, 중간 언어(Java의 경우 Byte Code)로 컴파일이 된 후, JVM(Java Virtual Machine)에서 실시간으로 기계어로 실행이 되는 구조이다. 특히 JVM에서 실행 되기전 언어인 Byte Code는 기계어로 변환이 되기 전 언어 이므로, Byte Code를 Java나 Kotli...