我有一个Silverlight 4 Datagrid控件的DLL.我怎样才能看到源代码?
任何帮助将不胜感激.
说我已经创建了我的数据库但是忘了保存sql命令来创建它.
我如何从现有数据库中反向设计代码?
我正在使用Microsoft SQL Server Express 2008.
这个话题说明了一切.我这里有一个.app文件,但我不再使用Xcode项目了.有没有办法从中获取.app文件和反向工程Xcode项目,以便我可以查看用于制作它的代码?
"任何CPU"如何在低级别实施?
是不是有两种格式:PE32和PE64?Windows x86和x64都可以运行32位.但是,它不是通过在32位内部使用64位可执行文件并在内存中运行它来实现的,因为这个过程将具有与启动器不同的ID.那他们是怎么做到的?
我正在考虑学习汇编语言,以获得逆向工程恶意软件的专业知识.我的问题是,当市场上有复杂的反编译器时,是否值得学习逆向工程的汇编语言(六角射线的反编译器非常好,据我所知).
虽然反编译不会重现原始代码,但它仍然降低了在汇编语言中理解代码的复杂性.那么,通过查看汇编代码,是否有任何强有力的理由尝试进行逆向工程?
谢谢.
我要解压缩iOS .app文件,然后插入我的代码,然后重新打包回ipa文件.
你能否提出一些指示如何做到这一点?
我正在尝试按照本指南检查Reveal上的iOS 8.1的Apple Calendar(MobileCal.app).
为此,我正在注入libReveal.dylib哪个启动自己的HTTP服务器,OS X Reveal应用程序连接到该服务器.
这种技术适用于大多数iOS系统应用程序(电话,便笺,提醒等),但日历中的某些内容阻止了HTTP服务器的设置.
当日历运行时,libReveal.dylib正确注入,但我在日志中看到这个:
MobileCal [5110]:错误:启动HTTP服务器时出错:错误域= NSPOSIXErrorDomain代码= 1"不允许操作"UserInfo = 0x17426aa40 {NSLocalizedDescription =不允许操作,NSLocalizedFailureReason = bind()函数错误}
MobileCal [5110]:错误:显示服务器无法启动时出现错误:错误域= NSPOSIXErrorDomain代码= 1"操作不被允许"UserInfo = 0x17426aa40 {NSLocalizedDescription =不允许操作,NSLocalizedFailureReason = bind()函数错误}
关于什么可以阻止HTTP服务器在日历中设置的任何想法?我注意到MobileCal.app捆绑包有一个Entitlements.plist文件,而大多数其他系统应用程序没有.这个问题可能与权利文件有关吗?
我也联系了Reveal的支持,他们反应灵敏,但无法确定导致问题的原因.使用RevealLoaderfrom Cydia会产生相同的结果.
在反汇编/转储exe时,我在.idata导入部分中得到三个表:
我理解IAT和INT是什么,但更准确的是什么?
有人可以提供解释,因为各种PE教程令人困惑.我并不完全理解他们描述的这些官方结构名称在这个特定数据上的位置.
这里的提示/答案会有所帮助
示例PE文件部分
SECTION .idata align=4 noexecute ; section number 3, data
Import_table: ; dword
db 50H, 30H, 00H, 00H, 00H, 00H, 00H, 00H ; 00403000 _ P0......
db 00H, 00H, 00H, 00H, 0ACH, 30H, 00H, 00H ; 00403008 _ .....0..
db 68H, 30H, 00H, 00H, 58H, 30H, 00H, 00H ; 00403010 _ h0..X0..
db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ; 00403018 _ ........
db 0C0H, 30H, 00H, 00H, 70H, 30H, 00H, …Run Code Online (Sandbox Code Playgroud) winapi reverse-engineering coff disassembly portable-executable
我正在使用binwalk,它的查找文件,但事后我没有提取任何内容,并且没有问题.这些不是文件吗?
babak@G750JHA ~/Desktop $ binwalk -Me ./Cottonelle.bin
Scan Time: 2016-06-18 23:19:58
Target File: /home/ubuntu/babak/Desktop/Cottonelle.bin
MD5 Checksum: f330370ed549c30bb301b42e7363ce32
Signatures: 345
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
16560 0x40B0 PEM RSA private key
18608 0x48B0 PEM certificate
20484 0x5004 PEM certificate
32944 0x80B0 PEM RSA private key
34992 0x88B0 PEM certificate
36868 0x9004 PEM certificate
301529 0x499D9 Certificate in DER format (x509 v3), header length: 4, sequence length: 177
414737 0x65411 Boot section Start 0x42423242 End 0x0
414741 0x65415 Boot section Start 0x0 End …Run Code Online (Sandbox Code Playgroud) 问题:
我制作了一个自我修改其字节之一的elf可执行文件.它只是将1更改为1.当我正常运行可执行文件时,我可以看到更改成功,因为它完全按预期运行(更多关于更进一步下来).调试时出现问题:调试器(使用radare2)在查看修改后的字节时返回错误的值.
语境:
我做了一个逆向工程挑战,受到了最小精灵的启发.您可以在那里看到"源代码"(如果您甚至可以称之为):https://pastebin.com/Yr1nFX8W.
汇编和执行:
nasm -f bin -o tinyelf tinyelf.asm
chmod +x tinyelf
./tinyelf [flag]
Run Code Online (Sandbox Code Playgroud)
如果标志是正确的,则返回0.任何其他值表示您的答案是错误的.
./tinyelf FLAG{wrong-flag}; echo $?
Run Code Online (Sandbox Code Playgroud)
...输出"255".
!解决方案SPOILERS!
可以静态反转它.完成后,您会发现通过执行此计算可以找到标志中的每个字符:
flag[i] = b[i] + b[i+32] + b[i+64] + b[i+96];
Run Code Online (Sandbox Code Playgroud)
...其中i是字符的索引,b是可执行文件本身的字节.这是一个ac脚本,可以在没有调试器的情况下解决问题:
#include <stdio.h>
int main()
{
char buffer[128];
FILE* fp;
fp = fopen("tinyelf", "r");
fread(buffer, 128, 1, fp);
int i;
char c = 0;
for (i = 0; i < 32; i++) {
c = buffer[i];
// handle self-modifying code
if …Run Code Online (Sandbox Code Playgroud) python debugging assembly reverse-engineering self-modifying
assembly ×2
ios ×2
winapi ×2
.app ×1
.net ×1
assemblies ×1
coff ×1
debugging ×1
decompiling ×1
disassembly ×1
dylib ×1
iphone ×1
jailbreak ×1
macos ×1
objective-c ×1
python ×1
silverlight ×1
sql-server ×1
xcode ×1