Articles of 反向工程

适用于Linux的反汇编器能够反汇编旧的.COM / .EXE文件

我在这里的第一个问题,希望我没有做错。 我的问题是,我有一个老的DOS程序,已经相当多的黑客文件格式到极致,以节省空间。 (是的,这对那些知道的人来说是一个杀人刺激的刺激。) Objdump不想帮助我; 快速谷歌search没有得到真正的问题的结果,在这方面的手册也不太慷慨。 还有其他的,像利达。 然而,由于某种原因,我不能让丽达工作, 我相信有其他select。 任何人都有在Linux上反汇编DOS可执行文件的经验吗? 还是应该尝试一些基于DOS的反汇编程序,并在Dosemu上运行?

我怎样才能连接到Linux上的蓝牙4.0LE的FitBit Zip与蓝色?

我购买了FitBit zip。 此设备使用蓝牙4.0 LE。 我想至less通过蓝色连接到它。 如果这是成功的,我想看看有多less协议,我可以找出。 我正在使用集成了对蓝牙4.0的支持的联想P500 Ideapad。 它似乎工作(种) 当我做: hcitool lescan 我能够find设备的蓝牙地址,它(尽pipe可能不相关)是:CF:D9:24:DB:F4:7B 现在,我读了另一个问题: 低功耗蓝牙:在Linux中侦听通知/指示 ,我可以侦听通知和其他协议function。 我已经使用旧的蓝牙,但我没有蓝牙LE的经验。 我试图使用hcitool lecc或gatttool连接到设备卡住了。 连接超时,似乎在Linux机器上将蓝牙保持在不良状态。 我能够通过重新加载蓝牙相关的内核模块来解决这个问题。 任何提示都表示赞赏。 我正在尝试最新的bluez。

是否有可能调用驻留在exe中的非导出函数?

我想调用驻留在第三方.exe中的函数并获取其结果。 似乎应该有办法,只要我知道函数地址,调用约定等,但我不知道如何。 有谁知道我会怎么做? 我意识到,任何解决scheme将是一个非标准的黑客攻击,但必须有一个办法! 我的非恶意用例:我正在为我的软件逆向工程一个文件格式。 这个函数的计算太复杂了,我的小脑子想不出来。 我已经能够将汇编代码直接拉到我自己的DLL进行testing,但我当然不能释放,因为这会被窃取。 我会假设用户已经预装了这个特定的应用程序,所以我的软件将运行。

.rdata和.idata片段有什么区别?

我在IDA注意到,我分析的PE文件不仅有.rdata部分,还有.idata 。 有什么不同?

为什么这段代码使我能够检测debugging器?

为什么下面的汇编代码是反debugging工具? l1: call l3 l2: ;some code l3: mov al, 0c3h mov edi, offset l3 or ecx, -1 rep stosb 我知道C3h是RETN而且我知道stobs将al的值作为opcode根据edi的偏移量写入操作码,并且由于rep而完成了ecx次。 我也意识到stobs和stosw会运行,如果他们在intel架构上被预取作为它们的原始格式。 如果我们在debugging模式下运行程序,预取是不相关的,并且将运行l2标签(因为它是单步的),否则如果没有debugging器,它会在l1和l3之间进行乒乓。

使用预取队列的反debugging不能用于我的cpu

为什么这段代码使我能够检测debugging器? 上面的链接告诉我使用预取队列的方式来反debugging,然后我试着用下面的代码来testing,但是我失败了。 任何人都可以帮我指出,如果我的代码是错误的。 我的CPU是Intel(R)Core(TM)i7-2630QM 2.00GHz。 非常感谢 ML :D:\ Programs \ masm32 \ Bin \ ML.EXE / c / coff / Cp / nologo / I“D:\ Programs \ masm32 \ Include”“AntiDebug.asm” Link :D:\ Programs \ masm32 \ Bin \ LINK.EXE /SECTION:.text,RWE / SUBSYSTEM:WINDOWS / RELEASE /VERSION:4.0 / LIBPATH:“D:\ Programs \ masm32 \ Lib”/ OUT:“AntiDebug。 exe“”AntiDebug.obj“ 它总是执行debugging标签,不pipe我是否在debugging,也不会执行'jmp […]

当'OrdinalBase`字段设置为1时,kernel32.dll如何导出一个0的序号?

看看它加载到内存中的kernel32.dll,我看到下面的导出序号表: (gdb) x /400hd $eax 0x776334b0 <Wow64Transition+71576>: 3 4 5 6 7 8 9 10 0x776334c0 <Wow64Transition+71592>: 11 12 13 14 15 16 17 18 0x776334d0 <Wow64Transition+71608>: 19 20 21 22 23 24 25 26 0x776334e0 <Wow64Transition+71624>: 27 28 29 30 31 32 33 34 0x776334f0 <Wow64Transition+71640>: 35 36 37 38 39 40 41 42 […]

IDA Pro反汇编,如何看看.data部分中的纯ASCII?

我正在使用IDA Pro反汇编Windows DLL文件。 有一点我有一行代码说 mov esi, dword_xxxxxxxx 我需要知道dword是什么,但双击它将带我到.data页面,一切都在问号。 我如何获得应该在那里的纯文本?

执行直到用户代码不起作用

我试图使用OllyDbg的“执行直到用户代码”function(这是我必不可less的),但它永远不会工作。 我第一次尝试了一个名为MessageBoxA的程序。 当它调用它时,我在debugging器中暂停程序并发出OllyDbg执行直到用户代码,但程序仍然暂停并完全冻结。 我甚至不能点击MessageBox的OKbutton,甚至不能从OllyDbg继续。 当我试图让它继续时,它只是坠毁。 所以我决定在NASM上写一个应用程序(要完全控制)并在那里尝试。 MessageBoxApopup,我暂停,执行直到用户代码,这次我可以按下OKbutton,但是OllyDbg没有暂停程序。 该程序就好像什么都没发生一样执行。 为什么它不工作,我能做些什么来解决它? OllyDbg 1.10(无插件) Windows 7旗舰版SP1 64位 更新: 我试图使用OllyDbg 2.0,但执行直到用户代码button由于某种原因完全禁用。

Windows单链表(_SINGLE_LIST_ENTRY)

我只是在Windows 7崩溃转储中进行一些debugging,并且遇到了一个单链表,我无法完全理解。 这是WinDBG的输出: dt _GENERAL_LOOKASIDE_POOL fffff80002a14800 -b …. 0x000 SingleListHead: _SINGLE_LIST_ENTRY +0x000 Next: 0x0000000000220001 …. 从我一直在读的内容看来,每个单链表似乎都以一个列表头开始,它包含一个指向列表中第一个元素的指针,如果列表为空,则为空。 微软声明: MSDN文章 对于用作列表条目的SINGLE_LIST_ENTRY,Next成员指向列表中的下一个条目,如果列表中没有下一个条目,则为NULL。 对于作为列表头的SINGLE_LIST_ENTRY,Next成员指向列表中的第一个条目,如果列表为空,则指向NULL。 我99%确定这个列表包含一些条目,但我不明白如何值0x0000000000220001应该指向任何东西。 这个值当然不能parsing为有效的页面映射,所以我只能假设它是某种偏移量。 但是,我不确定。 如果有人能够帮助我们发现这一点,我会很感激的。 谢谢 UPDATE 我刚刚find一个文件(翻译成中文),似乎更多地解释了这个结构。 如果有人可以提供一些意见,我会很感激。 旁视清单文章 我实际上看到的是Windows应该用来分配IRP的后备列表,下面是WinDBG的全部输出(值从原来的问题改变了): lkd> !lookaside iopsmallirplookasidelist Lookaside "" @ fffff80002a14800 "Irps" Type = 0000 NonPagedPool Current Depth = 0 Max Depth = 4 Size = 280 Max Alloc […]