标签: loader

什么是二进制格式的“对齐”字段?为什么需要它?

ELF文件格式中,我们有一个Alignment字段,Segment Header TableProgram Header Table.

在 Windows PE 文件格式的情况下,他们将其带到下一个级别,节有两个对齐值,一个在磁盘文件中,另一个在内存中。PE 文件头指定了这两个值。

我对这种对齐一无所知。我们需要它做什么?如何以及在哪里使用它?同样,我不知道什么是二进制文件格式上下文中的对齐,但我们为什么需要它?

linker binaryfiles elf loader portable-executable

5
推荐指数
1
解决办法
1497
查看次数

作为代码执行数据?

我的客户要求我编写一个自定义加密可执行文件,以防止许可系统轻易破解.现在,我明白这是一种虚假的安全感,但尽管如此,他仍然坚持这一点.

所以,我挖掘了我对可移植可执行文件的了解,并提出了这个想法:

  • 加密可执行文件
  • 将它粘贴到加载程序可执行文件的末尾以及它的大小
  • 加载程序解密数据
  • 它将代码复制到使用具有可执行权限的VirtualAlloc分配的页面
  • 它找到了应用程序的入口点
  • 跳到那里,我们都准备好了.

跳到那里我有一个问题.我怎样才能做到这一点?如果我要设置一个函数指针,那么签名是什么?加载的可执行文件的main()函数的签名?或者我需要求助于集会吗?

我知道在加载代码后可能需要更正绝对地址.如何检查是否需要,以及如何实际执行此操作?

编辑:在Windows上工作并使用GCC进行编译.如有必要,我可以切换Microsoft编译器.

编辑2:澄清:我知道它几乎没有意义.我认为这代表任何类型的DRM.这取决于我的客户决定,尽管我警告他,但他仍然想要这个.

提前致谢.

c++ windows assembly loader

5
推荐指数
2
解决办法
3207
查看次数

反序列化二进制类文件的内容时ClassNotFoundException

我对Java知之甚少.我正在尝试读取一个包含int的文件和一个名为"Automobile"的类的各种实例.但是,当我反序列化它时,程序抛出一个ClassNotFoundException,我似乎无法理解为什么.

这是代码:

        try {
        FileInputStream fin = new FileInputStream(inputFile);
        ObjectInputStream input = new ObjectInputStream(fin);

        conto = input.readInt();

        Automobile[] macchine = new Automobile[conto];

        for(int i = 0; i < conto; i++) {
            macchine[i] = (Automobile)input.readObject();
        }

        String targa;
        System.out.print("\nInserire le cifre di una targa per rintracciare l'automobile: ");
        targa = sc1.nextLine();

        for(int i = 0; i < conto; i++) {
            if(macchine[i].getTarga().equals(targa))
                System.out.println(macchine[i]);
        }

    } catch(IOException e) {
        System.out.println("Errore nella lettura del file "+inputFile);
    } catch(java.lang.ClassNotFoundException e) {
        System.out.println("Class not found");
    } …
Run Code Online (Sandbox Code Playgroud)

java class file loader deserialization

5
推荐指数
1
解决办法
9076
查看次数

ELF二进制文件中的.init_array部分是什么?

每篇文章都说.init_array部分是一个函数数组,但根据我的经验,它不是.

这是我为Android编译的libc.so的.init_array:

$ prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-objdump -s -j .init_array out/target/product/e910/obj/SHARED_LIBRARIES/libc_intermediates/LINKED/libc.so 

out/target/product/e910/obj/SHARED_LIBRARIES/libc_intermediates/LINKED/libc.so:     file format elf32-littlearm

Contents of section .init_array:
 42000 e1620100 ffffffff 75940200 00000000  .b......u.......
Run Code Online (Sandbox Code Playgroud)

它包含4个字(小端):

000162e1
ffffffff
00029475
00000000
Run Code Online (Sandbox Code Playgroud)

000162e1并且00029475看起来像一些函数指针:

000162e0 <__libc_preinit>:
 * as soon as the shared library is loaded.
 */
void __attribute__((constructor)) __libc_preinit(void);

void __libc_preinit(void)
{
   162e0:   b510        push    {r4, lr}
     * Note that:
     * - we clear the slot so no other initializer sees its value.
     * - __libc_init_common() will change the TLS area so the …
Run Code Online (Sandbox Code Playgroud)

c android arm elf loader

5
推荐指数
1
解决办法
5956
查看次数

THREE.js JSONLoader回调

在THREE.js中,如果我有多次调用JSONLoader来加载这样的多个对象(简化示例):

function init() {    
  var loader = new THREE.JSONLoader();    
  loader.load("mesh1.js", createScene);    
  loader.load("mesh2.js", createScene);
}    

function createScene( geometry ) {    
  if (geometry.filename == "mesh1.js") {    
    mesh1 = new THREE.Mesh( geometry, material );
    scene.add( mesh1 );    
  } else if (geometry.filename == "mesh2.js") {    
    mesh2 = new THREE.Mesh( geometry, material );
    scene.add( mesh2 );
  }
}
Run Code Online (Sandbox Code Playgroud)

如何确定回调时返回的网格,特别是当它们经常无序到达时?

我正在尝试使用单个通用回调函数处理多个返回的网格.返回的几何中是否有一些属性指示我可以测试的原始文件名?

或者也许有一种更优雅的方式?也许为每个调用创建一个新的THREE.JSONLoader对象将有助于回调函数确定哪个网格已到达?

我感谢任何帮助/想法!谢谢!

geometry json callback loader three.js

5
推荐指数
1
解决办法
4866
查看次数

在API 8中使用Loader

我正在关注Lars Vogella的教程:http://www.vogella.com/articles/AndroidSQLite/article.html#todo

但我希望它可以在API 8上运行.我在API 11+上工作并执行以下操作以使其在API 8上运行.在Android Tools中我添加了一个支持库,并添加了以下导入:

import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.CursorAdapter;
import android.support.v4.widget.SimpleCursorAdapter;
Run Code Online (Sandbox Code Playgroud)

但Eclipse仍然给我错误:

The method getLoaderManager() is undefined for the type TodosOverviewActivity
Run Code Online (Sandbox Code Playgroud)

在方法中:

private void fillData() {

    // Fields from the database (projection)
    // Must include the _id column for the adapter to work
    String[] from = new String[] { TodoTable.COLUMN_SUMMARY };
    // Fields on the UI to which we map
    int[] to = new int[] { R.id.label };

    getLoaderManager().initLoader(0, null, …
Run Code Online (Sandbox Code Playgroud)

api android loader

5
推荐指数
1
解决办法
1271
查看次数

虚拟内存和可重定位代码

在32位系统中,每个进程实际上具有2 ^ 32个字节的CONTIGUOUS地址空间.那么为什么链接器生成的最终可执行代码需要可重定位.有什么要求,因为生成的所有地址都是进程自己的地址空间中的虚拟地址,而其他进程不能使用相同的地址空间.因此,该过程可以放在它想要的任何地方.为什么要重新定位?

c linker operating-system loader virtual-memory

5
推荐指数
1
解决办法
786
查看次数

Angular 2 ngOnDestroy未触发

早上好

我开发了一个小型的angular2-client-app,它有路由.路由创建如下:

app.routes.ts

import { provideRouter, RouterConfig } from '@angular/router';
import { ContactComponent } from './components/contact.component/contact.component';
import { Home } from './components/home.component/home.component';
import {StudentRoutes} from './components/student.component/student.routes';
import {LecturerRoutes} from "./components/lecturer.component/lecturer.routes";
import {ProcessRoutes} from "./components/process.component/process.routes";
import {SchoolRoutes} from "./components/school.component/school.routes";

export const routes: RouterConfig = [
    { path: '', component: Home },
    ...ProcessRoutes,
    ...StudentRoutes,
    ...LecturerRoutes,
    ...SchoolRoutes,
    { path: 'contact', component: ContactComponent }
];

export const APP_ROUTER_PROVIDERS = [
  provideRouter(routes)
];
Run Code Online (Sandbox Code Playgroud)

所以现在我的客户可以从组件到组件进行路由.

我的所有组件都扩展了一个父组件:base-component.ts

基component.ts

import { Component, Injectable, Inject, Input, Output, EventEmitter, OnDestroy, …
Run Code Online (Sandbox Code Playgroud)

routes loader ondestroy angular

5
推荐指数
1
解决办法
5871
查看次数

Webpack - 如何为sass loader配置基目录路径?

我正在尝试遵循一些教程和文档,并将webpack构建为我的sass文件分成css文件.

这一切都有效,只要我在require中证明完全相对路径:

require("../sass/ss.scss")

但我想用它:

require("./ss.scss")

然后我在配置中将'sassLoader'注释掉,我收到错误:

[1] "sassLoader" is not allowed

正如您所看到的,我一直在尝试使用内联设置:

sourceMap&includePaths[]=' + (PATHS.sass)

但他们被忽略了.

我究竟做错了什么?

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const validate = require('webpack-validator');
const merge = require('webpack-merge');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

const PATHS = {
  app: path.join(__dirname, 'app'),
  js: path.join(__dirname, 'app', 'js'),
  sass: path.join(__dirname, 'app', 'sass'),
  build: path.join(__dirname, 'build')
};

const common = {

  // Entry accepts a path or an object of entries.
  // We'll be using the latter form given it's
  // …
Run Code Online (Sandbox Code Playgroud)

sass loader webpack

5
推荐指数
2
解决办法
2542
查看次数

在react native中单击按钮时显示加载程序

我正在尝试在我的react native应用中实现加载器动画,但是单击动画后它不会触发加载器,尽管动画已经更改为true

在下面查看我的代码。

componentWillMount(){
    this.hideLoader();
}

showLoader = () => { this.setState({ showLoader:true }); };
hideLoader = () => { this.setState({ showLoader:false }); };

doSignup = () => {
    this.showLoader();
}

render() {
    console.log(this.state.showLoader);
    return (
        <View>
            <TouchableOpacity style={{ marginTop: 25 }} onPress={this.doSignup}>
              <View style={[ styles.button, { backgroundColor: '#5a0060' } ]}>
                <Text style={{ fontSize: 20, color: Colors.white }}>Sign Up Now</Text>
              </View>
            </TouchableOpacity>

            <View style={{ position: 'absolute', top: 0, bottom: 0, right: 0, left: 0 }}>
              <ActivityIndicator animating={this.state.showLoader} size="small" …
Run Code Online (Sandbox Code Playgroud)

javascript loader reactjs react-native

5
推荐指数
2
解决办法
5642
查看次数