Skip to content

reverse engineering for lua(lua/luac/luajit/lua_dec/lua_loader/lua_proc)

License

Notifications You must be signed in to change notification settings

feicong/re-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

安全研究员的macOS配置完全指南

Apple M4 Pro为演示配置的环境,收到机器后,开机然后开始设置。

环境准备

首先,打开App Store下载安装Xcode。

启动Xcode,安装好命令行工具。或者终端执行xcode-select --install也行。

终端执行sudo spctl --master-disable来开启第三方或ad-hoc签名的程序运行。

接下来,安装HomeBrew。下载地址需要代理一下,执行如下命令安装:

/bin/bash -c "$(curl -fsSL https://ghp.ci/https://github.com/Homebrew/install/raw/master/install.sh)"

下载软件可能有时候不能成功,执行如下命令设置一下代理。

echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"' >> ~/.zprofile
echo 'export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"' >> ~/.zprofile
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"

常用的命令行工具与库

下面这些工具与库建议都安装一下。

通过brew安装

brew install graphviz libsoup pkg-config grep libsoup@2 plantuml apktool gstreamer libssh2 poetry aria2 \
    gtk+3 libtasn1 poppler gtk4 libtiff protobuf libtool psutils autoconf harfbuzz libunibreak pup automake \
    helm libunistring awscli help2man libusb pycparser bash libusbmuxd pygobject3 bash-completion libusrsctp \
    bc binutils imagemagick bison python@3.11 libx11 brotli jadx qemu ca-certificates jpeg-turbo libxext qt \
    quickjs capstone jq json-glib readline jsoncpp rename jsonrpc-glib libyaml repo lima reprepro colima \
    coreutils llvm ruby cryptography libarchive llvm@18 scrcpy curl lua sdl2 lz4 shared-mime-info dbus lzip simg2img \
    dbus-glib smali docker-completion make dtc dwarf mbedtls dwarfutils libedit sqlite libelf meson libevent \
    mitmproxy ffmpeg libffi file-formula libgcrypt flac libgee mpg123 tcpdump flex tesseract fontconfig ncurses \
    tesseract-lang freetype texinfo libimobiledevice ninja gawk libimobiledevice-glue node npm tree gcc u-boot-tools \
    gdbm libmagic nspr ucl gettext gh unifdef libnghttp2 nvm unzip libnghttp3 vala libnice vala-language-server git \
    glib openjdk vim glib-networking openjdk webp libpcap openjpeg wget gnu-sed libplist openssl@1.1 gnupg \
    libpng openssl@3 x264 gnutls libpsl x265 go gobject-introspection pango xz googletest pcre2 youtube-dl gost perl \
    yt-dlp gperf z3 libslirp gradle pipx zip libsodium zstd p7zip jtool2 ios-deploy binwalk upx

graphvizplantuml画图必备。

apktoolsmali反编译APK要用到。

aria2wgetcurl下载软件用到。

gogo-ios是golang与ios开发必备。

yt-dlpyoutube-dl是下载youtube视频的命令行工具。

llvmgcc编译器套件用于软件开发。

limacolima采用命令行方法管理虚拟机。

pythonnode等是运行大量第三方软件的基础环境。

scrcpy用于安卓设备投屏。

tesseract用于OCR识别。

ffmpeg用于视频编解与转码,这一个就够了。

其中,还有大量的库是这些软件用到的依赖,还有一些是开发vala程序用到的,这里不一一介绍了。

配置

一些软件需要配置登陆与设置代理。

gh

这个是github官方的命令行工具,管理仓库贼方便。登陆后就可以使用了。

gh auth login

pip

设置pip的mirror。

export HOMEBREW_PIP_INDEX_URL="https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

npm

设置npm的mirror。

npm config set registry https://registry.npmmirror.com

安装一些npm工具。

npm install -g go-ios frida

bito

虽然有vscode插件版本。但使用命令行版本显示更炫酷。

brew tap gitbito/bitocli
brew install bito-cli

执行命令登陆一下,当然需要先注册一个号,每天免费20次提问。

bito

alias与bash函数

弄别名与bash函数可以加速处理命令行操作。

cc() {
    git rev-list --count $1
}

rebase() {
    git rebase -i HEAD~$1 && git push -f
}

status() {
    git status
}

log() {
    git log
}

push() {
    git add --all && git commit -m "$1" && git push
}

# squash 4 "update"
squash() {
    git reset --soft HEAD~$1 && git add --all && git commit -m "$2." && git push -f
}

touchm() {
    find $1 -type f -exec touch -m {} \;
}


# rmall ~/ ".DS_Store"
rmall() {
    find $1 -name $2 -exec rm {} \;
}

rmdsstore() {
    find . -name ".DS_Store" -exec rm {} \;
}

# renameext jpg zip
renameext() {
    rename "s/$1/$2/" *
}

cls() {
    /usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down'
}

# xattrd ~/Downloads/1.app
xattrd() {
    /usr/bin/xattr -r -d com.apple.quarantine $1
    # or
    /usr/bin/xattr -c $1
}

# random 32
random() {
    echo $RANDOM | md5sum | head -c $1; echo;
}

xattrd() {
    if [[ -z $1 ]]; then
        echo xattrd path
        return
    fi
    xattr -r -d com.apple.quarantine "$1"
}

alias clean=cls

alias clear="printf '\33c\e[3J'"

alias ll="ls -al"

alias simlog="tail -f ~/Library/Logs/CoreSimulator/*/system.log"

常用的GUI工具

首先是常用的IDE,根据个人开发需要安装。brew install android-studio pycharm clion goland

JB系列有免费社区版本的,专业版本收费可以弄开源项目申请免费使用,可以用一年。也可以其它渠道购买或和谐。有条件建议购买,生产力工具真的好用。

通过brew安装

brew install --cask cmake wireshark charles 1password disk-drill windows-app adoptopenjdk displays mitmproxy orbstack obs \
    flutter oracle-jdk usbimager flux utm balenaetcher fuse-t phantomjs vienna beyond-compare visual-studio-code \
    ghidra raspberry-pi-imager github vnc-viewer hiddenbar crescendo iina cryptomator itraffic tabby termius \
    microsoft-office google-chrome xmind localsend 010-editor wechat qq telegram bilibili showyedge angry-ip-scanner \
    iterm2 snip sentinel battery microsoft-auto-update viz pearcleaner pdf-expert hex-fiend vmware-fusion raycast \
    ios-app-signer motrix listen1 bit-slicer

wiresharkcharlesmitmproxy是抓包必备的。

1password是最好用的密码管理软件。

disk-drill是不错的磁盘管理工具。

windows-app是微软件出品的3389远程连接软件,免费好用,基本杀死了苹果官方出品的同类收费软件。

displays是桌面分辨率管理软件。

orbstack是Docker与虚拟机一体的免费软件,必装。

obs是开源的录屏与推流软件,最好用,没有之一。

usbimagerbalenaetcherraspberry-pi-imager这三个是烧硬盘镜像的工具,我一般用中间这个。

flux是护眼神器,自动根据时间与时区调整显示器亮度与色温。

vienna是免费的RSS订阅器,我每天用它来看博客与技术仓库更新。

beyond-compare010-editor是文件编辑与比较的利器。

visual-studio-code是每天必用的编辑器,也可以说是IDE了,微软出品的全球开发人员都喜爱的工具。

ghidra是开源的反编译工具,用于替换商业软件IDA Pro,但目前无法动摇其地位。

github是官方的仓库代码管理工具,也怪好用的。vnc-viewer是VNC远程连接工具,有总比没有强。

hiddenbar是用于管理状态栏的图标们的显示与隐藏,免费的用起来也还可以。

crescendo是一个内核扩展,用于行为与网络分析,安全分析人员利器。

iina是开源的最好用的视频播放器,没有之一。

cryptomator是一个加密工具,管理小秘密必备。

itraffic看本机进程的流量,抓偸传流量的软件,恶意上传一目了然。

tabbytermius是一个开源免费一个收费的终端工具,也都不错,还有个免费的iterm2我也很喜欢。

microsoft-office是办公套件,微软出品,全球人都在用。

google-chrome是谷歌的chrome浏览器,也是天天要用的。

xmind画图工具算是国光了。

localsend跨平台传文件,我全靠它。

wechatqq不用说。

telegram是全球最好用的IM。

bilibili是二次元的天堂。

showyedge对于来说必不可少,它把输入法不同的状态在状态栏用不同颜色的一条线显示,让我知道当前用的是什么输入法,不用梗着脖子看右上角状态栏。

angry-ip-scanner用于扫描本地网络IP与设备信息,设备多的网络环境必不可少。

snip免费的截图工具,好用。

sentinel对于苹果用户也是必不可少的,经常下载的第三方工具没签名或者ADHOC签名,提示损坏删除,用这个工具抹抹文件的附加信息就可以了。

battery是免费的电池管理软件,苹果的电池老金贵了,用它观察准没错。

viz是开源的截图与屏幕二维码扫描工具,比snip还好用的样子。

pearcleaner是开源的软件卸载管理软件。

pdf-expert是看PDF必备的。

hex-fiend是免费的十六进制编辑工具。

utmvmware-fusion都是个人免费使用的虚拟机软件,但我现在用orbstack了。

raycast用于替代官方的聚焦搜索,怪好用的。

ios-app-signer是IPA签名工具,只是自己买证书,真的贵。

motrix是开源的下载软件,我这里就不推荐迅雷了。

listen1是免费的跨平台音乐播放器的,搜歌与听歌于一体,我就不推荐国内的音乐播放器了。

bit-slicer是搜内存的工具,懂的都懂。

配置

一些常用工具还需要额外的配置一下。

vscode配置

使用下面的命令安装插件。

code --install-extension asabil.meson

下面是我安装好的插件。

code --list-extensions
aaron-bond.better-comments
asabil.meson
atlassian.atlascode
bierner.markdown-mermaid
bito.bito
bpfdeploy.bpftrace
bpruitt-goddard.mermaid-markdown-syntax-highlighting
codeium.codeium
codezombiech.gitignore
cornell3110sp20.rml-highlighter
davidanson.vscode-markdownlint
dbaeumer.vscode-eslint
dotjoshjohnson.xml
eamodio.gitlens
eriklynd.json-tools
formulahendry.code-runner
foxundermoon.shell-format
genieai.chatgpt-vscode
github.codespaces
github.copilot
github.copilot-chat
github.github-vscode-theme
github.remotehub
github.vscode-github-actions
github.vscode-pull-request-github
gitpod.gitpod-desktop
golang.go
google.aidl-language
googlecloudtools.cloudcode
gruntfuggly.todo-tree
jebbs.plantuml
jeff-hykin.better-cpp-syntax
jock.svg
josephcz.vscode-markdown-mindmap-preview
josetr.cmake-language-support-vscode
jrieken.md-navigate
llvm-vs-code-extensions.vscode-clangd
mesonbuild.mesonbuild
ms-azuretools.vscode-docker
ms-ceintl.vscode-language-pack-zh-hans
ms-dotnettools.csharp
ms-dotnettools.vscode-dotnet-runtime
ms-kubernetes-tools.vscode-kubernetes-tools
ms-mssql.data-workspace-vscode
ms-mssql.mssql
ms-mssql.sql-bindings-vscode
ms-mssql.sql-database-projects-vscode
ms-python.autopep8
ms-python.debugpy
ms-python.isort
ms-python.python
ms-python.vscode-pylance
ms-vscode-remote.remote-containers
ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-ssh-edit
ms-vscode-remote.remote-wsl
ms-vscode-remote.vscode-remote-extensionpack
ms-vscode.azure-repos
ms-vscode.cmake-tools
ms-vscode.cpptools
ms-vscode.cpptools-extension-pack
ms-vscode.cpptools-themes
ms-vscode.hexeditor
ms-vscode.makefile-tools
ms-vscode.powershell
ms-vscode.remote-explorer
ms-vscode.remote-repositories
ms-vscode.remote-server
ms-vscode.vscode-typescript-next
msjsdiag.vscode-react-native
nicohlr.pycharm
osstekz.vala-code
prince781.vala
redhat.java
redhat.vscode-commons
redhat.vscode-xml
redhat.vscode-yaml
rogalmic.bash-debug
shakram02.bash-beautify
souche.vscode-mindmap
twxs.cmake
vadimcn.vscode-lldb
visualstudioexptteam.intellicode-api-usage-examples
visualstudioexptteam.vscodeintellicode
vscjava.vscode-gradle
vscjava.vscode-java-debug
vscjava.vscode-java-dependency
vscjava.vscode-java-pack
vscjava.vscode-java-test
vscjava.vscode-maven
vscode-icons-team.vscode-icons
webfreak.debug
xaver.clang-format
yzane.markdown-pdf
zainchen.json

orbstack配置

启动orbstack一次。然后命令行配置它。

orb config docker
{
"registry-mirrors": [
    "https://docker.m.daocloud.io", 
    "https://hub.dftianyi.top",
    "https://noohub.ru", 
    "https://huecker.io",
    "https://dockerhub.timeweb.cloud",
    "https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
    "https://5tqw56kt.mirror.aliyuncs.com",
    "https://docker.1panel.live",
    "http://mirrors.ustc.edu.cn/",
    "http://mirror.azure.cn/",
    "https://hub.rat.dev/",
    "https://docker.ckyl.me/",
    "https://docker.chenby.cn",
    "https://docker.hpcloud.cloud",
    "https://docker.m.daocloud.io"
  ]
}

安装一个arm64版本的Ubuntu系统日常使用。

orb create ubuntu:jammy ubuntu

安装一个x86_64版本的Ubuntu系统解决一些x86_64使用场景。

softwareupdate --install-rosetta --agree-to-license
orb create --arch amd64 ubuntu:jammy ubuntu64

Chrome设置

主要是扩展程序。访问页面是:https://chromewebstore.google.com/detail/xxx xxx为扩展的ID。

我安装的一些扩展如下。

cfhdojbkjhnklbpkdaibdccddilifddb
anlikcnbgdeidpacdbdljnabclhahhmd
dodmmooeoklaejobgleioelladacbeki
ghbmnnjooekpmoecnnnilnnbdlolhkhi
mclkkofklkfljcocdinagocijmpgbhab
cpcifbdmkopohnnofedkjghjiclmhdah
legbfeljfbjgfifnkmpoajgpgejojooj
padekgcemlokbadohgkifijomclgjgif
kpdjmbiefanbdgnkcikhllpmjnnllbbc
lieodnapokbjkkdkhdljlllmgkmdokcm
ikhdkkncnoglghljlkmcimlnlhkeamad
bciglihaegkdhoogebcdblfhppoilclp
bpoadfkcbjbfhfodiogcnhhhpibjhbnh
dhdgffkkebhmkfjojejmpbldmpobfkfo

科学软件

比较常用的有ClashX Proclash-for-windows。后者更好用一些,这里就不展开。

收费软件

根据个人使用习惯,还有一些收费的软件是要使用到的。比如CleanMyMac XParallels DesktopIDA ProTyporaBeyond Compareparagon-extfsparagon-ntfs010-editor。它们多可以通过brew来安装,IDA Pro除外,安装好后可以试用或购买。

Parallels Desktop就是一年一订真的贵,看自己的需要了。

这是说一下Office,微软对“免费”使用目前查得并不严格,brew安装的版本,可以使用网上的2021 VL license无限制使用。使用microsoft-auto-update可以完美的升级更新,有条件还是建议购买正版,好用省事。

参考

https://brew.sh/

https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/

https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

https://code.visualstudio.com/docs/editor/extension-marketplace

https://docs.orbstack.dev/machines/

https://www.sweetscape.com/download/010editor/

https://www.paragon-software.com/

https://developer.chrome.com/docs/extensions/how-to/distribute/install-extensions?hl=zh-cn

https://github.com/gitbito/CLI

https://github.com/pypa/pipx

Lua程序逆向分析

Lua程序逆向之为Luac编写IDA Pro文件加载器

Lua程序逆向之为Luac编写IDA Pro处理器模块

About

reverse engineering for lua(lua/luac/luajit/lua_dec/lua_loader/lua_proc)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages