小编kai*_*ity的帖子

ExtJS中的对象.Ext.create或new运算符?

我是ExtJS的新手.我开始编写一个小形式.我对Ext.create和new运算符的使用感到困惑.

所以这是代码:

我想编写一个表单.我在其中一个sencha页面上找到了一个小例子.它创建一个这样的表单:

var descAndSystem = new Ext.form.Panel ({
    region: 'center',
    layout: 'vbox',
    margins: '5 5 5 5',
    xtype: 'form',
    title: 'Some title',
    id: 'descAndSystem',
    width: '800', 
    items: [
       { xtype: 'textarea',
     fieldLabel: 'Provide a description',
     name: 'rightdescription',
       },
       {
      xtype: 'combobox',
      fieldLabel: 'Choose System',
      store: systems,
      queryMode: 'local',
      displayField: 'name',
      valueField: 'name',
      name: 'system'
       }
    ]
});
Run Code Online (Sandbox Code Playgroud)

然后我在视口中使用了descAndSystem作为组件:

Ext.create('Ext.container.Viewport', {
    layout: 'border',
    id: 'wizardcontainer',
    items: [
        descAndSystem,
        {
            region: 'south', 
            layout: 'hbox',
            margins: '5 5 5 5',
            items: [ …
Run Code Online (Sandbox Code Playgroud)

extjs

9
推荐指数
1
解决办法
2万
查看次数

ExtJS4:如何将参数传递给initComponent

我正在使用Sencha Architect 2.我正在尝试使用文本搜索和显示结果的表格生成通用UI元素.通用意味着我想将它用于几种不同类型的搜索,例如用户,角色或其他类型的搜索.

所以我在这个关于Sencha Architect 2的上下文中肯定喜欢它总是生成类.这是我生成的类:

Ext.define('ktecapp.view.ObjSearchPanel', {
    extend: 'Ext.container.Container',
    alias: 'widget.objsearchpanel',

    height: 250,
    id: 'UserSearchPanel',
    itemId: 'UserSearchPanel',
    width: 438,
    layout: {
        columns: 3,
        type: 'table'
    },

    initComponent: function() {
        var me = this;

        Ext.applyIf(me, {
            items: [
                {
                    xtype: 'textfield',
                    itemId: 'txtSearchText',
                    fieldLabel: 'Search Text',
                    colspan: 2
                },
                {
                    xtype: 'button',
                    id: 'searchObj',
                    itemId: 'searchObj',
                    text: 'Search',
                    colspan: 1
                },
                {
                    xtype: 'gridpanel',
                    height: 209,
                    itemId: 'resultGrid',
                    width: 430,
                    store: 'UserDisplayStore',
                    colspan: 3,
                    columns: [
                        {
                            xtype: 'gridcolumn',
                            width: …
Run Code Online (Sandbox Code Playgroud)

constructor extjs4 sencha-architect

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

缓冲区溢出漏洞利用:为什么“ jmp esp”需要位于DLL中?

我试图理解经典的缓冲区溢出漏洞,其中输入缓冲区会覆盖堆栈,函数返回地址将保存在堆栈和上层内存区域(通常将shell代码放在此处)中。互联网上有很多这样的例子,我想我对此非常了解:

  1. 您将更多数据放入开发人员已确定大小的某些输入缓冲区中

  2. 您的输入将覆盖函数参数和堆栈上调用函数的返回地址

  3. 当操作系统尝试从发生溢出的功能返回时,该地址已加载到EIP中,这就是使您可以将控制的数据获取到EIP寄存器中的原因(当不仔细阅读某些文章时,您会感觉可以覆盖CPU寄存器)当然不是这种情况,您只能覆盖堆栈,但CPU会将堆栈中的地址加载到其寄存器中)
  4. 如果漏洞利用程序设计合理,则加载到EIP中的值将使程序跳至Shell代码的开头(请参见第5点)
  5. 我想我已经了解的下一件事是“ JMP ESP”机制。在实验室环境中复制崩溃时,您会在内存中寻找一个包含“ JMP ESP”指令的位置,然后用该地址覆盖EIP(现在我的措词不准确,我知道...)。至少对于相同的OS版本,无论您多长时间运行一次,什么时间运行,哪个线程在执行您的东西等,该地址都必须相同。该地址不得包含任何禁止的字节。代码将跳转到该地址(同时堆栈减少4个字节),因此“ jmp esp”将跳转到溢出缓冲区中下一个我将其值覆盖为EIP的位置之后的地址。通常是shellcode所在的地方,可能以NOP开头。

现在出现了问题。

到目前为止,我读过的所有文章都在DLL中寻找“ JMP ESP”指令的地址(该地址不能重定位,不能用ASLR编译,等等)。为什么不在exe本身中寻找“ jmp esp”呢?为什么它需要在DLL中?

我已经在Immunity Debugger中运行了“!mona modules”命令,并且显示的满足所有这些条件的唯一模块是exe本身。当我查看流行的漏洞利用数据库时,该地址始终位于已加载的DLL中。

我看不出有任何明显的原因。exe也可以以与DLL相同的方式位于内存中的相同地址。有什么不同?

c dll buffer-overflow

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

标签 统计

buffer-overflow ×1

c ×1

constructor ×1

dll ×1

extjs ×1

extjs4 ×1

sencha-architect ×1