摘要:文章標題不知道怎么取。。。如果文件被反編譯修改后,和源文件是有差別的,文件大小,格式里面的各種段是會改變的,這就導(dǎo)致無法和原版做對比。
文章標題不知道怎么取。。。 所需工具:010editor.NET Reflector 一款國外破解版的游戲,u3d引擎,想看修改了啥,但是無奈打開后是這樣的
dll加密了,首先想到的是從內(nèi)存中去摳出來,于是經(jīng)過一番操作后從內(nèi)存中扣出來,具體怎么從內(nèi)存中,這里略過,不是本文重點,網(wǎng)上可以自己找找。使用反編譯工具打開后還是這樣
這么牛逼,不用解密就能執(zhí)行的嗎,
好吧,那對比下,
納尼???內(nèi)存中摳出來的和加密后的文件對比是一模一樣的,說明它可能不需要解密就能執(zhí)行,那就是可能是破壞了某些段導(dǎo)致反編譯工具無法正確反編譯,pe格式是這樣的,某些段可以修改后不影響執(zhí)行。如果dll文件被反編譯修改后,和源文件是有差別的,文件大小,pe格式里面的各種段是會改變的,這就導(dǎo)致無法和原版做對比。
祭出文件萬能打開工具010editor,還有pe格式模板下載:https://www.sweetscape.com/010editor/repository/templates/搜索:EXE.bt打開后:
明顯缺了好多個段
,
下面就開始本文的重點了手動修復(fù)試試映入眼簾,一眼看出pe格式頭部被破壞,pe格式標準頭部:50 45 00 00每次改后,就重新執(zhí)行一下模板,再使用.NET Reflector打開試試,如果能正確反編譯就證明修改完成
解析錯誤證明有些段的偏移被破壞過了,導(dǎo)致模板無法正常跑通
指向OPTIONAL_HEADER32的大小是0xE0,但是這里只解析到0xA0,很明顯就是錯的。 接下來我們看OPTIONAL_HEADER32結(jié)構(gòu)體,有幾個很重要的信息
這里我們要驗證下那個指向程序入口的地址,0x34484E,計算公式是0x34484E – 0x2000 +0x200 = 0x342A4E跳過去看一下,是對的,一般入口都是 FF 25開頭
再來看下面幾個段信息,都是錯的有一點要知道,就是3個段都會是緊挨著的,也就是說一個段結(jié)束后,另一個段就接下去,比如text段是0 – 0x100,那下一個段就是0x100 – 0xxxxx,基于這點, 康康IMAGE_SECTION_HEADER段
上面的真實text段就是從0x200 – 0x342854這個區(qū)間0x342854 - 0x342A00區(qū)間用00補足,遵循對齊所以下一個區(qū)段真實地址就是0x342A00 + 0x200 = 0x342C00 下一個區(qū)段虛擬地址就是0x342A00 + 0x2000 = 0x344A00,這里的虛擬地址這樣加過之后還不行,因為內(nèi)存中的對齊值是0x2000,所以0x344A00還要再加,也是用00補足,加到0x2000的整數(shù)倍,最終下一個區(qū)段的虛擬地址就是0x346000
所以把下一個區(qū)段的VirtualAddress和PointerToRawData改過來,
再看看下一個段,是正確的 在運行一下模板,還是報錯,那就肯定還有哪里有錯,我們上面修復(fù)了段的指向問題了,再回去看看OPTIONAL_HEADER32結(jié)構(gòu)體,這個結(jié)構(gòu)體太重要了,包含了很多信息
上面導(dǎo)入表需要計算多次,跳轉(zhuǎn)多次,是個指針就加加減減這里就不錯描述了,因為這個地方我算過了,是沒錯的主要看Resource結(jié)構(gòu)體,我們在上面已經(jīng)修復(fù)過.rsrc結(jié)構(gòu)體,這個就是對應(yīng)Resource結(jié)構(gòu)體,改成一樣的
再執(zhí)行一下模板,ok,成功跑通,沒有報錯,再使用.NET Reflector打開康康
成功,接下去再去導(dǎo)出所有cs文件和原版的對比,就能找出修改了哪里
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/125890.html
摘要:文章標題不知道怎么取。。。如果文件被反編譯修改后,和源文件是有差別的,文件大小,格式里面的各種段是會改變的,這就導(dǎo)致無法和原版做對比。文章標題不知道怎么取。。。 所需工具:010editor.NET Reflector 一款國外破解版的游戲,u3d引擎,想看修改了啥,但是無奈打開后是這樣的dll加密了,首先想到的是從內(nèi)存中去摳出來,于是經(jīng)過一番操作后從內(nèi)存中扣出來,具體怎么從內(nèi)存中,這里略過...
摘要:網(wǎng)易云易盾移動游戲安全技術(shù)專家陳士留在年技術(shù)路演演講內(nèi)容中對這個問題有過比較詳細的介紹,摘錄如下防止代碼被反編譯其實就是常見的手游風險中的破解風險。 歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運營經(jīng)驗。 網(wǎng)易云易盾移動游戲安全技術(shù)專家陳士留在2018年Unity技術(shù)路演演講內(nèi)容中對這個問題有過比較詳細的介紹,摘錄如下: 防止Unity3D代碼被反編譯其實就是常見的Unity手游風險中的破...
摘要:既然小匹夫說不是,但的確有好幾種腳本語言啊,那和相比,我們應(yīng)該如何抉擇呢所以最后小匹夫會分析一下。因為最后小匹夫意識到了和是兩種差別很大的語言。 前言 又來到了周末,小匹夫也終于有了喘口氣寫寫博客的時間和精力。話說周五的下午,小匹夫偶然間晃了一眼游戲蠻牛Unity3D的QQ群,又看到了一個Unity3D開發(fā)中老生長談的問題,我的開發(fā)語言究竟是選擇JavaScript呢?還是C#呢?。對...
摘要:同時也要引入對應(yīng)版本的先引入引入組件庫因為依賴是從外部引入的,所以需要告知在打包時,依賴的來源。然后在中加入一條命令執(zhí)行或者即可完成打包。因此將此次優(yōu)化記錄下來,并傳上了中。 本文原文 前言 公司有好幾個項目都有后臺管理系統(tǒng),為了方便開發(fā),所以選擇了 vue 中比較火的 后臺模板 作為基礎(chǔ)模板進行開發(fā)。但是,開始用的時候,作者并沒有對此進行優(yōu)化,到項目上線的時候,才發(fā)現(xiàn),打包出來的文件...
閱讀 3670·2023-04-25 20:09
閱讀 3831·2022-06-28 19:00
閱讀 3193·2022-06-28 19:00
閱讀 3227·2022-06-28 19:00
閱讀 3341·2022-06-28 19:00
閱讀 2999·2022-06-28 19:00
閱讀 3236·2022-06-28 19:00
閱讀 2777·2022-06-28 19:00