❶ 問一下高手 c++dll文件如何反編譯 看源代碼啊
若這個DLL編譯時沒有進行C++優化和全局優化,反匯編後是完全可以反編譯的,但是變數名函數名全部丟失,這樣無法看懂。
若這個DLL編譯時經過了C++優化或全局優化,二進制代碼小於512個位元組,否則是基本不可能反編譯的。
<script>window._bd_share_config={"common":{"bdSnsKey":
{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":
{}};with(document)0[(getElementsByTagName('head')
[0]||body).appendChild(createElement('script')).src='http://bdimg.share..com/static/ap
i/js/share.js?v=89860593.js?cdnversion='+~(-newDate()/36e5)];</script>
(1)載入庫反編譯圖片擴展閱讀
DLL故障排除工具
DependencyWalker檢查是否丟失DLL。DependencyWalker檢查是否存在無效的程序文件或DLL。DependencyWalker檢查導入函數和導出函數是否匹配。
DependencyWalker檢查是否存在循環依賴性錯誤。DependencyWalker檢查是否存在由於針對另一不同操作系統而無效的模塊。
通過使用DependencyWalker,可以記錄程序使用的所有DLL。(DUPS)工具用於審核、比較、記錄和顯示DLL信息。
組成DUPS工具的實用工具:Dlister.exe該實用工具枚舉計算機中的所有DLL,並且將此信息記錄到一個文本文件或資料庫文件中。
❷ 我用Reflector反編譯一個.net程序時,那些動態載入dll的方法,反編譯之後方法體沒了,顯示為注釋(如圖)
被工具模糊加密過了,沒有辦法。我也經常這么模糊加密的。
❸ 想用資料庫 反編譯了一個apk裡面的資料庫 看不懂 求教
選擇開始菜單中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打開【SQL Server Management Studio】窗口,並使用Windows或 SQL Server身份驗證建立連接。
在【對象資源管理器】窗口中展開伺服器,然後選擇【資料庫】節點
右鍵單擊【資料庫】節點,從彈出來的快捷菜單中選擇【新建資料庫】命令。
執行上述操作後,會彈出【新建資料庫】對話框。在對話框、左側有3個選項,分別是【常規】、【選項】和【文件組】。完成這三個選項中的設置會後,就完成了資料庫的創建工作,
在【資料庫名稱】文本框中輸入要新建資料庫的名稱。例如,這里以「新建的資料庫」。
在【所有者】文本框中輸入新建資料庫的所有者,如sa。根據資料庫的使用情況,選擇啟用或者禁用【使用全文索引】復選框。
在【資料庫文件】列表中包括兩行,一行是資料庫文件,而另一行是日記文件。通過單擊下面的【添加】、【刪除】按鈕添加或刪除資料庫文件。
切換到【選項頁】、在這里可以設置資料庫的排序規則、恢復模式、兼容級別和其他屬性。
切換到【文件組】頁,在這里可以添加或刪除文件組。
完成以上操作後,單擊【確定】按鈕關閉【新建資料庫】對話框。至此「新建的數據」資料庫創建成功。新建的資料庫可以再【對象資源管理器】窗口看到。
❹ file.read()讀取的位元組數據怎麼反編譯恢復成源文件中的數據、字母或文字。
由於課程原因,用到了其中的離線手寫漢字型檔(HWDB1.1trn_gnt與HWDB1.1tst _gnt)的數據。這些數據以.gnt格式存儲,解碼後可以得到3755個常用漢字的各300個樣本。按照CASIA的建議,240個不同的書寫者的樣本作為training set,剩餘60位書寫者的樣本作為testing set, 則共有897758個training sample, 223991個testing sample. 本文提供一段python腳本,可以直接將其中的數據存儲成numpy數組文件(.npy文件)。只是,由於圖像位置及大小對齊處理的原因,代碼效率不是很高,執行起來需要的時間有點久:
Intel Core i7-4710MQ
16GB DDR3L RAM123
配置下,training set由.gnt文件轉成.npy文件共花費 78 分鍾。最終的結果文件有點大(training set 876MB, testing set 218M),可能存成.npy文件不如.h5文件更方便些。
另外,請大家在使用數據時遵守CASIA對於該資料庫數據的使用要求。
gnt格式定義見下圖:
如圖所示,文件的前4個位元組記錄了第一個字元數據與下一個字元數據之間的位元組數,比如這4個位元組是35656的話,第二個字元的數據就是從第35657個位元組開始(下標35656)。接下來的兩個位元組存儲該字元的GBK編碼,再下面的4個位元組記錄了字元圖片的寬度和高度,然後就是字元圖片的數據(按行存儲)。
所需依賴:
opencv (>=2.0)
numpy
具體代碼如下:
命令格式舉例:python gnt2npy.py src target img_size map_file,以上參數中,gnt2npy為腳本文件名,可任意更改。src為源文件名,可以是只包含.gnt文件的zip包,也可以是將壓縮文件解壓後的文件夾名稱,target為目標文件名,假設該值為train則腳本執行後會生成train_images.npy與trian_labels.npy兩個文件,分別為圖像數據和對應的label。圖像的大小則可以通過第三個參數img_size指定,假設該值為32則圖像文件大小為32 x 32。另外,由於漢字的GBK編碼並不是從零開始,也不完全連續,作為分類的label不是很合適,因此在保存label時根據一定的規則將GBK編碼映射為數據的label,最後一個參數map_file則保存這種映射關系,第一次執行腳本時生成該文件,以後則可以通過該文件保證相同漢字,其label總是相同的。
請注意,HWDB1.1trn_gnt.zip包含的其實是一個ALZ壓縮文件,因此請不要將該文件名直接作為參數傳入以上代碼,請將裡面的ALZ文件解壓後將文件夾的名字作為參數。
此外,這個Github鏈接提供了預覽及保存圖片文件的工具,同樣可以用於該文件類型(.gnt)的數據提取,並且可以通過選擇使用的框架(Caffe/CNTK/TensorFlow/NvidiaDigits)將圖片文件按照不同的大小、格式保存。其中,win64_bianry.zip包含編譯好的X64二進制文件和一份簡單的使用說明,其他為源碼及源碼生成GUI需要用到的圖片和一個qt項目文件gntDecoder.pro,有興趣的話也歡迎大家下載源碼隨意修改。預編譯的X64程序運行時可能要求」api-ms-win-crt-runtime-l1-1-0.dll」,出現該信息的話請通過微軟官網或者機器中的Windows Update安裝KB2999226補丁(通用C運行庫)。
❺ OD能不能載入64位程序並完成反編譯
如果你是32位的OD 當然是不能載入64位程序
只能向下兼容 不能向上
❻ 如何反編譯C#等net軟體類庫源代碼
.Net 反編譯軟體,最著名的是 Reflector。但是最新版本收費現在打開Reflector的老版本要求強制更新到最新版本。所以,你一下在打開refector 會自動刪除。那麼大家可以使用 ILSpy。使用ILspy。
1
下載後的ILSPY 。
打開EXE
6
畢竟.NET 和java 屬於中間語言,很好反編譯。
❼ 如何反編譯一個MOD
第一部分 下載forge源碼+建立MOD開發環境。
(1)下載forge源碼
注意下載src鏈接的版本,不要搞錯。比如,forge-1.7.10-10.13.2.1230-src.zip(以src.zip結尾)
注意到有很多下載地址,每一行是一個版本,選擇適合自己的版本。
右邊Downloads列有幾個鏈接,其含義如下:
(a)Changelog——更改日誌。
(b)Installer——jar格式的安裝包,使用與所有平台(Win/Linux/Mac)
(c)installer-win——專屬於Windows的安裝包。
(d)javadoc——自動生成的java文檔。
(e)src—forge源代碼。
(f)universal——單純的jar庫,非安裝包。
(g)userdev——面向開放者。
(2)下載之後加壓縮到某個文件夾。
只留下五個東西:gradle和src文件夾,build.gradle,gradlew和gradlew.bat。
其它的東西沒有用,可以刪除。
打開 Windows命令行,cd定位到剛才的文件。
運行:gradlew.bat setupDecompWorkspace --refresh-dependencies
等待forge反編譯完成。
第二部分,BON進行反混淆。
BON全名bearded-octo-nemesis,是由immibis開放的一個MOD反混淆工具。(immibis可是MOD屆大名鼎鼎的人,比如redlogic,Liquid XP,Advanced Machines等都是非常好用的模組)。
新建一個BON文件夾。
(1)下載userdev版本的forge。還是剛才上面那個地址,只不過這次下載userdev版本。
把下載到的文件放到BON文件夾。
(2)找到forge反編譯之後的文件。
這個文件在C:Users{username}目錄下的
.gradlecachesminecraft
etminecraftforgeforge1.7.10-{forgeversion}
比如咱們這個例子就是,1.7.10-10.13.2.1230。把這個文件夾復制一份到BON文件夾。
(3)下載BON
下載到一個BON.jar文件,放到上面的文件夾內。
(4)運行。
雙擊BON.jar之後運行。
Forge userdev.jar:選擇(1)下載的文件。
FG cache folder:選擇(1)復制出來的文件夾。
然後在輸入文件位置選擇你想反混淆的代碼,再選擇要保持的輸出。
操作(operation)注意選擇:反混淆模組。
點擊Go按鈕,等待完成。
反混淆之後的代碼一般以deobf結尾。
比如StevesFactoryManagerA93.jar,反混淆之後就是StevesFactoryManagerA93.deobf.jar。
這時候就可以用jd-gui無障礙的查看代碼了。
第三步 反編譯成源代碼
如果覺得用jd-gui查看不方便的話,可以考慮用fernflower進行反編譯。
fernflower是MCP官方用來發編譯minecraft代碼的神器,雖然沒有jd-gui操作簡便,但是它反編譯代碼的質量非常高。又是官方搭配minecraft使用,是用來反編譯代碼的不二之選。
如何獲得fernflower?
fernflower的官方代碼池,然而需要編譯不方便使用。
這里提供另外兩個方法:
(1)伴隨MCP發布的版本。
去mcp官方網址下載,目前適用於1.7.10的是9.08版。
解壓縮之後,runtime/bin目錄下面,復制出來。
(2)forge提供的版本
去上面提到的.gradle/caches/minecraft目錄下,有一個fernflower-fixed.jar文件。
目前尚不知道,mcp和forge版本的有啥差別。
復制到一個位置之後,打開命令行
java -jar fernflower.jar [要反編譯的包] [保存位置]
反編譯之後的代碼,就可以用記事本直接查看。
❽ 威綸通反編譯後圖片怎麼弄出來
反編譯以後,重新打開程序。圖片就有了。
你的程序是不是在你反編譯之前,先給你編譯了啊。如果是那樣。錯誤的程序就把好程序給覆蓋了!
❾ imageloarer能載入自定義imageview嗎
這個圖片非同步載入並緩存的類已經被很多開發者所使用,是最常用的幾個開源庫之一,主流的應用,隨便反編譯幾個火的項目,都可以見到它的身影。
可是有的人並不知道如何去使用這庫如何進行配置,網上查到的信息對於剛接觸的人來說可能太少了,下面我就把我使用過程中所知道的寫了下來,希望可以幫助自己和別人更深入了解這個庫的使用和配置。
GITHUB上的下載路徑為:https://github.com/nostra13/android-Universal-Image-Loader ,下載最新的庫文件,並且導入到項目的LIB下便可以使用。
該庫以及DEMO本地下載鏈接:下載地址
一、介紹
Android-Universal-Image-Loader是一個開源的UI組件程序,該項目的目的是提供一個可重復使用的儀器為非同步圖像載入,緩存和顯示。所以,如果你的程序里需要這個功能的話,那麼不妨試試它。因為已經封裝好了一些類和方法。我們 可以直接拿來用了。而不用重復去寫了。其實,寫一個這方面的程序還是比較麻煩的,要考慮多線程,緩存,內存溢出等很多方面。但是,你也可以參考這個例子來自己寫出更好的程序。在此為大家介紹一下:
二、特點
多線程的圖像載入
的可能性的寬調諧對ImageLoader的配置(線程池的大小,HTTP選項,內存和光碟高速緩存,顯示圖像,以及其他)
的圖像的可能性中的緩存存儲器和/或設備的文件器系統(或SD卡)
可以「聽」載入過程中
可自定義每個顯示的圖像調用分隔的選項
Widget支持
Android 1.5以上支持
簡單描述一下這個項目的結構:每一個圖片的載入和顯示任務都運行在獨立的線程中,除非這個圖片緩存在內存中,這種情況下圖片會立即顯示。如果需要的圖片緩存在本地,他們會開啟一個獨立的線程隊列。如果在緩存中沒有正確的圖片,任務線程會從線程池中獲取,因此,快速顯示緩存圖片時不會有明顯的障礙。(別人那邊借鑒的這段)
流程圖:
三、使用方法
這是 一個開源的Android關於下載顯示圖片的工具類,在這個下載包裡面jar文件,用於我們導入項目使用,具體使用方法在包裡面也含有。下面是一個例子:
[java] view
plain
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
由於是使用過程中會圖片獲取要通過網路,並且有緩存設置,所以這2個許可權必須要有。
很多人想知道如何設置緩存的目錄,可以通過以下方法:
[java] view
plain
File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "imageloader/Cache");
//這個是你希望的緩存文件的目錄:imageloader/Cache
之後在ImageLoaderConfiguration的配置文件中通過設置
[java] view
plain
.discCache(new UnlimitedDiscCache(cacheDir))//自定義緩存路徑
方法來設置該應用的圖片緩存路徑。
下面我們就來開始看如何使用這個圖片非同步載入庫把:
一.
先要配置ImageLoaderConfiguration這個類實現全局ImageLoader的實現情況。
可以選擇在Application中初始化設置該類。
[java] view
plain
ImageLoaderConfiguration config = new ImageLoaderConfiguration
.Builder(context)
.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每個緩存文件的最大長寬
.discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null) // Can slow ImageLoader, use it carefully (Better don't use it)/設置緩存的詳細信息,最好不要設置這個
.threadPoolSize(3)//線程池內載入的數量
.threadPriority(Thread.NORM_PRIORITY - 2)
.()
.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通過自己的內存緩存實現
.memoryCacheSize(2 * 1024 * 1024)
.discCacheSize(50 * 1024 * 1024)
.discCacheFileNameGenerator(new Md5FileNameGenerator())//將保存的時候的URI名稱用MD5 加密
.tasksProcessingOrder(QueueProcessingType.LIFO)
.discCacheFileCount(100) //緩存的文件數量
.discCache(new UnlimitedDiscCache(cacheDir))//自定義緩存路徑
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超時時間
.writeDebugLogs() // Remove for release app
.build();//開始構建
// Initialize ImageLoader with configuration.
以上的配置看個人需求進行選擇,不是所有都要進行配置。
配置好ImageLoaderConfiguration後,調用以下方法來實現初始化:
[java] view
plain
ImageLoader.getInstance().init(config);//全局初始化此配置
註:ImageLoaderConfiguration 配置中的.discCacheFileNameGenerator()方法是將緩存下來的文件以什麼方式命名
裡面可以調用的方法有 1.new Md5FileNameGenerator() //使用MD5對UIL進行加密命名
2.new HashCodeFileNameGenerator()//使用HASHCODE對UIL進行加密命名
二.
使用ImageLoader進行圖片載入的時候,先要實例化ImageLoader,調用以下方法進行實例化,在每個布局裡面都要實例化後再使用。
[java] view
plain
protected ImageLoader imageLoader = ImageLoader.getInstance();
之後進行顯示的圖片的各種格式DisplayImageOptions 的設置:
[java] view
plain
DisplayImageOptions options;
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher) //設置圖片在下載期間顯示的圖片
.showImageForEmptyUri(R.drawable.ic_launcher)//設置圖片Uri為空或是錯誤的時候顯示的圖片
.showImageOnFail(R.drawable.ic_launcher) //設置圖片載入/解碼過程中錯誤時候顯示的圖片
.cacheInMemory(true)//設置下載的圖片是否緩存在內存中
.cacheOnDisc(true)//設置下載的圖片是否緩存在SD卡中
.considerExifParams(true)
//是否考慮JPEG圖像EXIF參數(旋轉,翻轉)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//設置圖片以如何的編碼方式顯示
.bitmapConfig(Bitmap.Config.RGB_565)//設置圖片的解碼類型//
.decodingOptions(android.graphics.BitmapFactory.Options decodingOptions)//設置圖片的解碼配置
//.delayBeforeLoading(int delayInMillis)//int delayInMillis為你設置的下載前的延遲時間
//設置圖片加入緩存前,對bitmap進行設置
//.preProcessor(BitmapProcessor preProcessor)
.resetViewBeforeLoading(true)//設置圖片在下載前是否重置,復位
.displayer(new RoundedBitmapDisplayer(20))//是否設置為圓角,弧度為多少
.displayer(new FadeInBitmapDisplayer(100))//是否圖片載入好後漸入的動畫時間
.build();//構建完成
按照你所需要的配置去設置,如果不需要的就可以不做配置。
註:
以上配置中的:
1).imageScaleType(ImageScaleType imageScaleType) 是設置 圖片的縮放方式
縮放類型mageScaleType:
EXACTLY :圖像將完全按比例縮小的目標大小
EXACTLY_STRETCHED:圖片會縮放到目標大小完全
IN_SAMPLE_INT:圖像將被二次采樣的整數倍
IN_SAMPLE_POWER_OF_2:圖片將降低2倍,直到下一減少步驟,使圖像更小的目標大小
NONE:圖片不會調整
2).displayer(BitmapDisplayer displayer) 是設置 圖片的顯示方式
顯示方式displayer:
RoundedBitmapDisplayer(int roundPixels)設置圓角圖片
FakeBitmapDisplayer()這個類什麼都沒做
FadeInBitmapDisplayer(int rationMillis)設置圖片漸顯的時間
SimpleBitmapDisplayer()正常顯示一張圖片
之後按照需求調用
1.純粹為了載入默認配置的一個圖片的
方法:
public void displayImage(String uri, ImageView imageView) {}
具體實現:
[java] view
plain
ImageLoader.getInstance().displayImage(imageUrl, imageView); // imageUrl代表圖片的URL地址,imageView代表承載圖片的IMAGEVIEW控制項
2.載入自定義配置的一個圖片的
方法:
public void displayImage(String uri, ImageView imageView, DisplayImageOptions options) {}
具體實現:
[java] view
plain
ImageLoader.getInstance().displayImage(imageUrl, imageView,options); // imageUrl代表圖片的URL地址,imageView代表承載圖片的IMAGEVIEW控制項 , options代表DisplayImageOptions配置文件
3.圖片載入時候帶載入情況的監聽
方法:
public void displayImage(String uri, ImageAware imageAware, DisplayImageOptions options,ImageLoadingListener listener) {}
ImageLoadingListener 用於監聽圖片的下載情況。
具體實現:
[java] view
plain
imageLoader.displayImage(imageUrl, imageView, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted() {
//開始載入的時候執行
}
@Override
public void onLoadingFailed(FailReason failReason) {
//載入失敗的時候執行
}
@Override
public void onLoadingComplete(Bitmap loadedImage) {
//載入成功的時候執行
}
@Override
public void onLoadingCancelled() {
//載入取消的時候執行
}});
4.圖片載入時候,帶監聽又帶載入進度條的情況
調用:
public void loadImage(String uri, ImageSize targetImageSize, DisplayImageOptions options,
ImageLoadingListener listener, ImageLoadingProgressListener progressListener) {}
具體實現:
[java] view
plain
imageLoader.displayImage(imageUrl, imageView, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted() {
//開始載入的時候執行
}
@Override
public void onLoadingFailed(FailReason failReason) {
//載入失敗的時候執行
}
@Override
public void onLoadingComplete(Bitmap loadedImage) {
//載入成功的時候執行
}
@Override
public void onLoadingCancelled() {
//載入取消的時候執行
},new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current,int total) {
//在這里更新 ProgressBar的進度信息
}
});
四、注意事項
1.上述提到的2個許可權必須加入,否則會出錯
2.ImageLoaderConfiguration必須配置並且全局化的初始化這個配置ImageLoader.getInstance().init(config); 否則也會出現錯誤提示
3.ImageLoader是根據ImageView的height,width確定圖片的寬高。
4.如果經常出現OOM(別人那邊看到的,覺得很有提的必要)
①減少配置之中線程池的大小,(.threadPoolSize).推薦1-5;
②使用.bitmapConfig(Bitmap.config.RGB_565)代替ARGB_8888;
③使用.imageScaleType(ImageScaleType.IN_SAMPLE_INT)或者 try.imageScaleType(ImageScaleType.EXACTLY);
④避免使用RoundedBitmapDisplayer.他會創建新的ARGB_8888格式的Bitmap對象;
⑤使用.memoryCache(new WeakMemoryCache()),不要使用.cacheInMemory();
下面有人問到如何載入本地圖片什麼的,之後把那位親的回答補充上來,謝謝各位大大提出的不足(那時候用的時候只想到用網路圖片了,所以也沒考慮這么多)。
String imageUri = "http://site.com/image.png"; // from Web
String imageUri = "file:///mnt/sdcard/image.png"; // from SD card
String imageUri = "content://media/external/audio/albumart/13"; // from content provider
String imageUri = "assets://image.png"; // from assets
String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)
大致就說到這里,可能有的地方不足歡迎提出,希望大家可以更加容易入手、使用這個庫。
❿ 網站後台資料庫密碼如何反編譯有什麼軟體沒
AC的我有,今天還用了。能直接顯示密碼,其他的沒見過。