mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	Translated ['src/todo/hardware-hacking/side_channel_analysis.md', 'src/w
This commit is contained in:
		
							parent
							
								
									9f6c672429
								
							
						
					
					
						commit
						5a704c4eaf
					
				
							
								
								
									
										119
									
								
								.github/workflows/translate_af.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_af.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to AF (Afrikaans) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: af | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Afrikaans | ||||
|       BRANCH: af | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_de.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_de.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to DE (German) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: de | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: German | ||||
|       BRANCH: de | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_el.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_el.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to EL (Greek) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: el | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Greek | ||||
|       BRANCH: el | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_es.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_es.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to ES (Spanish) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: es | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Spanish | ||||
|       BRANCH: es | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_fr.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_fr.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to FR (French) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: fr | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: French | ||||
|       BRANCH: fr | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_it.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_it.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to IT (Italian) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: it | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Italian | ||||
|       BRANCH: it | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_ja.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_ja.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to JA (Japanese) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: ja | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Japanese | ||||
|       BRANCH: ja | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_ko.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_ko.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to KO (Korean) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: ko | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Korean | ||||
|       BRANCH: ko | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_pl.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_pl.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to PL (Polish) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: pl | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Polish | ||||
|       BRANCH: pl | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_pt.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_pt.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to PT (Portuguese) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: pt | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Portuguese | ||||
|       BRANCH: pt | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_sr.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_sr.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to SR (Serbian) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: sr | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Serbian | ||||
|       BRANCH: sr | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_sw.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_sw.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to SW (Swahili) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: sw | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Swahili | ||||
|       BRANCH: sw | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_tr.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_tr.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to TR (Turkish) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: tr | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Turkish | ||||
|       BRANCH: tr | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_uk.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_uk.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to UK (Ukranian) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: uk | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Ukranian | ||||
|       BRANCH: uk | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
							
								
								
									
										119
									
								
								.github/workflows/translate_zh.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/translate_zh.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,119 +0,0 @@ | ||||
| name: Translator to ZH (Chinese) | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - master | ||||
|     paths-ignore: | ||||
|       - 'scripts/**' | ||||
|       - '.gitignore' | ||||
|       - '.github/**' | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| concurrency: zh | ||||
| 
 | ||||
| permissions: | ||||
|   id-token: write | ||||
|   contents: write | ||||
| 
 | ||||
| jobs: | ||||
|   run-translation: | ||||
|     runs-on: ubuntu-latest | ||||
|     environment: prod | ||||
|     env: | ||||
|       LANGUAGE: Chinese | ||||
|       BRANCH: zh | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 #Needed to download everything to be able to access the master & language branches | ||||
| 
 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v2 | ||||
|         with: | ||||
|           python-version: 3.12 | ||||
| 
 | ||||
|       - name: Install python dependencies | ||||
|         run: | | ||||
|           python -m pip install --upgrade pip | ||||
|           pip3 install openai tqdm tiktoken | ||||
|        | ||||
|       # Install Rust and Cargo | ||||
|       - name: Install Rust and Cargo | ||||
|         uses: actions-rs/toolchain@v1 | ||||
|         with: | ||||
|           toolchain: stable | ||||
|           override: true | ||||
|        | ||||
|       # Install mdBook and Plugins | ||||
|       - name: Install mdBook and Plugins | ||||
|         run: | | ||||
|           cargo install mdbook | ||||
|           cargo install mdbook-alerts | ||||
|           cargo install mdbook-reading-time | ||||
|           cargo install mdbook-pagetoc | ||||
|           cargo install mdbook-tabs | ||||
|           cargo install mdbook-codename | ||||
| 
 | ||||
|        | ||||
|       - name: Update & install wget & translator.py | ||||
|         run: | | ||||
|           sudo apt-get update | ||||
|           sudo apt-get install wget -y | ||||
|           mkdir scripts | ||||
|           cd scripts | ||||
|           wget https://raw.githubusercontent.com/carlospolop/hacktricks-cloud/master/scripts/translator.py | ||||
|           cd .. | ||||
| 
 | ||||
|       - name: Download language branch #Make sure we have last version | ||||
|         run: | | ||||
|           git config --global user.name 'Translator' | ||||
|           git config --global user.email 'github-actions@github.com' | ||||
|           git checkout "$BRANCH" | ||||
|           git pull | ||||
|           git checkout master | ||||
|        | ||||
|       - name: Run translation script on changed files | ||||
|         run: | | ||||
|           echo "Starting translations" | ||||
|           echo "Commit: $GITHUB_SHA" | ||||
| 
 | ||||
|           # Export the OpenAI API key as an environment variable | ||||
|           export OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }} | ||||
| 
 | ||||
|           # Run the translation script on each changed file | ||||
|           git diff --name-only HEAD~1 | grep -v "SUMMARY.md" | while read -r file; do | ||||
|             if echo "$file" | grep -qE '\.md$'; then | ||||
|               echo -n "$file , " >> /tmp/file_paths.txt | ||||
|             else | ||||
|               echo "Skipping $file" | ||||
|             fi | ||||
|           done | ||||
| 
 | ||||
|           echo "Translating $(cat /tmp/file_paths.txt)" | ||||
|           python scripts/translator.py --language "$LANGUAGE" --branch "$BRANCH" --api-key "$OPENAI_API_KEY" -f "$(cat /tmp/file_paths.txt)" -t 3 | ||||
| 
 | ||||
|       # Push changes to the repository | ||||
|       - name: Commit and push changes | ||||
|         run: | | ||||
|           git checkout "$BRANCH" | ||||
|           git add -A | ||||
|           git commit -m "Translated $BRANCH files" || true | ||||
|           git push --set-upstream origin "$BRANCH" | ||||
| 
 | ||||
|       # Build the mdBook | ||||
|       - name: Build mdBook | ||||
|         run: mdbook build | ||||
|        | ||||
|       # Login in AWs | ||||
|       - name: Configure AWS credentials using OIDC | ||||
|         uses: aws-actions/configure-aws-credentials@v3 | ||||
|         with: | ||||
|           role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | ||||
|           aws-region: us-east-1 | ||||
|        | ||||
|       # Sync the build to S3 | ||||
|       - name: Sync to S3 | ||||
|         run: aws s3 sync ./book s3://hacktricks-wiki/$BRANCH --delete | ||||
| @ -2,7 +2,7 @@ | ||||
| 
 | ||||
| {{#include ../../banners/hacktricks-training.md}} | ||||
| 
 | ||||
| Napadi sporednih kanala otkrivaju tajne posmatranjem fizičkog ili mikro-arhitektonskog "curenja" koje je *korelirano* sa unutrašnjim stanjem, ali *nije* deo logičkog interfejsa uređaja.  Primeri se kreću od merenja trenutne struje koju povlači pametna kartica do zloupotrebe efekata upravljanja snagom CPU-a preko mreže. | ||||
| Napadi sporednih kanala otkrivaju tajne posmatranjem fizičkog ili mikro-arhitektonskog "curenja" koje je *korelirano* sa unutrašnjim stanjem, ali *nije* deo logičkog interfejsa uređaja. Primeri se kreću od merenja trenutne potrošnje struje pametne kartice do zloupotrebe efekata upravljanja snagom CPU-a preko mreže. | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| @ -12,7 +12,7 @@ Napadi sporednih kanala otkrivaju tajne posmatranjem fizičkog ili mikro-arhitek | ||||
| |-------|--------------|-----------------| | ||||
| | Potrošnja energije | Pametne kartice, IoT MCU, FPGA | Osciloskop + shunt otpornik/HS sonda (npr. CW503) | | ||||
| | Elektromagnetno polje (EM) | CPU, RFID, AES akceleratori | H-poljska sonda + LNA, ChipWhisperer/RTL-SDR | | ||||
| | Vreme izvršenja / kešovi | Desktop i cloud CPU | Tajmeri visoke preciznosti (rdtsc/rdtscp), daljinsko merenje vremena | | ||||
| | Vreme izvršenja / kešovi | Desktop i cloud CPU | Tajmeri visoke preciznosti (rdtsc/rdtscp), daljinsko merenje vremena leta | | ||||
| | Akustični / mehanički | Tastature, 3-D štampači, releji | MEMS mikrofon, laserski vibrometar | | ||||
| | Optički i termalni | LED, laserski štampači, DRAM | Fotodioda / kamera visoke brzine, IR kamera | | ||||
| | Greške izazvane | ASIC/MCU kriptos | Greška u satu/napajanju, EMFI, laserska injekcija | | ||||
| @ -34,7 +34,7 @@ cw.capture.init() | ||||
| trace = cw.capture.capture_trace() | ||||
| print(trace.wave)  # numpy array of power samples | ||||
| ``` | ||||
| ### Diferencijalna/Korelaciona Analiza Snage (DPA/CPA) | ||||
| ### Differential/Correlation Power Analysis (DPA/CPA) | ||||
| Prikupite *N > 1 000* tragova, postavite hipotezu o bajtu ključa `k`, izračunajte HW/HD model i korelirajte sa leak-om. | ||||
| ```python | ||||
| import numpy as np | ||||
| @ -45,25 +45,21 @@ CPA ostaje na vrhuncu, ali varijante mašinskog učenja (MLA, duboko učenje SCA | ||||
| --- | ||||
| 
 | ||||
| ## Elektromagnetna analiza (EMA) | ||||
| Probes za blisko polje EM (500 MHz–3 GHz) otkrivaju identične informacije kao analiza snage *bez* umetanja shunt-ova. Istraživanje iz 2024. godine pokazalo je oporavak ključeva na **>10 cm** od STM32 koristeći spektralnu korelaciju i niskobudžetne RTL-SDR prednje strane. | ||||
| Probes EM u blizini (500 MHz–3 GHz) otkrivaju identične informacije kao analiza snage *bez* umetanja shuntova. Istraživanje iz 2024. godine pokazalo je oporavak ključeva na **>10 cm** od STM32 koristeći spektralnu korelaciju i niskobudžetne RTL-SDR prednje strane. | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## Napadi na vreme i mikroarhitekturu | ||||
| ## Napadi na vreme i mikro-arhitekturu | ||||
| Savremeni CPU-ovi otkrivaju tajne kroz deljene resurse: | ||||
| * **Hertzbleed (2022)** – DVFS skaliranje frekvencije korelira sa Hammingovom težinom, omogućavajući *daljinsko* vađenje EdDSA ključeva. | ||||
| * **Downfall / Gather Data Sampling (Intel, 2023)** – prolazno izvršenje za čitanje AVX-gather podataka preko SMT niti. | ||||
| * **Zenbleed (AMD, 2023) & Inception (AMD, 2023)** – spekulativna pogrešna predikcija vektora otkriva registre između domena. | ||||
| 
 | ||||
| Za široko razmatranje Spectre-klasnih problema vidi {{#ref}} | ||||
| ../../cpu-microarchitecture/microarchitectural-attacks.md | ||||
| {{#endref}} | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## Akustički i optički napadi | ||||
| ## Akustični i optički napadi | ||||
| * 2024. "iLeakKeys" pokazao je 95 % tačnosti u oporavku otkucaja na laptopu sa **mikrofona pametnog telefona preko Zoom-a** koristeći CNN klasifikator. | ||||
| * Brzi fotodiodi hvataju DDR4 aktivnost LED i rekonstruišu AES runde ključeve za manje od 1 minuta (BlackHat 2023). | ||||
| * Brzi fotodiodi hvataju DDR4 aktivnost LED i rekonstruišu AES runde ključeva za manje od 1 minuta (BlackHat 2023). | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| @ -75,10 +71,10 @@ Kombinovanje grešaka sa curenjem iz bočnih kanala skraćuje pretragu ključeva | ||||
| --- | ||||
| 
 | ||||
| ## Tipičan radni tok napada | ||||
| 1. Identifikujte kanal curenja i tačku montiranja (VCC pin, dekoupling kapacitor, mesto bliskog polja). | ||||
| 1. Identifikujte kanal curenja i tačku montiranja (VCC pin, dekoupling kapacitor, mesto u blizini). | ||||
| 2. Umetnite okidač (GPIO ili na osnovu obrazaca). | ||||
| 3. Sakupite >1 k tragova sa pravilnim uzorkovanjem/filterima. | ||||
| 4. Predobradite (poravnanje, uklanjanje proseka, LP/HP filter, wavelet, PCA). | ||||
| 4. Pre-procesuirajte (poravnanje, uklanjanje srednje vrednosti, LP/HP filter, wavelet, PCA). | ||||
| 5. Statistički ili ML oporavak ključeva (CPA, MIA, DL-SCA). | ||||
| 6. Validirajte i iterirajte na odstupanjima. | ||||
| 
 | ||||
| @ -86,7 +82,7 @@ Kombinovanje grešaka sa curenjem iz bočnih kanala skraćuje pretragu ključeva | ||||
| 
 | ||||
| ## Odbrane i učvršćivanje | ||||
| * **Implementacije konstantnog vremena** i algoritmi otporni na memoriju. | ||||
| * **Maskiranje/šuffling** – podelite tajne u nasumične delove; otpornost prvog reda sertifikovana TVLA. | ||||
| * **Maskiranje/šuffling** – podelite tajne u nasumične delove; otpornost prvog reda sertifikovana od strane TVLA. | ||||
| * **Skrivenje** – regulatori napona na čipu, nasumična satnica, dual-rail logika, EM štitovi. | ||||
| * **Detekcija grešaka** – redundantno računanje, potpisivanje praga. | ||||
| * **Operativno** – onemogućite DVFS/turbo u kripto jezgrima, izolujte SMT, zabranite ko-lokaciju u multi-tenant cloud-ovima. | ||||
| @ -96,8 +92,8 @@ Kombinovanje grešaka sa curenjem iz bočnih kanala skraćuje pretragu ključeva | ||||
| ## Alati i okviri | ||||
| * **ChipWhisperer-Husky** (2024) – 500 MS/s osciloskop + Cortex-M okidač; Python API kao gore. | ||||
| * **Riscure Inspector & FI** – komercijalno, podržava automatsku procenu curenja (TVLA-2.0). | ||||
| * **scaaml** – biblioteka za duboko učenje SCA zasnovana na TensorFlow-u (v1.2 – 2025). | ||||
| * **pyecsca** – ANSSI okvir za ECC SCA sa otvorenim kodom. | ||||
| * **scaaml** – biblioteka dubokog učenja SCA zasnovana na TensorFlow-u (v1.2 – 2025). | ||||
| * **pyecsca** – ANSSI open-source ECC SCA okvir. | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
|  | ||||
| @ -4,19 +4,19 @@ | ||||
| 
 | ||||
| ## Kako funkcionišu | ||||
| 
 | ||||
| Ove tehnike zloupotrebljavaju Windows Service Control Manager (SCM) na daljinu preko SMB/RPC da izvrše komande na ciljanom hostu. Uobičajeni tok je: | ||||
| Ove tehnike zloupotrebljavaju Windows Service Control Manager (SCM) na daljinu preko SMB/RPC da izvrše komande na ciljanom hostu. Uobičajen tok je: | ||||
| 
 | ||||
| 1. Autentifikujte se na cilj i pristupite ADMIN$ deljenju preko SMB (TCP/445). | ||||
| 2. Kopirajte izvršni fajl ili navedite LOLBAS komandnu liniju koju će servis izvršiti. | ||||
| 3. Kreirajte servis na daljinu putem SCM (MS-SCMR preko \PIPE\svcctl) koji pokazuje na tu komandu ili binarni fajl. | ||||
| 4. Pokrenite servis da izvrši payload i opcionalno uhvatite stdin/stdout putem imenovane cevi. | ||||
| 3. Kreirajte servis na daljinu putem SCM (MS-SCMR preko \PIPE\svcctl) koji upućuje na tu komandu ili binarni fajl. | ||||
| 4. Pokrenite servis da izvrši payload i opcionalno uhvatite stdin/stdout preko imenovane cevi. | ||||
| 5. Zaustavite servis i očistite (obrišite servis i sve preuzete binarne fajlove). | ||||
| 
 | ||||
| Zahtevi/preduslovi: | ||||
| - Lokalni administrator na cilju (SeCreateServicePrivilege) ili eksplicitna prava za kreiranje servisa na cilju. | ||||
| - SMB (445) dostupan i ADMIN$ deljenje dostupno; Udaljeno upravljanje servisima dozvoljeno kroz firewall hosta. | ||||
| - UAC udaljena ograničenja: sa lokalnim nalozima, filtriranje tokena može blokirati admin pristup preko mreže osim ako se koristi ugrađeni Administrator ili LocalAccountTokenFilterPolicy=1. | ||||
| - Kerberos vs NTLM: korišćenje imena hosta/FQDN omogućava Kerberos; povezivanje putem IP adrese često se vraća na NTLM (i može biti blokirano u učvršćenim okruženjima). | ||||
| - SMB (445) dostupan i ADMIN$ deljenje dostupno; Upravljenje daljinskim servisima dozvoljeno kroz firewall hosta. | ||||
| - UAC daljinska ograničenja: sa lokalnim nalozima, filtriranje tokena može blokirati admin pristup preko mreže osim ako se koristi ugrađeni Administrator ili LocalAccountTokenFilterPolicy=1. | ||||
| - Kerberos vs NTLM: korišćenje imena hosta/FQDN omogućava Kerberos; povezivanje preko IP adrese često se vraća na NTLM (i može biti blokirano u učvršćenim okruženjima). | ||||
| 
 | ||||
| ### Ručni ScExec/WinExec putem sc.exe | ||||
| 
 | ||||
| @ -33,17 +33,17 @@ sc.exe \\TARGET create HTSvc binPath= "C:\\Windows\\Temp\\payload.exe" start= de | ||||
| sc.exe \\TARGET start HTSvc | ||||
| sc.exe \\TARGET delete HTSvc | ||||
| ``` | ||||
| Napomene: | ||||
| - Očekujte grešku vremenskog ograničenja prilikom pokretanja EXE-a koji nije servis; izvršenje se i dalje dešava. | ||||
| Notes: | ||||
| - Očekujte grešku zbog isteka vremena prilikom pokretanja EXE-a koji nije servis; izvršenje se i dalje dešava. | ||||
| - Da biste ostali više OPSEC-prijateljski, preferirajte komande bez datoteka (cmd /c, powershell -enc) ili obrišite preuzete artefakte. | ||||
| 
 | ||||
| Pronađite detaljnije korake na: https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/ | ||||
| Find more detailed steps in: https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/ | ||||
| 
 | ||||
| ## Alati i primeri | ||||
| ## Tooling and examples | ||||
| 
 | ||||
| ### Sysinternals PsExec.exe | ||||
| 
 | ||||
| - Klasičan alat za administraciju koji koristi SMB za preuzimanje PSEXESVC.exe u ADMIN$, instalira privremenu uslugu (podrazumevano ime PSEXESVC) i proksira I/O preko imenovanih cevi. | ||||
| - Klasičan admin alat koji koristi SMB za preuzimanje PSEXESVC.exe u ADMIN$, instalira privremenu uslugu (podrazumevano ime PSEXESVC) i proksira I/O preko imenovanih cevi. | ||||
| - Primeri korišćenja: | ||||
| ```cmd | ||||
| :: Interactive SYSTEM shell on remote host | ||||
| @ -60,7 +60,7 @@ PsExec64.exe -accepteula \\HOST -r WinSvc$ -s cmd.exe /c ipconfig | ||||
| \\live.sysinternals.com\tools\PsExec64.exe -accepteula \\HOST -s cmd.exe /c whoami | ||||
| ``` | ||||
| OPSEC | ||||
| - Ostavlja događaje instalacije/deinstalacije servisa (Ime servisa često PSEXESVC osim ako nije korišćena opcija -r) i kreira C:\Windows\PSEXESVC.exe tokom izvršavanja. | ||||
| - Ostavlja događaje instalacije/deinstalacije servisa (Ime servisa je često PSEXESVC osim ako nije korišćena opcija -r) i kreira C:\Windows\PSEXESVC.exe tokom izvršavanja. | ||||
| 
 | ||||
| ### Impacket psexec.py (slično PsExec-u) | ||||
| 
 | ||||
| @ -107,10 +107,10 @@ cme smb HOST -u USER -H NTHASH -x "ipconfig /all" --exec-method smbexec | ||||
| ## OPSEC, detekcija i artefakti | ||||
| 
 | ||||
| Tipični host/network artefakti prilikom korišćenja PsExec-sličnih tehnika: | ||||
| - Security 4624 (Logon Type 3) i 4672 (Special Privileges) na cilju za admin nalog koji se koristi. | ||||
| - Security 5140/5145 File Share i File Share Detailed događaji koji prikazuju ADMIN$ pristup i kreiranje/pisanje servisnih binarnih fajlova (npr., PSEXESVC.exe ili nasumični 8-znamenkasti .exe). | ||||
| - Security 7045 Service Install na cilju: imena servisa kao što su PSEXESVC, RemComSvc, ili prilagođeni (-r / -service-name). | ||||
| - Sysmon 1 (Process Create) za services.exe ili sliku servisa, 3 (Network Connect), 11 (File Create) u C:\Windows\, 17/18 (Pipe Created/Connected) za cevi kao što su \\.\pipe\psexesvc, \\.\pipe\remcom_*, ili nasumične ekvivalente. | ||||
| - Bezbednost 4624 (Tip prijave 3) i 4672 (Specijalne privilegije) na cilju za admin nalog koji se koristi. | ||||
| - Bezbednost 5140/5145 događaji deljenja fajlova i detaljni događaji deljenja fajlova koji pokazuju ADMIN$ pristup i kreiranje/pisanje servisnih binarnih fajlova (npr., PSEXESVC.exe ili nasumični 8-znamenkasti .exe). | ||||
| - Bezbednost 7045 Instalacija servisa na cilju: imena servisa kao što su PSEXESVC, RemComSvc, ili prilagođeni (-r / -service-name). | ||||
| - Sysmon 1 (Kreiranje procesa) za services.exe ili sliku servisa, 3 (Mrežno povezivanje), 11 (Kreiranje fajla) u C:\Windows\, 17/18 (Cev stvorena/povezana) za cevi kao što su \\.\pipe\psexesvc, \\.\pipe\remcom_*, ili nasumične ekvivalente. | ||||
| - Registry artefakt za Sysinternals EULA: HKCU\Software\Sysinternals\PsExec\EulaAccepted=0x1 na hostu operatera (ako nije potisnuto). | ||||
| 
 | ||||
| Ideje za lov | ||||
| @ -121,10 +121,10 @@ Ideje za lov | ||||
| ## Rešavanje uobičajenih grešaka | ||||
| - Pristup je odbijen (5) prilikom kreiranja servisa: nije pravi lokalni admin, UAC udaljena ograničenja za lokalne naloge, ili EDR zaštita od manipulacije na putanji servisnog binarnog fajla. | ||||
| - Mrežni put nije pronađen (53) ili nije moglo da se poveže na ADMIN$: vatrozid blokira SMB/RPC ili su admin deljenja onemogućena. | ||||
| - Kerberos ne uspeva, ali NTLM je blokiran: povežite se koristeći hostname/FQDN (ne IP), osigurajte ispravne SPN-ove, ili obezbedite -k/-no-pass sa tiketima prilikom korišćenja Impacket-a. | ||||
| - Kerberos ne uspeva, ali NTLM je blokiran: povežite se koristeći hostname/FQDN (ne IP), osigurajte ispravne SPN-ove, ili obezbedite -k/-no-pass sa karticama prilikom korišćenja Impacket-a. | ||||
| - Početak servisa ističe, ali payload je izvršen: očekivano ako nije pravi servisni binarni fajl; snimite izlaz u fajl ili koristite smbexec za live I/O. | ||||
| 
 | ||||
| ## Beleške o učvršćivanju (moderne promene) | ||||
| ## Beleške o učvršćivanju | ||||
| - Windows 11 24H2 i Windows Server 2025 zahtevaju SMB potpisivanje po defaultu za odlazne (i Windows 11 dolazne) veze. Ovo ne prekida legitimnu upotrebu PsExec-a sa validnim kredencijalima, ali sprečava zloupotrebu nesigniranog SMB relaya i može uticati na uređaje koji ne podržavaju potpisivanje. | ||||
| - Novi SMB klijent NTLM blokiranje (Windows 11 24H2/Server 2025) može sprečiti NTLM fallback prilikom povezivanja putem IP-a ili na ne-Kerberos servere. U učvršćenim okruženjima ovo će prekinuti NTLM-bazirani PsExec/SMBExec; koristite Kerberos (hostname/FQDN) ili konfigurišite izuzetke ako je legitimno potrebno. | ||||
| - Princip minimalnih privilegija: minimizujte članstvo lokalnog admina, preferirajte Just-in-Time/Just-Enough Admin, sprovodite LAPS, i pratite/upalite upozorenja na 7045 instalacije servisa. | ||||
| @ -132,11 +132,13 @@ Ideje za lov | ||||
| ## Takođe pogledajte | ||||
| 
 | ||||
| - WMI-bazirani udaljeni exec (često više bezfajlovni): | ||||
| 
 | ||||
| {{#ref}} | ||||
| ./wmiexec.md | ||||
| {{#endref}} | ||||
| 
 | ||||
| - WinRM-bazirani udaljeni exec: | ||||
| 
 | ||||
| {{#ref}} | ||||
| ./winrm.md | ||||
| {{#endref}} | ||||
| @ -147,4 +149,5 @@ Ideje za lov | ||||
| 
 | ||||
| - PsExec - Sysinternals | Microsoft Learn: https://learn.microsoft.com/sysinternals/downloads/psexec | ||||
| - SMB sigurnosno učvršćivanje u Windows Server 2025 & Windows 11 (potpisivanje po defaultu, NTLM blokiranje): https://techcommunity.microsoft.com/blog/filecab/smb-security-hardening-in-windows-server-2025--windows-11/4226591 | ||||
| 
 | ||||
| {{#include ../../banners/hacktricks-training.md}} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user