亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? class_analy.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
字號:
/* *	HT Editor *	class_analy.cc * *	Copyright (C) 1999-2002 Sebastian Biallas (sb@biallas.net) * *	This program is free software; you can redistribute it and/or modify *	it under the terms of the GNU General Public License version 2 as *	published by the Free Software Foundation. * *	This program is distributed in the hope that it will be useful, *	but WITHOUT ANY WARRANTY; without even the implied warranty of *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *	GNU General Public License for more details. * *	You should have received a copy of the GNU General Public License *	along with this program; if not, write to the Free Software *	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include "analy.h"#include "analy_alpha.h"#include "analy_names.h"#include "analy_register.h"#include "analy_java.h"#include "class.h"#include "class_analy.h"#include "htctrl.h"#include "htdebug.h"#include "htiobox.h"#include "strtools.h"#include "snprintf.h"#include "pestruct.h"#include <stdio.h>#include <stdlib.h>#include <string.h>/* * */void	ClassAnalyser::init(ht_class_shared_data *Class_shared, File *File){	class_shared = Class_shared;	file = File;	Analyser::init();	initialized->done();	delete initialized;	initialized = class_shared->initialized->clone();	/////////////	setLocationTreeOptimizeThreshold(100);	setSymbolTreeOptimizeThreshold(100);}/* * */void ClassAnalyser::beginAnalysis(){	char buffer[1024];		String b;	*java_demangle_flags(buffer, class_shared->flags) = 0;	b.assignFormat("; %s%s %s", buffer, (class_shared->flags & jACC_INTERFACE)?"interface":"class", class_shared->classinfo.thisclass);	if (class_shared->classinfo.superclass) {		String b2;		b2.assignFormat(" extends %s", class_shared->classinfo.superclass);		b += b2;	}	if (class_shared->classinfo.interfaces) {		b += " implements";		int count = class_shared->classinfo.interfaces->count();		for (int i=0; i < count; i++) {			String b2;			b2.assignFormat("%y%c", (*class_shared->classinfo.interfaces)[i], (i+1<count)?',':' ');			b += b2;		}	}	b += " {";	Address *a = createAddress32(0);	addComment(a, 0, "");	addComment(a, 0, ";********************************************************");	addComment(a, 0, b.contentChar());	addComment(a, 0, ";********************************************************");	if (class_shared->fields && class_shared->fields->count()) {		addComment(a, 0, ""); 		addComment(a, 0, ";  Fields: ");		addComment(a, 0, "; =========");		foreach (ClassField, cf, *class_shared->fields, {			char buffer2[1024];			java_demangle_field(buffer2, cf->name, cf->type, cf->flags);			ht_snprintf(buffer, 1024, ";  %s", buffer2);			addComment(a, 0, buffer);		});		addComment(a, 0, "");	}	delete a;	if (class_shared->methods) {		foreach (ClassMethod, cm, *class_shared->methods, {			Address *a = createAddress32(cm->start);			char buffer2[1024];			java_demangle(buffer2, class_shared->classinfo.thisclass, cm->name, cm->type, cm->flags);			ht_snprintf(buffer, 1024, "; %s", buffer2);			addComment(a, 0, "");			addComment(a, 0, ";----------------------------------------------");			addComment(a, 0, buffer);			addComment(a, 0, ";----------------------------------------------");			addAddressSymbol(a, cm->name, label_func);			pushAddress(a, a);			if (cm->length) {				Address *b = createAddress32(cm->start + cm->length - 1);				initialized->add(a, b);				delete b;			}			delete a;			for (int i=0; i < cm->exctbl_len; i++) {				exception_info *ei = cm->exctbl + i;				if (ei->catch_type) {					token_translate(buffer2, sizeof buffer2, ei->catch_type, class_shared);				} else {					ht_strlcpy(buffer2, "...", sizeof buffer2);				}				ht_snprintf(buffer, sizeof buffer, "catch (%s)", buffer2);				Address *b = createAddress32(cm->start + ei->start_pc);				ht_snprintf(buffer2, sizeof buffer2, "[%d] try { // %s", i, buffer);				addComment(b, 0, buffer2);				delete b;				b = createAddress32(cm->start + ei->end_pc);				ht_snprintf(buffer2, sizeof buffer2, "[%d] } // %s", i, buffer);				addComment(b, 0, buffer2);				delete b;				b = createAddress32(cm->start + ei->handler_pc);				ht_snprintf(buffer2, sizeof buffer2, "[%d] %s:", i, buffer);				addComment(b, 0, buffer2);				pushAddress(b, b);				delete b;			}		}); 	}	setLocationTreeOptimizeThreshold(1000);	setSymbolTreeOptimizeThreshold(1000);	Analyser::beginAnalysis();}/* * */ObjectID ClassAnalyser::getObjectID() const{	return ATOM_CLASS_ANALYSER;}/* * */uint ClassAnalyser::bufPtr(Address *Addr, byte *buf, int size){	FileOfs ofs = addressToFileofs(Addr);	assert(ofs != INVALID_FILE_OFS);	file->seek(ofs);	return file->read(buf, size);}/* * */Address *ClassAnalyser::createAddress(){	return new AddressFlat32(0);}/* * */Address *ClassAnalyser::createAddress32(ClassAddress addr){	return new AddressFlat32(uint32(addr));}/* * */Assembler *ClassAnalyser::createAssembler(){	return NULL;}/* * */FileOfs ClassAnalyser::addressToFileofs(Address *Addr){	if (validAddress(Addr, scinitialized)) {		return ((AddressFlat32*)Addr)->addr;	} else {		return INVALID_FILE_OFS;	}}/* * */const char *ClassAnalyser::getSegmentNameByAddress(Address *Addr){	static char sectionname[1];	Location *loc = getFunctionByAddress(Addr);	if (loc && loc->label && loc->label->name) {		return loc->label->name;	} else {		sectionname[0] = 0;		return sectionname;	}}/* * */String &ClassAnalyser::getName(String &res){	return file->getDesc(res);}/* * */const char *ClassAnalyser::getType(){	return "Java-Class/Analyser";}/* * */void ClassAnalyser::initCodeAnalyser(){	Analyser::initCodeAnalyser();}int class_token_func(char *result, int maxlen, uint32 token, void *context){	return token_translate(result, maxlen, token, (ht_class_shared_data *)context);}/* * */void ClassAnalyser::initUnasm(){	DPRINTF("class_analy: ");	analy_disasm = new AnalyJavaDisassembler();	((AnalyJavaDisassembler*)analy_disasm)->init(this, class_token_func, class_shared);}/* * */void ClassAnalyser::log(const char *msg){	/*	 *	log() creates to much traffic so dont log	 *   perhaps we reactivate this later	 *	 *//*	LOG(msg);*/}/* * */Address *ClassAnalyser::nextValid(Address *Addr){	return (Address *)class_shared->valid->findNext(Addr);}/* * */int	ClassAnalyser::queryConfig(int mode){	switch (mode) {		case Q_DO_ANALYSIS:		case Q_ENGAGE_CODE_ANALYSER:		case Q_ENGAGE_DATA_ANALYSER:			return true;		default:			return 0;	}}void	ClassAnalyser::reinit(ht_class_shared_data *cl_shared, File *f){	class_shared = cl_shared;	file = f;	if (disasm->getObjectID() == ATOM_DISASM_JAVA) {		((javadis *)disasm)->initialize(class_token_func, class_shared);	}}/* * */Address *ClassAnalyser::fileofsToAddress(FileOfs fileaddr){	Address *a = createAddress32(fileaddr);	if (validAddress(a, scvalid)) {		return a;	} else {		delete a;		return NULL;	}}/* * */bool ClassAnalyser::validAddress(Address *Addr, tsectype action){	if (!Addr->isValid() || !class_shared->valid->contains(Addr)) return false;	switch (action) {	case scinitialized:	case sccode:		return class_shared->initialized->contains(Addr);	default:		return true;	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩综合色| 亚洲电影视频在线| 精品1区2区在线观看| 日韩一区二区三免费高清| 欧美日韩五月天| 日韩一级黄色大片| 亚洲国产精品精华液2区45| 日韩欧美亚洲另类制服综合在线| 欧美成人精品福利| 国产精品久久看| 日韩激情中文字幕| 老司机精品视频在线| 亚洲日本va午夜在线电影| 色综合激情五月| 欧美色倩网站大全免费| 69堂精品视频| 久久久久久日产精品| 综合电影一区二区三区| 免费人成精品欧美精品 | 一区二区三区在线观看欧美| 在线这里只有精品| 精品国产免费人成电影在线观看四季| 欧美成人官网二区| 亚洲美女在线一区| 懂色av噜噜一区二区三区av| 欧美日韩一区国产| 久久综合久色欧美综合狠狠| 自拍偷拍亚洲综合| 成人av电影在线观看| 久久色视频免费观看| 美腿丝袜亚洲三区| 蜜臀国产一区二区三区在线播放| 久久女同互慰一区二区三区| 韩国三级电影一区二区| 欧美日韩另类一区| 亚洲欧美日韩国产另类专区| 国产成人免费xxxxxxxx| 欧美大胆一级视频| 麻豆91免费观看| 欧美日韩成人在线一区| 一区二区三区电影在线播| 色综合久久久网| 亚洲美女电影在线| 欧美浪妇xxxx高跟鞋交| 无吗不卡中文字幕| www.日韩精品| 亚洲电影欧美电影有声小说| 在线观看免费视频综合| 中文字幕国产一区二区| 成人动漫一区二区三区| 国产精品久久久久精k8| 91亚洲男人天堂| 日韩在线一区二区三区| 欧美大片一区二区三区| 成人av在线播放网址| 一区二区三区四区蜜桃| 欧美大片在线观看一区二区| 亚洲小少妇裸体bbw| 欧美成人精品福利| 国产91在线看| 一区二区在线看| 精品福利一区二区三区免费视频| 精品一区二区免费| 国产丝袜欧美中文另类| 91搞黄在线观看| 国产最新精品免费| 日本亚洲欧美天堂免费| 天天操天天色综合| 欧美日韩亚洲综合一区| 亚洲免费视频成人| 国产日产欧美一区二区三区| 欧美色图在线观看| 99re在线视频这里只有精品| 肉丝袜脚交视频一区二区| **欧美大码日韩| 久久久无码精品亚洲日韩按摩| 日本高清无吗v一区| 成人黄色综合网站| 国产一区二区三区在线看麻豆| 亚洲国产va精品久久久不卡综合| 中文欧美字幕免费| 国产精品色哟哟网站| 久久人人97超碰com| 久久综合国产精品| 日韩一二三区不卡| 欧美一卡二卡在线| 久久影院电视剧免费观看| 日韩一区二区三区精品视频| 欧美日韩一区二区在线观看视频 | 色悠悠久久综合| 国产一区二区在线电影| 久久爱另类一区二区小说| 捆绑变态av一区二区三区| 裸体歌舞表演一区二区| 国产a区久久久| aaa欧美色吧激情视频| 97精品久久久午夜一区二区三区| 国产成都精品91一区二区三| 成人a区在线观看| 欧美午夜片在线观看| 日韩久久精品一区| 麻豆精品新av中文字幕| 亚洲福中文字幕伊人影院| 久久精品噜噜噜成人88aⅴ| 国产高清精品网站| 在线观看日韩电影| 日韩欧美中文字幕制服| 中文av字幕一区| 久久免费的精品国产v∧| 日韩欧美国产一区二区在线播放| 国产清纯白嫩初高生在线观看91 | 色偷偷久久一区二区三区| 91精品国产综合久久久蜜臀图片| 国产欧美一区二区精品秋霞影院| 伊人夜夜躁av伊人久久| 国产一区91精品张津瑜| 欧美福利电影网| 一区二区三区精密机械公司| 国产精品综合一区二区| 日韩一区二区三区高清免费看看| 亚洲久草在线视频| 丁香五精品蜜臀久久久久99网站 | 国产在线播放一区| 欧美一级理论性理论a| 亚洲国产视频在线| 色狠狠色噜噜噜综合网| 亚洲欧美韩国综合色| 成人av免费在线| 亚洲日本丝袜连裤袜办公室| 成人av在线影院| 亚洲三级在线看| 91美女视频网站| 一区二区久久久久久| 97se亚洲国产综合自在线 | 91亚洲精品久久久蜜桃| 中文文精品字幕一区二区| 91伊人久久大香线蕉| 一二三四区精品视频| 欧美日韩一区精品| 国产精品一区在线观看你懂的| 久久欧美一区二区| 91久久精品一区二区三| 日韩影院在线观看| 久久在线观看免费| 91久久国产最好的精华液| 午夜免费欧美电影| 国产精品欧美综合在线| 欧美精品久久久久久久久老牛影院| 日本不卡一区二区三区高清视频| 久久综合久久综合九色| 日本不卡一区二区| 2014亚洲片线观看视频免费| heyzo一本久久综合| 日本不卡高清视频| 中文字幕av在线一区二区三区| 欧美性受极品xxxx喷水| 国产成人午夜99999| 日本欧美大码aⅴ在线播放| 国产精品乱人伦| 日韩欧美一二区| 欧美高清一级片在线| 91香蕉视频污| 99久久伊人久久99| 大陆成人av片| 国产精品自拍av| 久久99精品国产麻豆婷婷| 三级在线观看一区二区| 亚洲免费在线看| 18欧美亚洲精品| 亚洲三级在线看| 亚洲男人的天堂网| 亚洲精品乱码久久久久久黑人| 欧美激情在线看| 欧美高清在线一区二区| 国产精品五月天| 中文字幕在线不卡一区二区三区| 久久九九久精品国产免费直播| 日韩手机在线导航| 欧美成人a∨高清免费观看| 2020国产精品自拍| 国产欧美日韩在线视频| 中文幕一区二区三区久久蜜桃| 国产精品久久久久久久久久久免费看 | 91玉足脚交白嫩脚丫在线播放| 成人综合在线观看| 色一情一乱一乱一91av| 一本大道久久a久久精品综合| 欧美日韩一卡二卡三卡| 精品成人免费观看| 亚洲人成亚洲人成在线观看图片 | 欧美日韩一级二级三级| 日韩三级免费观看| 国产精品美女久久久久久久网站| 一区二区三区日本| 男女性色大片免费观看一区二区| 激情伊人五月天久久综合| 色婷婷一区二区| 久久网这里都是精品| 午夜精品福利在线| av网站免费线看精品|