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