日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[BUGKU][CTF][Reverse][2020] Reverse writeup 1-7 暂时肝不动了

發(fā)布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [BUGKU][CTF][Reverse][2020] Reverse writeup 1-7 暂时肝不动了 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Reverse 入門逆向
步驟: ida main函數(shù) 按R

Reverse signin
關(guān)鍵字:
知識點:Android逆向分析。(常用工具:安卓模擬器、JEB、Cyberchef、Androidkiller)
步驟:
1.用jeb打開,找到MainActivity,右鍵解析成java分析 ,需要反轉(zhuǎn)后tostring()

2. 用jeb打開,找到MainActivity,右鍵解析成java分析


3.在線或者使用腳本反轉(zhuǎn) ,base64解碼

a ='991YiZWOz81ZhFjZfJXdwk3X1k2XzIXZIt3ZhxmZ'b = ''b = a[::-1]print(b)


參考鏈接:https://www.cnblogs.com/myqzs/p/13724482.html

Reverse EASY re
關(guān)鍵字:ida
步驟:
1.main f5 F5翻譯為偽C代碼
2.strcmp()對面輸入的值是否等于xmmword_413E34位置的值,雙擊xmmword_413E34 跟過去,發(fā)現(xiàn)了flag (按R顯示字符串)
3.字符串拼接后反轉(zhuǎn) ,得到flag
DUTCTF{We1c0met0DUTCTF}

思路二:解壓得到一個可執(zhí)行文件,然后用Notepad++打開,直接搜索DUTCTF即可得到

Reverse Easy_vb
關(guān)鍵字:ida
步驟:
ida 打開 往下翻 MCTF 替換 flag

Reverse Timer(阿里CTF)
關(guān)鍵字:
知識點:
步驟:
1.下載文件發(fā)現(xiàn)是apk ,先安裝運行下發(fā)現(xiàn)有一個倒計時,只是時間為200000秒。猜測是讓時間走完獲取flag。

2.JEB查看

package net.bluelotus.tomorrow.easyandroid;import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView;public class MainActivity extends AppCompatActivity {int beg = (((int) (System.currentTimeMillis() / 1000)) + 200000);int k = 0;int now;long t = 0;public native String stringFromJNI2(int i);public static boolean is2(int n) {if (n <= 3) {if (n > 1) {return true;}return false;} else if (n % 2 == 0 || n % 3 == 0) {return false;} else {int i = 5;while (i * i <= n) {if (n % i == 0 || n % (i + 2) == 0) {return false;}i += 6;}return true;}}protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView((int) R.layout.activity_main);final TextView tv1 = (TextView) findViewById(R.id.textView2);final TextView tv2 = (TextView) findViewById(R.id.textView3);final Handler handler = new Handler();handler.postDelayed(new Runnable() {public void run() {MainActivity.this.t = System.currentTimeMillis();MainActivity.this.now = (int) (MainActivity.this.t / 1000);MainActivity.this.t = 1500 - (MainActivity.this.t % 1000);tv2.setText("AliCTF");if (MainActivity.this.beg - MainActivity.this.now <= 0) {tv1.setText("The flag is:");tv2.setText("alictf{" + MainActivity.this.stringFromJNI2(MainActivity.this.k) + "}");}MainActivity mainActivity;if (MainActivity.is2(MainActivity.this.beg - MainActivity.this.now)) {mainActivity = MainActivity.this;mainActivity.k += 100;} else {mainActivity = MainActivity.this;mainActivity.k--;}tv1.setText("Time Remaining(s):" + (MainActivity.this.beg - MainActivity.this.now));handler.postDelayed(this, MainActivity.this.t);}}, 0);}public boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menu_main, menu);return true;}public boolean onOptionsItemSelected(MenuItem item) {if (item.getItemId() == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}static {System.loadLibrary("lhm");} }


直接照著寫一個即可,然后可以算出關(guān)鍵變量k
解密腳本,算出k = 1616384

def is2(n):if(n <= 3):if(n > 1):return Truereturn Falseelif(n % 2 == 0 or n % 3 == 0):return Falseelse:i = 5while(i * i <= n):if (n % i == 0 or n % (i + 2) == 0):return Falsei += 6return Truek=0for i in range(200000,0,-1):k = k + 100 if is2(i) else k - 1 print(k)

3. 實現(xiàn)的話,用Androidkiller打開項目,因為跳轉(zhuǎn)后輸出了The flag is,所以搜索該字符串,雙擊跟過去

3.1 第113行的if-gtz v0, :cond_0。 if-ltz是如果大于0跳轉(zhuǎn) ,那改成如果小于0跳轉(zhuǎn)就跳過了200000秒等待了。對應(yīng)的語句為if-ltz v0, :cond_0。
3.2 然后要找到賦值k的位置,看第129行-149行,因為k的值是在alictf{和}之間傳入的。
看到了139行的的iget v3, v3, Lnet/bluelotus/tomorrow/easyandroid/MainActivity;->k:I,知道v3是k的值。
于是在下面賦值const v3,1616384

然后保存,編譯,安裝運行就出現(xiàn)flag。(jdk=1.8 apktool>=2.3)

Reverse 逆向入門
關(guān)鍵字:winhex
步驟:

1.winhex 打開 復(fù)制黏貼到瀏覽器
2.QR掃描出結(jié)果

Reverse 游戲過關(guān)
關(guān)鍵字:ida
步驟:
1.首先就是看運行遍程序,了解下程序流程以及關(guān)鍵字符串。然后打開ida
Shift+F12查看下字符串,然后雙擊過去
2.按Cirt+X交叉引用顯示調(diào)用位置

3.F5看下偽代碼,兩個數(shù)組按位異或再和0x13異或生成flag

array1 = [18,64,98,5,2,4,6,3,6,48,49,65,32,12,48,65,31,78,62,32,49,32,1,57,96,3,21,9,4,62,3,5,4,1,2,3,44,65,78,32,16,97,54,16,44,52,32,64,89,45,32,65,15,34,18,16,0] array2 = [123,32,18,98,119,108,65,41,124,80,125,38,124,111,74,49,83,108,94,108,84,6,96,83,44,121,104,110,32,95,117,101,99,123,127,119,96,48,107,71,92,29,81,107,90,85,64,12,43,76,86,13,114,1,117,126,0]flag = '' for i in range(len(array1)):flag+= chr(array1[i] ^ array2[i] ^ 0x13 ) print(flag)

Reverse
關(guān)鍵字:
知識點:
步驟:

Reverse
關(guān)鍵字:
知識點:
步驟:

Reverse
關(guān)鍵字:
知識點:
步驟:

Reverse
關(guān)鍵字:
知識點:
步驟:

Reverse
關(guān)鍵字:
知識點:
步驟:

Reverse
關(guān)鍵字:
知識點:
步驟:

參考鏈接:
https://www.codeqq.com/log/7Zjb2O7Z.html

https://blog.csdn.net/ahilll/article/details/84787700

總結(jié)

以上是生活随笔為你收集整理的[BUGKU][CTF][Reverse][2020] Reverse writeup 1-7 暂时肝不动了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。