一、目標(biāo)

1:main
好希望未來的世界是這樣的:
小X同學(xué),請(qǐng)幫我寫一個(gè)ws的H算法,并且詳細(xì)解釋入?yún)⒑徒Y(jié)果。
可惜現(xiàn)實(shí)是這樣的

1:ws1
也好,起碼飛哥還不至于失業(yè),李老板還得老老實(shí)實(shí)給我發(fā)工資。然后含淚退掉了他偷偷買的4090,原計(jì)劃他準(zhǔn)備搭個(gè)DeepSeek來優(yōu)化我的。
二、步驟
遇事不決先問AI
工具是死的,人是活到。個(gè)人認(rèn)為目前的AI,抹平了初級(jí)程序員和中級(jí)的程序員之間的技術(shù)差距。但是抹平不了李老板和入門級(jí)的程序員之間的技術(shù)差距。
作為一個(gè)有證的程序員,應(yīng)該這樣問AI才靠譜

1:ws2
這里面的關(guān)鍵信息就是 AES SHA256 和 libwhatsapp.so 了,
找朋友 libwhatsapp.so
我們遇到的第一個(gè)困難就是, 最新版的apk里面只有l(wèi)ibsuperpack.so 和 libunwindstack.so, 并沒有我們期待的 libwhatsapp.so
不過這也難不倒我們,繼續(xù)問AI唄。這次 AI給出了幾個(gè)方案,它懷疑 WhatsApp 可能已經(jīng)將多個(gè) .so 庫合并進(jìn)一個(gè)單獨(dú)的 libsuperpack.so 文件,減少 APK 體積并提高加載效率。
所以我們先安裝Apk,然后用上最原始的查找大法
find / -name 'libwhatsapp.so' -type f
# 結(jié)果出來了
/data/user/0/com.whatsapp/files/decompressed/libs.spo/libwhatsapp.so
IDA
這個(gè) H 一看就是個(gè)Base64, 所以第一反應(yīng)就是 hook java的 base64函數(shù),但是沒有結(jié)果,那就說明大概率是在 so里面做的base64。
這時(shí)候就請(qǐng)IDA上場(chǎng)了。
我感覺下一個(gè)版本的ida可能就會(huì)增加AI窗口了, 咱們直接輸入一個(gè):
請(qǐng)幫我標(biāo)出這個(gè)so中做Base64操作的函數(shù),并且生成frida Hook的代碼
好吧,在ida沒有更新之前,只能飛哥上場(chǎng)了。
掛上心愛的 FindCrypt插件

1:ida1
啥也不說了,先Hook它
let libWhatsAppAddress = Module.findBaseAddress('libwhatsapp.so');
console.log(" ==> libwhatsapp : " + libWhatsAppAddress)
let offset = 0x89F7C8;
let funcAddr = libWhatsAppAddress.add(offset);
Interceptor.attach(funcAddr, {
onEnter: function(args) {
},
onLeave: function(retval) {
console.log('--> retval: ' + retval);
try {
let strIn = Memory.readUtf8String(retval);
console.log(strIn);
} catch (e) {
Log( "#### Base64 A Rc Error");
}
console.log(`/* TID ${gettid()} */ ======= Base64 A retval ====`);
}
});
跑一下 ,熟悉的味道

1:rc1
三、總結(jié)
再強(qiáng)調(diào)一遍,以后的程序員只會(huì)有一種,利用輔助AI工具的程序員。不會(huì)使用AI的程序員一定是要被淘汰的。
早用早享受,不用擔(dān)心AI會(huì)替代你,AI的出現(xiàn)只會(huì)讓你的工作更加高效。以此為理由找李老板提加工資。

1:ffshow
這臺(tái)機(jī)器不會(huì)取代我們?nèi)魏我粋€(gè)人