반응형
반응형

Android에서 Localhost를 이용한 은밀한 웹-앱 트래킹 기법 공개 (localmess.github.io)

 

https://localmess.github.io/

 

Covert Web-to-App Tracking via Localhost on Android

Disclosure: Covert Web-to-App Tracking via Localhost on Android 📢 UPDATE: As of June 3rd 7:45 CEST, Meta/Facebook Pixel script is no longer sending any packets or requests to localhost. The code responsible for sending the _fbp cookie has been almost co

localmess.github.io

  • Meta(페이스북), Yandex 등 주요 앱이 Android에서 로컬 포트(127.0.0.1)를 사용해 웹 브라우저와 네이티브 앱 간 식별자·쿠키를 비밀리에 공유한 사실이 공개됨
  • 웹사이트에 심어진 Facebook Pixel, Yandex Metrica 스크립트가 Android 브라우저에서 네이티브 앱(페이스북, 인스타그램, Yandex 계열 앱)으로 브라우징 세션과 식별자를 직접 전달, 사용자 식별  탈익명화가 가능해짐
  • 이 방식은 쿠키 삭제, 시크릿 모드, 권한 설정, 광고ID 리셋 등 기존 프라이버시 보호책을 모두 우회하며, 악성 앱이 포트만 맞춰 듣고 있으면 브라우저 방문 이력 수집도 가능함
  • 2025년 6월 3일 공개 이후 Facebook 측은 해당 코드를 대부분 제거했으나, 해당 기법이 수년간 전 세계 수억대 안드로이드 기기에서 이용됨. Yandex는 2017년부터 유사한 방식을 지속적으로 사용 중임
  • 크롬, 파이어폭스, 브레이브 등 주요 브라우저들은 긴급 차단 조치를 도입했지만, 플랫폼 구조적 한계로 완전한 근본 대책은 미흡, Android IPC와 로컬 네트워크 보안 강화 필요성이 강조됨
반응형
반응형

 

 

Unicode Character 'PARTY POPPER' (U+1F389)


https://www.fileformat.info/info/unicode/char/1f389/index.htm

 

Unicode Character 'PARTY POPPER' (U+1F389)

 

www.fileformat.info

 

반응형
반응형

[JQUERY] jquery 이용해서 페이지 내의 a 태그의 href 를 가져와라

 

$(document).ready(function() {
    // 모든 <a> 태그를 선택합니다.
    $('a').each(function() {
        // 현재 <a> 태그의 href 속성값을 가져옵니다.
        var hrefValue = $(this).attr('href');

        // 가져온 href 값을 콘솔에 출력하거나 다른 방식으로 활용할 수 있습니다.
        console.log("링크 URL: " + hrefValue);

        // 예시: 페이지에 표시
        $('body').append('<p>Link found: ' + hrefValue + '</p>');
    });
});
반응형
반응형

[python] List of running process using python

import psutil

def listProcesses():
    for proc in psutil.process_iter():
        try:
            pinfo = proc.as_dict(attrs=['pid', 'name'])
        except psutil.NoSuchProcess:
            pass
        else:
            print(pinfo)

반응형
반응형

[python] zimport - 수많은 python 패키지를 압축하여 관리 (github.com/waveware4ai)

 

python 패키지를 관리하다 보면 수많은 파일들이 부담스러울때 필요한 zimport 를 소개합니다.

소개

  • zimport는 Python의 표준 zipimport를 대체하고 개선한 도구입니다.
  • zimport는 zip-archives에서 Python 패키지를 로드하고 관리하는 데 사용됩니다. 즉, Java jar처럼 Python 패키지를 관리할 수 있습니다. 또한 동적 라이브러리(.dll, .pyd, .so) 로드도 지원합니다.
  • 이 도구를 만들고 저의 python 작업 디렉토리는 약 160gb, 수백만개 파일에서 80G 1만 개 수준으로 줄어 들었습니다.

주요기능

  • zip-archive에서 동적 라이브러리 로딩 지원(.pyd, .dll, .so, .dylib)
  • zip-archive에서 내부 read() 시에 Java의 getresource처럼 내부 파일(예: 환경 파일) 읽기 지원
  • 컴파일된 .pyc 파일 지원(name.cpython-version.pyc 및 pycache 폴더)

사용된기술

  • importlib, meta_path, path_hooks
  • function intercept (standard open, stat, read, ctypes.WinDLL, ctypes.CDLL 등)

사용환경

  • python win/linux/macosx 지원
  • python version 3.8~3.12 지원

사용방법

python -m pip install zimport
import zimport

  • lib/site-package 디렉토리에서 패키지를 한꺼번에 압축하고, sys.path 에 추가하기만 하면 정상적으로 작동합니다.
  • 물론, 시간의 여유가 되신다면 패키지별로 압축하여, java 의 jar 처럼 의존성에 따라서 패키지를 sys.path 에 추가해 주시면 됩니다.
  • 또한 한번 압축된 package 는 share 하여 쓸수 있기 때문에 하드디스크 공간의 낭비를 줄여줄수 있다고 생각합니다.

마지막으로

  • 소스는 github 에 공개하였으며 현재 버전은 0.1.4 입니다. 몇몇 package (예를들어 transformers) 아직 지원하지 안으며, torch, torchvision, numpy, pandas 와 같은 major 패키지는 이상없이 동작함을 확인하였습니다.

https://github.com/waveware4ai/zimport

  • 또한, portable python 과 아주 궁합이 잘맞습니다. 이것도 github 에 업로드 하였습니다. linux 버전은 직접 컴파일하였고, windows 버전은 embeded 를 개작하였습니다.

https://github.com/waveware4ai/PortablePython

  • 사용시 발생하는 버그나 문제점들은 리포팅해주시면 개선하도록 하겠습니다.

반응형
반응형

"개발자가 대체된다"는 유행은 왜 반복될까 ?

The Recurring Cycle of 'Developer Replacement' Hype

 

https://alonso.network/the-recurring-cycle-of-developer-replacement-hype/

 

 

  • NoCode부터 AI까지, 개발자를 대체하겠다는 기술은 반복적으로 등장하지만 실제로는 기술 변화에 따라 역할이 변형
  • NoCode는 개발자를 없애지 않고 NoCode 전문가와 통합 기술자를 탄생시켰고, 클라우드는 DevOps 엔지니어라는 고급 직군을 만들었음
  • 현재 AI 개발도구도 비슷한 길을 걷고 있으며, AI가 코드를 짜는 시대에도 시스템 아키텍처 설계 능력은 여전히 핵심임
  • AI는 로컬 최적화는 잘하지만 전체 시스템 설계에는 약하며, 빠른 생성 속도로 인해 구조적 실수를 빠르게 고착화할 위험이 있음
  • 개발자 대체는 결국 기술 스택 변화에 따른 진화와 고도화일 뿐, 본질적 역할은 계속 필요함

From NoCode to AI-Assisted

  • 몇 년 주기로, 소프트웨어 개발자를 대체할 것이라 주장하는 새로운 기술이 등장함
  • "코딩의 종말", "이제 누구나 앱을 만들 수 있음", "아이도 코딩한다" 등 과장된 기대가 포함된 유사한 제목들이 반복적으로 생성됨
  • 경영진과 컨설턴트들이 이 흐름에 주목하고, 예산이 이동하는 모습이 나타남
  • 하지만 현실은 항상 “대체”가 아니라 “변형”이었음
    • 복잡해진 기술을 다루는 새로운 역할 고도화된 전문직이 탄생하고, 임금 수준도 상승하는 경향이 반복적으로 드러남
  • NoCode는 전문 기술자 없이 앱을 만들 수 있다는 기대를 만들었지만, 결국 데이터 모델링, 통합, 유지보수 등 복잡한 문제가 존재했고 이를 해결할 새로운 직군이 탄생함
  • 클라우드는 시스템 관리자 없이 운영 가능하다는 믿음을 줬지만 실제로는 DevOps 엔지니어라는 고급 전문성을 요구하게 되고, 임금도 상승함
  • AI도 마찬가지로, “AI가 코드를 대신 작성”할 수 있을 것 같지만 실제로는 AI를 관리·오케스트레이션 할 수 있는 숙련 개발자의 중요성이 더욱 커짐

반복되는 대체 약속의 회전목마(The Endless Carousel of Replacement Promises)

NoCode/LowCode 혁신

  • 직관적인 인터페이스로 모든 사용자가 앱을 만들 수 있다는 NoCode/LowCode 혁신이 등장
  • 하지만 실제 현장에서는 데이터 모델 설계, 기존 시스템과 데이터베이스 통합, 예외 처리, 유지 관리 등 신규 문제가 발생함
  • 이에 따라 단순 개발자가 아닌, 도메인 지식과 기술적 한계를 동시에 이해하는 NoCode 전문가가 필요해짐
  • 이들은 기존 개발자보다 더 높은 연봉을 받음

클라우드 혁명

  • 클라우드로 이전하면 시스템 관리자가 필요 없어질 거라는 기대가 컸음
  • 하지만 클라우드 관리 전문성 복잡성이 오히려 증가함
  • 기존 시스템 관리자는 DevOps 엔지니어로 변신하여 더 높은 급여를 받고, 인프라 자동화, 배포 파이프라인, 분산 시스템 관리 등 업무 수준이 고도화됨
  • 업무는 사라진 것이 아니라, 새로운 작업 형태로 진화함
  • 마이크로서비스 전환에서도 복잡성이 커지고, 결국 근본적으로 시스템을 관리하는 전문가의 역할이 중요함이 드러났음

오프쇼어(Offshore) 개발 바람

  • 해외 아웃소싱으로 비용을 절감할 수 있다는 믿음이 생겨났지만, 커뮤니케이션 문제, 품질 저하, 도메인 지식 부족으로 어려움 발생
  • 결국 분산 팀 구조조, 명확한 소유권, 강력한 아키텍처 등으로 전략이 변화하며, 초기 기대했던 것보다 전체 비용이 증가하는 결과를 낳음

AI 코딩 어시스턴트 혁명

  • 이제는 AI가 코드를 자동으로 생성한다는 약속이 화두임
  • 초기 현실에서는, AI가 만들어주는 코드는 종종 미묘한 오류와 일관성 문제를 내포함
  • 시니어 엔지니어가 AI 결과를 검토·수정하는 데 많은 시간을 쓰며, 경험 있는 개발자일수록 훨씬 더 많은 가치를 창출함
  • AI 보조만으로 구축된 시스템은 체계적인 아키텍처가 부재한 경우가 많음
  • 즉, 기술이 기술자를 대체하는 것이 아니라, 더 높은 추상화 계층으로 기술자의 전문성을 끌어올리는 것임

이번 사이클이 특별한 이유

  • 사람들이 간과하는 핵심: 코드는 자산이 아니라 부채
  • 빠르고 쉽게 코드를 만들수록, 유지보수와 보안, 리팩터링의 부담도 커짐
  • AI는 함수 단위 최적화는 가능하지만 전체 시스템 설계 능력은 부족
  • 구현 속도가 빨라질수록 구조적 실수를 빠르게 고착화할 위험 존재
  • 결국, AI 시대에도 진정한 자산은 시스템 아키텍처 설계 능력이며, 이는 대체가 아닌 강화의 대상
  • "AI가 개발자를 대체한다"는 주장은 다음의 근본적 오해에서 비롯됨
    • 코드는 자산이 아니라 부채라는 사실
    • 코드는 지속적인 유지·검증·보안 관리·교체가 필요하며, 그 라인 수만큼 부채가 증가함
  • AI가 코드를 빠르게 만들어준다는 것은, 부채를 그만큼 빠르게 발생시킨다는 것에 불과함
  • 즉, AI는 로컬 최적화(함수, 부분 기능)는 잘하지만, 글로벌 설계·아키텍처 결정은 부족함
  • 구현 속도가 빨라질수록, 잘못된 설계가 시스템 전체에 '굳어지는' 위험성이 커짐
  • 일회성 단기 사이트 제작에는 문제가 없으나, 장기적으로 발전하는 시스템에는 치명적임
  • 기술 혁신의 패턴은 변함없이 유지됨
    • 시스템 관리자는 DevOps 엔지니어가 되고, 백엔드 개발자는 클라우드 아키텍트가 됨
  • 하지만 AI는 모든 것을 가속화함. 살아남고 발전하는 기술은 코드 작성이 아님
  • 그것은 바로 시스템을 설계하는 것(Architecting systems). AI가 할 수 없는 유일한 일이 바로 그것임

 

 

반응형

+ Recent posts