Skip to content

A project to help understand how linkers and Wine work.

Notifications You must be signed in to change notification settings

Sharpiro/tiny-wine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4b27a0e · Feb 14, 2025
Feb 4, 2025
Feb 4, 2025
Feb 3, 2025
Aug 11, 2024
Jan 12, 2025
Jan 9, 2025
Jan 10, 2025
Feb 4, 2025
Nov 25, 2024
Feb 14, 2025
Jan 11, 2025
Jan 11, 2025
Jan 24, 2025

Repository files navigation

Tiny Wine

A basic dynamic loader for Linux and Windows.

Limitations

  • No standard libraries

Prerequisites

All examples use Docker for compatibility, but should work on Linux machines with the necessary packages. See Dockerfile for necessary packages.

git clone https://github.com/Sharpiro/tiny-wine.git
cd tiny-wine
docker build -t tinywine $PWD

Building

docker run --rm -v $PWD:/root/tiny_wine tinywine make

Running Linux loader

docker run --rm -v $PWD:/root/tiny_wine tinywine ./loader ./tinyfetch

Example Output

root@3db29f0a588e
--------------
OS: Ubuntu 22.04.4 LTS armv7l
Kernel: 6.10.5-100.fc39.x86_64
Uptime: Uptime: 32 days, 21 hours, 29 minutes
Shell: /bin/bash

Running Windows loader

docker run --rm -v $PWD:/root/tiny_wine tinywine ./winloader ./windynamic.exe

Tests

docker run --rm -v $PWD:/root/tiny_wine tinywine ./test.sh

Tools

Miscellaneous tools that assist with debugging dynamic loaders.

Readwin

Tool for reading the Windows PE format.

docker run --rm -v $PWD:/root/tiny_wine tinywine ./readwin ./windynamic.exe

Contributing

This repo is currently experimental and thus not taking contributions at this time.

About

A project to help understand how linkers and Wine work.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages